Valeur du bouton choisi en PHP

Fermé
wada - 26 févr. 2009 à 00:01
 toto - 26 févr. 2009 à 10:34
Bonjour à tous,
Voici déja plusieurs jours que je cherche mon erreur en vain!!!
Je fais appel à vous pour un petit coup de main et vous en remercie par avance.
Je vous livre une partie de mon script qui me pose le problème suivant:
Je n'arrive pas à avoir une valeur dans $_POST['acte'] il est toujours inexistant:

Pouvez-vous me dire ou est l'erreur?
Merci 1000 fois!!


!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title><h3>PAGE ADMINISTRATEUR RESERVEE</h3></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>

<form method="post" action="administration.php">
<p>
Veuillez indiquer l'action que voulez effectuer :<br />
<input type="radio" name="acte" value="insertion">insertion
<input type="radio" name="acte" value="modification">modification
<input type="radio" name="acte" value="insert">creation
<input type="radio" name="acte" value="insert">suppression
<tr align="center"><br />
<td colspan="12"><input type="submit" name="envoyer" value="envoyer"></td>
</tr>

<?php
if (!isset($_POST['acte']))
{
$_POST['acte'] = "";
}
$valacte = $_POST['acte'] ;

if(isset($_POST['acte']))
{
switch ($valacte)
// quel est le choix?
{
case "insertion":
//<a href="suppression2.php">Un autre site sur Blender</a>
echo "insertion";
break;
case "":
//<a href="suppression2.php">Un autre site sur Blender</a>
echo "aucune valeur dans acte";
break;

case "modification":
header('Location: index.com'); /* Redirection du navigateur */
echo "Bonjour MODIF!";
echo "Redirection en cours ...";
break;

default: echo "y a rien à voir!!";
break;

}
// Fin du swich
}
A voir également:

5 réponses

Bonjour

Peut-être parce qu'il te manque le </form> ?
0
salut,
ou dois-je le mettre ?
0
après le <tr align="center"><br />
<td colspan="12"><input type="submit" name="envoyer" value="envoyer"></td>
</tr>
D'ailleurs, le <tr><td> et le </td></tr> sont absurdes, tu n'es pas dans un tableau. Tu devrais apprendre un peu le HTML avant de t'attaquer au PHP parce que si tu continues d'essayer de programmer sans commencer par les bases, tu vas te cogner dans tous les murs.
0
Le </FORM> a été remis à sa place ..... mais mon $_POST['acte'] n'est toujours pas reconnu!!!

merci Toto et aux autres
0
Je viens d'essayer ton script et il marche. Il marche même sans le </form> d'ailleurs.
Qu'est ce qui s'affiche quand tu l'essayes ?
Essayes-tu ton script en double-cliquant sur le nom du fichier dans une fenêtre de l'explorateur windows, ou en tapant http://qqchose../administration.php dans la barre d'adresse d'internet explorer ?
0
Salut,
En fait ce script n'est qu'une partie d'un script plus grand qui est appelé par ma page index.
Je n'ai mis que le morceau qui semblait me poser probleme pour faciliter la lecture.
je teste en faisant un double clic sur le fichier index
voici la page entiere

<?php
if (!isset($_POST['mot_de_passe']))
{
$_POST['mot_de_passe'] = ""; // On crée les variables $mot_de_passe vide et $login vide
}
if (!isset($_POST['login']))
{
$_POST['login'] = "";
}

if (($_POST['mot_de_passe'] == "wada") AND ($_POST['login'] == "samia")) // Si le mot de passe est bon
{
$password = 'OK';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title><h3>PAGE ADMINISTRATEUR RESERVEE</h3></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>

<form method="post" action="administration.php">
<p>
Veuillez indiquer l'action que voulez effectuer :<br />
<input type="radio" name="acte" value="insertion">insertion
<input type="radio" name="acte" value="modification">modification
<input type="radio" name="acte" value="insert">creation
<input type="radio" name="acte" value="insert">suppression
<tr align="center"><br /></form>
<input type="submit" name="envoyer" value="envoyer">


<?php
if (!isset($_POST['acte']))
{
$_POST['acte'] = "";
}
$valacte = $_POST['acte'] ;

if(isset($_POST['acte']))
{
switch ($valacte)
// quel est le choix?
{
case "insertion":
// là j'aimerai appeler une page pour faire le traitement <a href="insertion.php">
echo "insertion";
break;
case "":
//<a href="suppression2.php">
echo "aucune valeur dans acte";
break;

case "modification":
echo "Bonjour MODIF!";
echo "Redirection en cours ...";
break;

default: echo "y a rien à voir!!";
break;

}
// Fin du swich
}
?>

</form>
<?php

}
if (($_POST['mot_de_passe'] != "wada") AND ($_POST['login'] != "samia"))
{
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Page protégée par mot de passe</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<p>Veuillez entrer votre mot de passe et votre login :</p>
<form action="administration.php" method="post">
<p>
<input type="text" name="mot_de_passe" /><br />
<input type="text" name="login" /><br />
<input type="submit" value="Valider" />
</p>
</form>
<p>Cette page est réservée à l'administrateur. Si vous ne portez pas cette casquette , inutile d'insister ! ;-)</p>
<?php
}
?>
</body>
</html>

