Encore un problmème de header
Résolu/Fermé
t671
Messages postés
1442
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
2 novembre 2024
-
15 juin 2010 à 12:04
t671 Messages postés 1442 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 2 novembre 2024 - 15 juin 2010 à 18:19
t671 Messages postés 1442 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 2 novembre 2024 - 15 juin 2010 à 18:19
8 réponses
lezao
Messages postés
469
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
14 août 2016
36
15 juin 2010 à 12:52
15 juin 2010 à 12:52
il n'y a t'il pas un message d'erreur HEADER can't send data , un truc comme ça ?
lezao
Messages postés
469
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
14 août 2016
36
Modifié par lezao le 15/06/2010 à 12:55
Modifié par lezao le 15/06/2010 à 12:55
pourquoi n' y arrivez vous pas par variable de session , mettez vous bien le session_start() ?
lezao : quand tu sais pas , tu me demandes je sais tout....non je déconne...presque tout.
lezao : quand tu sais pas , tu me demandes je sais tout....non je déconne...presque tout.
t671
Messages postés
1442
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
2 novembre 2024
11
15 juin 2010 à 14:29
15 juin 2010 à 14:29
Je n'ai pas de message d'erreur ! Le script va jusqu'au bout, et un enregistrement à vide est créé dans la base. J'ai l'impression que je perds mes variables ....
Voici mon script de saisie :
Puis le code "verifier.php" :
Puis celui de mise à jour de la base (add.php) :
Et ça fonctionne pô ..... :((
J'ai un résultat à peu près identique en utilisant des Sessions .... C'est à dire qu'un enregistrement à blanc est créé, et j'ai perdu mes données ....
Voici mon script de saisie :
<?php $cryptinstall="../livredor/crypt/cryptographp.fct.php"; include $cryptinstall; if(isset($_POST['message_erreur'])) echo $_POST['message_erreur']; ?> <div class="liste"> <?php echo '<form method="post" action="index_FR.php?page=verifier" value="envoyer" name="soumettre">'; echo "<input type=hidden name=\"id\" value=\"$id\">"; echo '<p><u><b>Votre Nom :</b></u><INPUT type=text name="nom" cols="65" SIZE="50"><br>'; echo '<u><b>Votre adresse mail :</b></u><INPUT type=text name="mail" SIZE="50"><p><center>'; echo '<u><b>Votre commentaire :</b></u><br><textarea cols="65" name="message" id="message" rows="8" wrap="VIRTUAL" accesskey="c" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onchange="storeCaret(this);" >'.$message.'</textarea><br>'; ?> <input type="reset" value="Effacer"></div> <div class="code"> <table width="587"> <tr><td height="10" align=center width="581"><?php dsp_crypt(0,1); echo'<font size="1">Vous pouvez réinitialiser le code si illisible</font>'; ?></td></tr> <tr><td height="25"></td></tr> <tr><td width="581">Recopier le code pour validation :<input type="text" name="code"><input type="submit" name="submit" value="Envoyer"></td></tr> </table> </div>
Puis le code "verifier.php" :
<?php $nom = $_POST['nom']; $mail = $_POST['mail']; $message = $_POST['message']; $cryptinstall="../livredor/crypt/cryptographp.fct.php"; include $cryptinstall; if (chk_crypt($_POST['code'])) { $nom=$_POST['nom']; $mail=$_POST['mail']; $message=$_POST['message']; header("Location: index_FR.php?page=add&nom=$nom&mail=$mail&message=$message"); } else { $_POST['message_erreur']="Attention ! Soit un champs est vide, soit le code de vérification n'est pas correct !"; } ?>
Puis celui de mise à jour de la base (add.php) :
<?php $nom = $_POST['nom']; $mail = $_POST['mail']; $message = $_POST['message']; $host = 'localhost'; $user = ''; $pass = ''; $db = '..........'; $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); mysql_select_db($db) or die ('Erreur :'.mysql_error()); // On vérifie si les champs sont vides if(empty($nom) OR empty($mail) OR empty($message)) { $_POST['message_erreur']="Attention ! Soit un champs est vide, soit le code de vérification n'est pas correct !"; } else //enregistrement dans la table $jour=date("d"); $mois=date("m"); $annee=date("Y"); $date = "$jour/$mois/$annee"; // on écrit la requête sql $sql = "INSERT INTO livredor (nom, date, mail, message) VALUES('$nom', '$date', '$mail', '$message')"; // on insère les informations du formulaire dans la table mysql_query($sql) or die('Erreur SQL !'.$sql.mysql_error());
Et ça fonctionne pô ..... :((
J'ai un résultat à peu près identique en utilisant des Sessions .... C'est à dire qu'un enregistrement à blanc est créé, et j'ai perdu mes données ....
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 504
15 juin 2010 à 14:51
15 juin 2010 à 14:51
La fonction session_start() modifie les entêtes HTTP.
Pour pouvoir les modifier, elles ne peuvent pas être envoyées au client (navigateur).
Et elles sont envoyées avant le premier caractère (ou à la fin de l'exécution du script s'il n'y a pas de caractères sortants).
Donc tu dois faire appelles à ces fonctions avant de faire un echo, et il ne doit pas y avoir de caractère (les espaces blancs sont aussi des caractères) en-dehors de « <?php ... ?> ».
Pour pouvoir les modifier, elles ne peuvent pas être envoyées au client (navigateur).
Et elles sont envoyées avant le premier caractère (ou à la fin de l'exécution du script s'il n'y a pas de caractères sortants).
Donc tu dois faire appelles à ces fonctions avant de faire un echo, et il ne doit pas y avoir de caractère (les espaces blancs sont aussi des caractères) en-dehors de « <?php ... ?> ».
<?php session_start() ; ?><!DOCTYPE html PUBLIC "..." "..."> <html xmlns="..." xml:lang="fr" lang="fr"> ... <?php $_SESSION['var'] = 'val'; ?> ... </body> </html>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lezao
Messages postés
469
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
14 août 2016
36
15 juin 2010 à 15:11
15 juin 2010 à 15:11
faites un simple echo $_POST['nom'];
afin de verifier que la variable arrive bien.
afin de verifier que la variable arrive bien.
t671
Messages postés
1442
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
2 novembre 2024
11
15 juin 2010 à 15:18
15 juin 2010 à 15:18
Les variables arrivent bien à "verifier.php", mais pas à "add.php".
Donc je les perds au milieu, et je pensais que c'était le header de add.php .....
Pour avion-f16 => je vais déjà tenter de résoudre le problème du passage des variables ci-dessus, après je retenterais en utilisant les sessions .... :)
Donc je les perds au milieu, et je pensais que c'était le header de add.php .....
Pour avion-f16 => je vais déjà tenter de résoudre le problème du passage des variables ci-dessus, après je retenterais en utilisant les sessions .... :)
Leviathan49
Messages postés
257
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
22 juillet 2011
70
15 juin 2010 à 17:48
15 juin 2010 à 17:48
Les variables que tu veux récupérer dans add n'arrivent pas dans la variable globale $_POST, quand tu les passe dans l'url, elles arrivent dans $_GET.
Ca donne donc dans add.php:
Ca donne donc dans add.php:
$nom = $_GET['nom']; $mail = $_GET['mail']; $message = $_GET['message'];
t671
Messages postés
1442
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
2 novembre 2024
11
15 juin 2010 à 18:19
15 juin 2010 à 18:19
Merciiiiiiiiiii Leviathan49 ..............
Ca fonctionne !!!!! :o))
Ca fonctionne !!!!! :o))