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 :D

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 :

Code : Tout sélectionner

Je veux $_POST mettre dans $_SESSION
PHP se débrouillera pour le reste :wink:

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".