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
Bonjour,

J'essaye de passer mes variables par URL, puisque je n'y arrive pas en SESSION.
Mais même là ça ne fonctionne pas. Je doiqs avoir un problème avec le header :

<?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");


Merci pour votre aide.

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
il n'y a t'il pas un message d'erreur HEADER can't send data , un truc comme ça ?
0
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
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.
0
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
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 :

<?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 ....
0
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
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 ... ?> ».
<?php session_start() ; ?><!DOCTYPE html PUBLIC "..." "...">
<html xmlns="..." xml:lang="fr" lang="fr">
...
<?php
$_SESSION['var'] = 'val';
?>
...
</body>
</html>

0

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
faites un simple echo $_POST['nom'];
afin de verifier que la variable arrive bien.
0
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
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 .... :)
0
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
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:
  $nom = $_GET['nom'];
  $mail = $_GET['mail'];
  $message = $_GET['message'];
0
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
Merciiiiiiiiiii Leviathan49 ..............
Ca fonctionne !!!!! :o))
0