Page 1 sur 1
disparition des $_POST
Posté : 09 sept. 2007, 00:11
par hypno
bonjour,
j'aimerais savoir comment éviter l'évaporation des variable $_post après un refresh de la page.
ca me pose de gros problème car j'aimerais découper les resulats du formulaire en plusieurs pages et pour le moment, quand je clic pour aller à la page suivante, toute mes $_POST disparaissent et j'obtiens donc une erreur.
merci.
Posté : 09 sept. 2007, 02:42
par Patriboom
Une façon de contourner le problème: envoyer tes infos contenues en POST dans l'URL nouveau. Tu les retrouveras en $_GET et lisibles dans la barre d'adresse.
Tu peux aussi les passer dans une autre "frame" en attendant le rafraîchissement.
Tu peux encore les entreposer dans une table temporaire de ta base de données.
Posté : 09 sept. 2007, 03:15
par Sékiltoyai
Ou plus simplement et proprement
les sessions
Posté : 09 sept. 2007, 10:30
par hypno
voilà donc je fais ça pour chaque variable:
if(isset($_POST['var1']))
{
$_SESSION['var1'] = $_POST['var1'];
}
c'est ça, ou il y a un moyen plus simple?
Posté : 09 sept. 2007, 12:31
par Sékiltoyai
Essaye $_SESSION = $_POST

Posté : 09 sept. 2007, 13:11
par Invité
heu si je fais ça:
$_SESSION = $_POST
ça m'écrase toute mes autres variables de session

Posté : 09 sept. 2007, 13:34
par hypno
j'ai essayé $_SESSION = $_SESSION + $_POST mais du coup les nouveaux $_POST n'écrasent pas les anciens $_SESSION, ce qui pose problème.
Posté : 09 sept. 2007, 14:54
par Truc
essaie avec :
PHP se débrouillera pour le reste
Soit tu prend variable par variable soit tu affectes à un sous tableau de session (pour plus de lisibilité):
$_SESSION["post"][] = $_POST; // ou $_SESSION[] = $_POST;
ou extract() ou la doc

Posté : 09 sept. 2007, 16:03
par hypno
voilà j'ai donc fait:
if(isset($_POST))
{
$_SESSION['post'] = $_POST;
}
et cette fois, j'ai encore un problème:
php rentre toujours dans le if, même après un refresh, alors que mes variables POST sont toutes vides.
Posté : 09 sept. 2007, 16:05
par hypno
ok j'ai rien dit avec un :
if ($_POST) ça marche très bien.
merci à tous!
Posté : 09 sept. 2007, 18:01
par Sékiltoyai
Le tableau $_POST est toujours défini, lorsqu'il n'y a aucune donnée envoyée en post, il est vide, mais défini. Donc il faut tester avec la fonction empty().
Posté : 09 sept. 2007, 19:30
par Patriboom
Ce me sera utile à moi aussi.
Je ne connaissais pas la fonction "Session".