Page 1 sur 1

sauvegardez la valeur $_POST

Posté : 23 mars 2011, 19:16
par light86
bonsoir à tous j'ai une variable $_POST qui contient des valeurs dynamiques à cause d'une fonction
je voudrais savoir comment je peut sauvegardez la valeur de $_POST quand je change de page
j'ai essayez les sessions mais ca ne garde pas la structure de $_POST

merci

Re: sauvegardez la valeur $_POST

Posté : 23 mars 2011, 19:22
par moogli
Salut,
Qu'entend tu par ne garde pas la structure de poste ?

Si tu fait un $_SESSION['post']= $_POST;
Tu va copier le contenue complet de ce que retourne le formulaire !

Peut etre devrais tu être un peut plus precis sur ton souci ;(

@+

Re: sauvegardez la valeur $_POST

Posté : 23 mars 2011, 20:03
par light86
slt merci je sais sa marche mais je aurai un tableau à deux dimension array de array
merci

Re: sauvegardez la valeur $_POST

Posté : 23 mars 2011, 20:29
par sadeq
Bonjour,

Oui c'est possible de sauvegarder et restaurer le tableau $_POST ou $_GET dans la session pour transmettre ses données entre pages. Voici comment:
Page1.php : Elle reçoit un $_POST d'un formulaire et le stock dans la session :
<?php
     // initialiser la session
     session_start();
     
     // si il y a postage de données par un formulaire, alors le sauvegarder dans la session
     if (isset($_POST)) {
          $_SESSION["post"] = $_POST;
     }
?>
Page2.php : Elle restaure les données d'un $_POST éventuellement enregistrées préalablement dans la session :
<?php
     // initialiser la session
     session_start();
     
     // si il y a des données de postage dans la session, alors les restaurer
     if (isset($_SESSION["post"])) {
          $_POST = $_SESSION["post"];
     } 
?>
Et voila, le tour est joué.

Re: sauvegardez la valeur $_POST

Posté : 23 mars 2011, 20:46
par light86
slt merci pour ta réponse ca marche mais j'ai une question
supposant que la page 1 reçoit un post mais en même temps elle envoit aussi j'ai post
j'ai remarqué quand je fait ca
if (isset($_SESSION["post"])) {
$_POST = $_SESSION["post"];
}
je part le past de page 1
comment faire pour fusionnez les deux tableaux $_POST
merci

Re: sauvegardez la valeur $_POST

Posté : 23 mars 2011, 21:01
par sadeq
Bonne question (même si elle est mal formulée), si la page2.php doit combiner un tableau $_POST qu'elle reçoit d'un formulaire et un autre sauvegardé dans une session la solution est d'utiliser les fonction de fusion de tableaux comme array_merge() ou array_merge_recursive().

Voici un exemple:
Page2.php : Elle restaure les données d'un $_POST éventuellement enregistrées préalablement dans la session :
<?php
     // initialiser la session
     session_start();
     
     // si il y a des données de postage dans la session, alors les restaurer 
     if (isset($_SESSION["post"])) {
        if (isset($_POST) {   // en les ajoutant à un tableau $_POST éventuellement existant
           $_POST = array_merge_recursive($_SESSION["post"] , $_POST); // fusion des données du $_POST et celui dans la session (sans écraser les mêmes index)
        }
       else {  
           $_POST = $_SESSION["post"]; // sinon on crée un nouveau POST
        }
     }
?>