IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Conserver les données passées en POST


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Par défaut Conserver les données passées en POST
    Salut,
    j'ai ce formulaire de contact :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <FORM action="includes/fr/mailcontact.php" method="POST">
     
    <INPUT type="hidden" name="Subject" value="Contact">
     
     
    <?php echo $contact_email; ?><INPUT name="Mail" size="30" class="inputboxweb" ><br>
    <?php echo $contact_objet; ?> <INPUT name="Objet " size="30" class="inputboxnews"><br>
     
    <?php echo $contact_mess; ?> <br>
    <TEXTAREA cols="40" name="Message" rows="6" class="inputboximages"></TEXTAREA><br><br>
    <CENTER><INPUT type="submit" value="<?php echo $contact_envoyer; ?>" class="inputboxaudio"> <INPUT type="reset" value="<?php echo $contact_annuler; ?>" class="inputboxvideo"></CENTER>
     
    </FORM>
    Ce code est donc envoyé avec mailcontact.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?php
     
    $TO = "contact@****.com";
     
     
     
    $DEFAULT_EXIT_PAGE = "../../contact.php?message=Message bien envoyé!";
     
     
    $headers  = "From: Anonymous on $SERVER_NAME 
    <$mail>\n";
    $headers .= "Message de Reedle";
     
    $message = "";
     
    while (list($key, $val) = each($HTTP_POST_VARS)) { 
    	$message .= "$key : $val\n"; 
    } 
     
    $message .= "\nSent by ".gethostbyaddr($REMOTE_ADDR). " ($REMOTE_ADDR)\n";
     
    mail($TO, $subject, $message, $headers); 
    	// En : Send mail
    	// Fr : Envoi du mail 
     
    if(! $exit_page)
    	$exit_page = $DEFAULT_EXIT_PAGE;
     
    Header("Location: ".$exit_page);
     
    // Exit -> $exit_page
     
    ?>
    Mais entre les 2 je voudrais mettre un autre page (verifier.php) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    session_start();
    if ($_SESSION['cryptcode'] == md5($_POST['code']) and (!$_SESSION['cryptreload']))
       { 
      header('Location: mailcontact.php');
    }
       unset($_SESSION['cryptreload']);
       } 
      else {
           header('Location: ../../contact.php?message=Code incorrect!');
           $_SESSION['cryptreload']= true;
           }
    ?>
    Qui donc va vérifier si un code est correct ou non. Tout marche sauf un petit (énorme) problème, toutes les données du formulaire sont perdus en chemin ( faut croire que le chemin est long^^).
    Enfin, plus sérieusement, comment faire pour que les données ne soit pas perdus?

    Merci de votre aide.

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Il faut créer la session sur la page intermédiaire et après la récupérer sur la dernière page

    Tu n'as qu'à faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['post'] = $_POST
    Ca gardera tout le contenu de post dans une seul variable de sessions

  3. #3
    Membre éclairé Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Par défaut
    Il faut mettre sa dans verifier.php ? si oui je ne vois pas comment , car j'ai essayé et j'ai des FATAL ERROR

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    dans le fichier intermédiaire oui :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    session_start();
    $_SESSION['post'] = $_POST;
    print_r($_SESSION['post']);
    print_r($_POST);
    Les print_r c'est juste pour vérifier qu'il y a bien quelque chose

  5. #5
    Membre éclairé Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Par défaut
    J'ai mit sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
    session_start();
    $_SESSION['post'] = $_POST;
    print_r($_SESSION['post']);
    print_r($_POST);
    session_start();
     
    if ($_SESSION['cryptcode'] == md5($_POST['code']) and (!$_SESSION['cryptreload']))
       { 
      header('Location: mailcontact.php');
    }
       unset($_SESSION['cryptreload']);
       } 
      else {
           header('Location: ../../contact.php?message=Code incorrect!');
           $_SESSION['cryptreload']= true;
           }
     
    ?>
    Et j'ai ca :
    Parse error: syntax error, unexpected '}' in /home/recherche/www/includes/fr/verifier.php on line 13

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Problème très complexe
    N'aurais-tu pas par hasard un } en trop ou mal placé vers la ligne... 13 (traduction du message d'erreur) ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Comment mettre à jour en conservant les données actuelles d'un champs
    Par MisterMacPhisto dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 17/04/2007, 15h49
  2. réaffichage d'une page en conservant les données
    Par tetedeturcq dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/04/2007, 16h48
  3. Réponses: 12
    Dernier message: 28/04/2006, 11h38
  4. [MySQL] Taille limite des données passées par POST
    Par FoxLeRenard dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/03/2006, 17h46
  5. Réponses: 8
    Dernier message: 19/05/2005, 16h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo