Encore un problmème de header

Résolu
t671 Messages postés 1478 Date d'inscription   Statut Membre Dernière intervention   -  
t671 Messages postés 1478 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. lezao Messages postés 505 Statut Membre 36
     
    il n'y a t'il pas un message d'erreur HEADER can't send data , un truc comme ça ?
    0
  2. lezao Messages postés 505 Statut Membre 36
     
    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
  3. t671 Messages postés 1478 Date d'inscription   Statut Membre Dernière intervention   11
     
    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
  4. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lezao Messages postés 505 Statut Membre 36
     
    faites un simple echo $_POST['nom'];
    afin de verifier que la variable arrive bien.
    0
  7. t671 Messages postés 1478 Date d'inscription   Statut Membre Dernière intervention   11
     
    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
  8. Leviathan49 Messages postés 267 Statut Membre 70
     
    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
  9. t671 Messages postés 1478 Date d'inscription   Statut Membre Dernière intervention   11
     
    Merciiiiiiiiiii Leviathan49 ..............
    Ca fonctionne !!!!! :o))
    0