résolu - impossible de recupérer les $_POST [PHP] - PHP - Programmation
Marsh Posté le 21-03-2008 à 10:55:38
Burps a écrit : la page web n'affiche rien dans le print_r($_REQUEST, 1) Vous auriez une idée d'ou peut provenir le pb ? |
oui, du ",1".
http://fr2.php.net/manual/en/function.print-r.php
Citation : return If you would like to capture the output of print_r(), use the return parameter. If this parameter is set to TRUE, print_r() will return its output, instead of printing it (which it does by default). |
Marsh Posté le 21-03-2008 à 11:12:07
OK, j'avoue, j'avais copié-collé sans vérifier ce que ca faisait...
Ceci dit, il m'affiche bien ce qui est dans $_GET, et le [PHPSESSID], mais mes données du formulaire pas du tout...
Marsh Posté le 21-03-2008 à 14:25:28
OK, des details, je coris que je vois d'ou vient le probleme
j'ai en realité une seule page php, avec des frames (c mâââlllll, je sais...)
- si la page eest appeleé avec un GET vide, alors on crée un frameset
- si $_GET['frame'] == top, alors on crée le formulaire
- si $_GET['frame'] == main, alors on affiche un resultat
Code :
|
J'ai un doute sur l'origine du pb :
Lorsqu'on clique sur le bouton "Go !", il appelle la page elle-meme, et envoie les données dans le $_POST. (jusque la, tout va bien)
- ensuite, il load donc la page 'PHP_SELF' (donc lui-meme), a priori sans le $_GET['frame'] --> donc il va recharger le frameset
--> est-ce a ce moment-la qu'il perd le $_POST ?
J'ai essayé de passer dans le formulaire <form name='frm' method='post' action='".$_SERVER['PHP_SELF']."?".$_GET['frame']."'>, donc rajouter le frame
--> meme resultat....
Est-ce que qqu'un qurait une idée ?
Marsh Posté le 21-03-2008 à 15:03:18
en fait, je peux pas vraiment le faire a la ligne 1, ou bien on n'aura pas le frameset : ca vient du fait que pour un frameset, tu ne peux pas le mettre entre les <body></body> (j'y ai perdu une demi-journée....).
Ceci dit, pour le test, j'ai fait : afficher la page comme elle est actuellement, PUIS ajouter le print_r($_POST) a la ligne 1, et envoyer le formulaire
--> effectivement, j'obtiens mon $_POST rempli
Donc, je pense a voir bien localisé le pb dans mon post precedent.
la solution serait donc de pouvoir propager le $_POST : est-ce possible ?
Marsh Posté le 21-03-2008 à 15:10:31
oui abandonne les frames... utilise des includes (surtout en php)
Marsh Posté le 21-03-2008 à 15:43:59
Bon, OK, t'as gagné (et puis je savais que les frames c'etait mal, on me l'avait dit... maintenant je le sais par experience
Ets-ce que tu pourrais par contre me donner la structure pour commencer proprement stp ?
Je vois pas trop comment organiser mon code avec ces includes desormais...
Merci d'avance
Marsh Posté le 21-03-2008 à 15:49:50
ba tout le contenue de chaque frame, sont dans des fichiers séparés.
(par ex la frame du haut peut etre un truc du genre:
Code :
|
tu le mets dans entete.php par ex. en elevant le </body>
et ensuite sur ta page principale
au lieu de mettre des <frame> tu met
Code :
|
et ensuuite ton code classique
Marsh Posté le 21-03-2008 à 10:52:57
Salut
J'affiche un formulaire, avec des textarea, et je veux recupérer des infos par la suite :
Avec l'addon firefox "Live HTTP Headers", je vois bien que le POST contient les données, mais la page web n'affiche rien dans le print_r($_REQUEST, 1)
Vous auriez une idée d'ou peut provenir le pb ?
Message édité par Burps le 21-03-2008 à 16:06:06