Et encore merci pour ton apport!
0
Tu as mis le </form> AVANT le submit, a ne risque pas de marcher ! Je t'avais dit de le mettre APRES.
De toutes manières, il ne fallait pas du tout, il y en avait déjà un plus loin dans tons script, mais tu ne l'avais pas indiqué.

Ça confirme ce que je disais au message numéro 3 : commence par apprendre les bases, si tu essayes d'écrire sans connaître les règles élémentaires, tu vas faire n'importe quoi - tu as déjà bien commencé.

Et si tu veux de l'aide, essaye de répondre aux questions que je te pose :
Qu'est ce qui s'affiche quand tu l'essayes ?
Essayes-tu ton script en double-cliquant sur le nom du fichier dans une fenêtre de l'explorateur windows, ou en tapant http://qqchose../administration.php dans la barre d'adresse d'internet explorer ?
Le script que tu montres message 6 est-il un seul et même fichier, ou bien as-tu mis index.php et administration.php à la suite ?
0
salut toto!!
Le </form> je l'ai rajouté quand tu m'as dit qu'il en manquait un, un peu sans trop m'attarder dessus.
débutant en html et en php, bien qu'ayant déja potassé tout ça je ne suis pas encore trés sure de moi!!
et je pense que je dois faire du php si je veux avancer même si je n'ai pas retenue toutes les balises html, de plus j'ai pas arrété de trifouiller ce script pour essayer de comprendre ce qui n'allait pas, et en faisant un copie coller d'un autre script traitant des tableaux, j'avais laissé trainer des balises qui n'avaient rien à faire ici, mais qui n'ont pas empêche le prog de tourner et c'est pour cela que je ne les avais pas remarqué (oeil de débutant ne voit pas trés loin)

Le script que j'ai mis est un seul et même fichier.
il est appelé par un lien à partir du fichier index.
et je teste le tout en double cliquant sur le nom du fichier depuis wampserver installé sur mon PC

Voilà toutes les réponses à tes questions
0
J'ai oublié de dire le résultat que ça me donne quand je lance le prog:

Veuillez indiquer l'action que voulez effectuer :
insertion modification creation suppression
aucune valeur dans acte
0

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

Posez votre question
En fait tu as deux pages dans la même ! Soit tu as le formulaire de choix d'action, soit tu as celui de saisie de login / mot de passe.

Quand tu appelles ton script la première fois, comme tu n'as pas le login ni le mot de passe, tu vois le formulaire de login. Normal. Tu remplis ton nom et ton mot de passe et tu valides
Maintenant, tu vois ton formulaire de choix d'action, mais aucune action n'est choisie puisque tu viens de l'autre formulaire : normal qu'il affiche "aucune valeur dans acte".
Maintenant tu choisis une action, tu valides. Ton script est rappelé. Mais ton nouveau formulaire ne contient pas le nom ni le mot de passe : donc tu retombes sur le formulaire de login.

Ton problème, c'est que dès que tu valides le formulaire de choix d'action, tu oublies le nom et le mot de passe, donc tu retombes dans le formulaire de login
Pour ne pas les oublier, il y a 2 techniques : l'utilisation des sessions, ou bien mettre les valeurs du nom et du mot de passe sous forme de champs cachés (<input type ="hidden"...) dans le formulaire de choix d'action.

Tu as une autre faute de logique :
if (($_POST['mot_de_passe'] != "wada") AND ($_POST['login'] != "samia")) il devrait y avoir un OR, pas un AND

Bon courage !
0