Formulaires

jmp kjm Messages postés 73 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 17 janvier 2012 - 6 mai 2010 à 11:33
devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015 - 8 mai 2010 à 00:51
Bonjour,

J'ai un problème pour correctement gérer le routage du visiteur vers la bonne application.

Dans index.php j'ai :

if(!$_POST['ouvrirconsole']){

echo('<form></form>');

}


Ailleurs dans index.php j'ai :

if($_POST['ouvrirconsole']){

include('console.php');

}


Dans console.php j'ai :

<form></form>'

if($_POST['suppressiondusite']){

supprimerSite();

}


Quand on clique sur "Cliquer ici pour supprimer le site" le problème est que comme on est dans un nouveau formulaire alors $_POST['ouvrirconsole'] n'est plus défini et donc on ne recharge plus console.php !

Dans le cas présent bien sûr qu'il y a des solutions faciles comme par exemple mettre le

if($_POST['suppressiondusite']){

supprimerSite();

}


dans index.php au lieu de console.php ou même dans console.php rajouter entre <form> et </form> un




Mais mon application est en réalité beaucoup plus compliquée et je cherche une solution sans bricolage de ce type pour ce problème.

Je vous remercie pour votre aide !

KJM

10 réponses

devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
6 mai 2010 à 12:09
salut ce son tes controle qui te fausse tu test les variable poste comme si c'était des variables bool au lieu de tester si elle ont eété envoyer donc au lieu de
if(!$_POST['ouvrirconsole']){

echo('<form></form>');

}

met plutot
if(!isset($_POST['ouvrirconsole'])){

echo('<form></form>');

}

ainsi de suite en guise de complement la function isset($var) retourne vrai si la variable existe (dans ton cas ton formulaire a bien été envoyé) ou faux dans le cas contraire
0
jmp kjm Messages postés 73 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 17 janvier 2012
6 mai 2010 à 13:51
Bonjour,

Merci pour ta réponse mais là n'est pas le problème.

Le problème c'est que lorsque l'on clique sur "Cliquer ici pour ouvrir la console" la variable $_POST['ouvrirconsole'] n'est plus définie et donc on n'inclut plus console.php e et ainsi on a pas accès à supprimerSite(); bien que $_POST['suppressiondusite'] soit défini.

KJM
0
devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
6 mai 2010 à 13:55
dans ton form il manque
<form action='le_nom_du_script' method='post'>
0
jmp kjm Messages postés 73 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 17 janvier 2012
6 mai 2010 à 14:00
Bonjour,

Oui j'ai écrit en simplifié, en réalité j'ai <form method="post" enctype="multipart/form-data"> et l'action post se fait sur la page courante mais là encore ce n'est pas le problème que je décris.

KJM
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
6 mai 2010 à 14:15
bon la je peux te proposer une solution en utilisant du javascript en effet elle consite a recreer $_POST['ouvrirconsole'] avant d'envoyer le formulaire le seul changement que tu auras a a faire c'est remplacer ton input type ="submit" et ajouter onclick="lafonction javascript" si cette solution te vas je peut t'aider la dessus sinon je suis a cours d'idé
0
jmp kjm Messages postés 73 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 17 janvier 2012
6 mai 2010 à 14:26
Rebonjour,

Je suis intéressé par cette solution il me semble que ça fera très bien l'affaire !

Merci beaucoup.

KJM
0
devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
6 mai 2010 à 14:45
donc voila ce que tu vas faire
dabord le javascript
<script type="text/javascript">
function send() {

if( document.all){ // pour IE
input = document.createElement("");
} else { // pour FF et autres navigateurs
input = document.createElement("input");
input.name = "ouvrirconsole"
}
input.type='hidden';
input.value = '1';
document.getElementById('formsupp').appendChild(input);
document.getElementById('formsupp').submit();
}
</script>
<form>

</form>
va devenir
<form id="formsupp" action="" method="post">

</form>
0
jmp kjm Messages postés 73 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 17 janvier 2012
6 mai 2010 à 16:27
Merci beaucoup c'est très instructif !

Bonne continuation.

KJM
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
7 mai 2010 à 10:15
Salut,

Ca me parait bien compliqué tout ça

Qu'est ce que c'est que cette console ? Une nouvelle fenêtre ? un div dans la page ? Autre chose ?

Bref, il faudrait plus de précisions. Mais bon, une fonction JS pour faire ça me parait barbare.

@Devil_may_cry :
Je n'ai pas bien compris l'intérêt de ta fonction. Elle revient à mettre un :

... autant l'écrire en dur en PHP plutôt qu'utiliser le DOM, non ?

@jmp kjm :
pourquoi ne pas utiliser les sessions ? ou traiter les variables POST dans ton include ?
Une fois de plus il faudrait plus de précisions pour bien comprendre, et évite de "simplifier", car nous ne sommes pas censés être au courant; mieux vaut reporter le code tel qu'il est.


Cordialement,



Kohntark -
0
devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
8 mai 2010 à 00:51
t'a raison Kohntark si ca revenait a moi je ferai ce que t'a dit mais je n'ai repondu qu'en fonction de ce qu'il a mentioner ici :
<<Mais mon application est en réalité beaucoup plus compliquée et je cherche une solution sans bricolage de ce type pour ce problème.
0
Rejoignez-nous