Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1655 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème de l'utilisation de session() et header()

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de l'utilisation de session() et header()

n°1988311
Sorion
Posté le 28-04-2010 à 11:06:44  profilanswer
 

Bonjour à vous tous,
 
Premier problème : Dans le cadre de l'implementation d'un formulaire je souhaite utiliser les propriété de session() afin de retenir les variable rentré par mon utilisateur dans le cas où tout le formulaire n'aurait pas été rempli.
Dans le première partie de mon code je tente d'intégrer les diverses valeurs des variables à session() puis dans la deuxième je m'emploie à mettre ces fameuses variables dans les champs adaptés dans le cas ou il y aurait un oubli de la part de l'utilisateur.
Problème : après des tests grâce à des echo, il n'y a, à priori, rien de stocker dans les variables de sessions...
 
Deuxième problème, il se situe au niveau de mon header, je sais que l header nécessite des condition spécifique, mais je pensait que dans mon cas ça fonctionnerait. et j'ai droit à l'erreur : Warning: Cannot modify header information - headers already sent ....
 
Voici mon code :
 
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
 
<head>
</head>
 
<body>
 
<?php
$error = array("",0,0,0,0,0,0,0,0); //création d'un tableau qui situera les erreurs : 0 : pas d'erreurs, 1 : champ vide
$tab1 = array("surname", "name", "adress", "postcode", "city", "country", "email", "phone" ); //tableau contenant le nom des variables
$tab2 = array("First name", "Last name", "Adress", "Postcode", "City", "Country", "eMail", "Phone" ); //tableau contenant le nom des variables que l'on affichera à l'utilisateur
 
 
if(isset($_POST['ok'])) //si on clique sur le bouton submit : alors executer le code
{
for($i=0; $i<count($tab1); $i++) //boucle pour traiter les champs un à un
{
eval('$temp = $_POST["'.$tab1[$i].'"];'); //regle le prob de la variable globale
eval('$session = $_SESSION['.$tab1[$i].'];');
 
$session=$temp; //insertion dans la session des variables avec leur valeurs
 
if ($temp == "" ) //affichage des Champs non remplits
{
$error[$i+1]=1;
$error[0].=($error[0]!="" )?', '.$tab2[$i].'':'Error with : '.$tab2[$i].'';
}
}
 
 
if($error[0]=="" ) //Si tout les champs sont remplis alors on va les insérer à la database
{
$connection = mysql_connect("*", "*", "*" ) or die('Erreur de connexion '.mysql_error());
mysql_select_db ("*", $connection);
 
$sql = "INSERT INTO user (id_user,surname,name,adress,postcode,city,country,email,phone)
VALUES('','$_POST[surname]','$_POST[name]','$_POST[adress]','$_POST[poscode]','$_POST[city]','$_POST[country]','$_POST[email]','$_POST[phone]')";
$req = mysql_query($sql);
 
$sql = "SELECT id_user FROM user WHERE surname='$_POST[name]'"; //ici on récupère l'id_user afin de le transmettre à la page suivante
$req = mysql($sql);
$id = mysql_insert_id();
header('location: success.php?id='.$id); //on demande d'aller à la page suivante
}
 
}
?>
 
<form method="post" action="booking.php"> //creation du formulaire
 
<div id="error" style="color:red;visibility: <?php echo(($error[0]!="" )?"visible":"hidden" ); ?>">
<?php if($error[0]!="" ) echo $error[0]; ?>
</div> //ce div sert à caché le texte d'erreur, et de l'afficher qu'au refresh de la page lorsque l'on constate des champs vides
 
<?php
for($i=0; $i<count($tab1); $i++)
{
echo $tab2[$i];
echo " : ";
$tmp = isset($session)? $session : ''; //opérateur ternaire : si il y a eu une variable enregistré alors on va l'insérer dans $tmp sinon insérer du vide.
echo "<input type =\"text\" name=\"".$tab1[$i]."\" value=\"".$tmp."\"/>"; //affichage de l'imput avec à l'interieur ou rien, ou la variable enregistré dans la session (dépendant le l'opérateur ternaire précédent)
 
echo ($error[$i+1]==1)? "<font color=red>*</font>":""; //affichage d'un étoile rouge à droite du champ vide.
echo '<br/>';
}
echo "<input type=\"submit\" value=\"Send\" name=\"ok\"/>"; //bouton submit
?>
 
</form>
 
</body>
 
</html>
 
Merci de votre aide !

mood
Publicité
Posté le 28-04-2010 à 11:06:44  profilanswer
 

n°1988465
the_bigboo
Posté le 28-04-2010 à 16:07:58  profilanswer
 

un BOM qui traine dans le fichier UTF-8 ? :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème de l'utilisation de session() et header()

 

Sujets relatifs
Petit problème à résoudre sur carte de France interactive Flash:)PHP probleme retour chariot
aidez moi à resoudre mon problèmeProbleme avec un pointeur
Petit problème à résoudre sur fichier flash décompiléProblème lecture sequentielle avec dbopen
Problème autocomplétion javascriptutilisation des session beans dans une jsp
probleme display:none ie :s 
Plus de sujets relatifs à : Problème de l'utilisation de session() et header()


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR