Post, Get & co en PHP

Fermé
Sly - 1 oct. 2003 à 07:44
 Utilisateur anonyme - 1 oct. 2003 à 08:58
Salut :)
1er post pour un problème surement tout bête, mais sur lequel je me casse les dents depuis des heures...

J'ai un script php qui s'auto-envoie des paramètres via $_POST, avec un formulaire. Genre:

$act=$_POST['act'];

if (!$_POST['act']){$act='form'}else{$act=$_POST['act']}

switch ($act){

case ('form'):
//Affichage des divers truc de formulaires...
echo"<input name=\"act\" type=\"hidden\" value=\"copie\">\n";

case ('copie'):
//script executif d'après les données du formulaires
}

Lors de l'appel de la page, affichage du formulaire, Classique. Seulement, une fois que le 1er formulaire est envoyé, si j'appelle la page (sans clore la session) par son url, $_POST est encore pleine et je ne sais comment reconnaitre un appel par formulaire ou un appel direct.
Cela me pose problème, car en cas de plantage du script dans le case 'copie', le seul moyen de revenir au formulaire et de modifier les paramètres, c'est de fermer IE... :(

Ya surement une astuce bête. Je précise que vider $_POST vers la fin du script ne convient pas, car en cas de plantage du script, le vidage ne se fait pas.

Merci de vos réponses, actuellement, j'en suis à copier le contenu intégral de $_post dans un tableau et de vider $_post dès l'intro du script. Mais cela me parait vraiment pas propre.
A voir également:

2 réponses

En fait, pour simplifier:
Comment recoonaitre que la page a été appelée par un formulaire ou par l'url directe (quand elle à déjà été appelée par formulaire auparavant) ?

Merci d'avance ;)
0
Utilisateur anonyme
1 oct. 2003 à 08:58
Salut,
En fait, il te faut faire un test au début:

if(isset($_POST('act')){ }

En fait, ce test te permet de savoir si la variable act contient quelque chose ou pas.
Si isset egal true alors tu traites ton formulaire.
Sinon, tu te contentes d'afficher le formulaire sans faire le traitement...

Kalamit,
Parle à ma culasse, mon carter est malade. :)
0