Formulaire html/php

Résolu/Fermé
Akronos - 6 janv. 2011 à 14:51
Akronos Messages postés 140 Date d'inscription jeudi 6 janvier 2011 Statut Membre Dernière intervention 31 janvier 2011 - 6 janv. 2011 à 15:53
Bonjour,

J'ai un petit problème... :)

Je me retape une appli web(html, css, js, ajax, poo, pdo).
A l'endroit ou j'en suis, on arrive sur un fichier (exemple: fichier.php), qui en fonction d'un get page va inclure un fichier (exemple si $_GET['page'] == 3, on inclut page3.php) contenant un formulaire (différent sur chaque pageX.php).
Pour mon premier formulaire j'ai réussi à faire en sorte que tout fonctionne correctement.
Mais à tout les autres, impossible :/
Le form utilise les méthodes posts, avec pour action le fichier principal.
Exlications:
En admettant que je soit sur fichier.php?page=3, j'ai dans fichier.php:
require_once("page3.php");

et dans page3.php:
<form method="post" action="fichier.php?page=3" ...>
...
</form>


Biensûr je simplifie l'arborescence dans mon exemple. Quelqu'un aurait-il une idée d'ou ça vient?

A voir également:

3 réponses

UgglyBoy Messages postés 422 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 30 mai 2015 64
6 janv. 2011 à 15:24
ça devrait fonctionner... mais.

3 choses:
1) quand tu dis "Pour mon premier formulaire j'ai réussi..." c'est quoi exactement? "fichier.php" ou "fichier1.php"?

2) essaie d'isoler le mécanisme: dégage tout sauf le form et un input à l'intérieur.

3) ne serait-il pas plus simple de tout faire en post et récupérer la "page" avec un input hidden?
1
Akronos Messages postés 140 Date d'inscription jeudi 6 janvier 2011 Statut Membre Dernière intervention 31 janvier 2011 32
6 janv. 2011 à 15:38
Bonjour,

Je vais répondre dans le même ordre:
1) Premier formulaire = fichier.php?page=0 soit le fichier inclut "page0.php" (je rappelle que c'est un exemple c'est pas leur vraie appellation)
2) En réalité j'ai isoler un max. L'application avait été reprise à 0 par une personne avec une formation C/C++, il a tout codé de la même manire, avec de snoms de variables et de fichiers à rallonge. Il y avait des redirections de partout. Enfin bref, comme je l'ai dit, POO et PDO, le seul code sur la page et le formulaire et son traitement.
Le plus bizarre étant qu'avec firebug, aucun post n'est reçu.
Pire encore, je fais juste avant le formulaire:
echo "POST################<pre>"; var_dump($_POST); echo "</pre>";

echo "GET################<pre>"; var_dump($_GET); echo "</pre>";

die();

Mais rien, ça charge la page entièrement.

3) Pas bien compris ce que tu proposes. Le get sert juste a savoir quel formulaire inclure. Le formulaire utilise bien des posts.

Je pense que celà vient d'une redirection javascript. Faut-il encore que je la toruve, j'ai ctrl+f les fichiers pour cherché toutes les redirections javascript ou html.
0
UgglyBoy Messages postés 422 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 30 mai 2015 64
6 janv. 2011 à 15:49
1) si je te demandais le nom de fichier (l'url) c'était pour essayer de comprendre pourquoi cela fonctionne avec le 1er et pas les autres... quelle est la différence...

2) ok, récupérer le travail de qqun d'autre n'est jamais facile...

3) p.ex:
<form method="post" action="fichier.php">
...
<input type="hidden" name="page" value="3" />
</form>

à la réception du form:
if ($_POST['page'] == 3) require_once("page3.php");
1
Akronos Messages postés 140 Date d'inscription jeudi 6 janvier 2011 Statut Membre Dernière intervention 31 janvier 2011 32
6 janv. 2011 à 15:53
Bien j'ai trouver la solution à mon problème.

En fait, fichier.php vérifie une variable $_GET['state]. Cette variable sert à actualiser un menu javascript après une création de session, le problème était que mon form envoyé sur fichier.php?page=X, la variable get n'étant pas renseigné, fichier.php redirigé directement vers fichier.php?page=X&state=reload. Les $_POST étaient donc détruit avant d'être traité.

Il me suffit donc de mettre action="fichier.php?page=X&state=reload"

Merci pour l'aide.
0