2010-08-11 4 views
-2

Une fois que certaines données sont soumises via POST, est-il possible de les rendre disponibles sous $ _POST à ​​travers différentes pages, même comme $ _SESSION nous le permet?

Répondre

1

Fouiller une vieille question aujourd'hui. Mais j'ai oublié de poster la solution de travail que je creusais ....

Placez cet extrait en haut de chaque page de votre

if(isset($_POST) & count($_POST)) { $_SESSION['post'] = $_POST; } 
if(isset($_SESSION['post']) && count($_SESSION['post'])) { $_POST = $_SESSION['post']; } 
+0

Yikes! Codage en écriture seule à son meilleur. – TRiG

1

Vous devrez analyser les données dans $ _POST et les recréer dans votre formulaire. Vous pouvez le faire avec des champs cachés. Ou, vous pouvez enregistrer les données $ _POST dans une session utilisateur et vous y référer quand vous en avez besoin. Vous devrez gérer le cycle de vie des données pour vous assurer qu'elles ne restent pas trop longtemps.

+0

J'envoie la chaîne de requête à l'aide des liens, donc je ne suis pas en utilisant le formulaire pour poster ceux – Starx

+1

Ensuite, vous devrez analyser $ _POST en paramètres et les ajouter à votre lien. Ils seront disponibles pour votre script dans $ _GET et $ _REQUEST. –

+0

le remède est encore pire que la maladie. Et s'il y a du texte volumineux ou des informations sensibles comme un mot de passe? –

0

Le problème est que vous envoyez les données via l'URL qui est stockée dans la variable $ _GET, pas dans $ _POST. Si vous souhaitez pouvoir envoyer les données dans l'un ou l'autre format, utilisez $ _REQUEST à la place. Il y a un débat sur la question de savoir si c'est une bonne idée d'utiliser $ _REQUEST, mais si vous faites un site simple, il y a peu de mal à le faire.

Si vous préférez ne pas utiliser _REQUEST $, vous pouvez utiliser le code suivant sur chaque variable que vous attendez:

if (!empty($_GET['foo'])) { 
    $foo = $_GET['foo']; 
} elseif (!empty($_POST['foo'])) { 
    $foo = $_POST['foo']; 
} else { 
    die("Foo not submitted"); 
} 
Questions connexes