Switch et php 5 [Résolu]

cseagle 99 Messages postés vendredi 18 avril 2003Date d'inscription 5 août 2009 Dernière intervention - 3 sept. 2004 à 21:53 - Dernière réponse : gibozsec 318 Messages postés mardi 27 mai 2003Date d'inscription 11 mars 2010 Dernière intervention
- 4 sept. 2004 à 15:20
bonsoir à toutes et à tous,

voila mon souci :

J'ai une page d'inscription avec un formulaire qui renvoi après validation vers cette même page contenant un switch($action).
Mon problème est que si je ne défini pas $action avant le switch il me balanche un message d'erreur, si je la déclare vide il prend rien quand le formulaire est validé et si je lui donne une valeur POST[variable] il me balance une erreur quand le form a pas été envoyé.

Je sais pas si je suis clair mais ma question est :

Comment déclarer cette variable $action sans bloquer le formulaire et sans message d'erreur ???

-------------------------------

Détail en dessous

-------------------------------

<?php
switch($action) {

case "add";

......

break;

default;

echo "Inscription Membre
<form action="inscription.php" method="post">

.....";
break;
}
?>

Mon souci c'est que comme cela, lorsque $action n'est renseigné il me balance :

Notice: Undefined variable: action in inscription.php on line 20
qui correspond au switch($action){

--------------------------------

<?php

$action = ' ';

switch($action) {

case "add";

......

break;

default;

echo "Inscription Membre
<form action="inscription.php" method="post">

.....";
break;
}
?>

Mon souci c'est que comme cela, il me recharge le formulaire vierge et sans faire le switch

--------------------------------

<?php
$action = $_POST["action"];

switch($action) {

case "add";

......

break;

default;

echo "Inscription Membre
<form action="inscription.php" method="post">

.....";
break;
}
?>

Mon souci c'est que comme cela, lorsque $action n'est renseigné il me balance :

Notice: Undefined index: action in inscription.php on line 20
qui correspond au $action = $_POST["action"];
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
cs_Chouchou182 252 Messages postés vendredi 13 juin 2003Date d'inscription 25 avril 2011 Dernière intervention - 4 sept. 2004 à 09:44
3
Merci
Hello
4eme essai :

<?php

if(isset($_POST["action"])) {
$action = $_POST["action"];

switch($action) {
/*-----------------------------------------------------------------*/
/* AJOUT DANS MySQL */
/*-----------------------------------------------------------------*/

case "add";
..............;
break;
} // Fin du Switch

} else { // Sinon on affiche le formulaire

} // Fin du If


Une variable nomée name (name est un nom arbitraire que j'utilise pour l'exemple) transmise par un formulaire est stockée dans le tableau $_POST['name'] si l'action du form est positoinnée à post ou dans $_GET['name'] si l'action est sur get.

De plus, selon la configuration du serveur, la variable transmise via le formulaire peut être directement dans $name ; mais ce n'est pas toujours le cas.

Donc utiliser $_GET et $_POST.

A++

Chouchou

Merci cs_Chouchou182 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 80 internautes ce mois-ci

Commenter la réponse de cs_Chouchou182
cs_Chouchou182 252 Messages postés vendredi 13 juin 2003Date d'inscription 25 avril 2011 Dernière intervention - 3 sept. 2004 à 23:33
0
Merci
Salut

Utilise la fonction isset($variable)
pour savoir si la variable est déclarée.
Sinon affiche le form vide.

A++

Chouchou
Commenter la réponse de cs_Chouchou182
gibozsec 318 Messages postés mardi 27 mai 2003Date d'inscription 11 mars 2010 Dernière intervention - 3 sept. 2004 à 23:42
0
Merci
Exact, le paramètre doit etre $_POST["tavariable"], pas ta variable elle même.

?-) Grrrrrrrrrrr ?-)
Commenter la réponse de gibozsec
cseagle 99 Messages postés vendredi 18 avril 2003Date d'inscription 5 août 2009 Dernière intervention - 4 sept. 2004 à 08:59
0
Merci
Bon alors voila ce que j'ai fait qui ne fonctionne pas mieux :

1er essai

<?php 

if(isset($action)) {
$action = $_POST["action"];

switch($action) {
/*-----------------------------------------------------------------*/
/*	AJOUT DANS MySQL			*/
/*-----------------------------------------------------------------*/

case "add";
..............;
break;
} // Fin du Switch

} else { // Sinon on affiche le formulaire

} // Fin du If


Il m'affiche le formulaire mais lorsque je valide ne fait pas le switch (donc action n'est pas défini)

2eme essai

<?php 
$action = $_POST["action"];
if(isset($action)) {

switch($action) {
/*-----------------------------------------------------------------*/
/*	AJOUT DANS MySQL			*/
/*-----------------------------------------------------------------*/

case "add";
..............;
break;
} // Fin du Switch

} else { // Sinon on affiche le formulaire

} // Fin du If


Il m'affiche le formulaire et :
Notice: Undefined index: action in inscription.php on line 20
soit $action = $_POST["action"];

3eme essai

<?php 

if(isset($action)) {

switch($action) {
/*-----------------------------------------------------------------*/
/*	AJOUT DANS MySQL			*/
/*-----------------------------------------------------------------*/

case "add";
..............;
break;
} // Fin du Switch

} else { // Sinon on affiche le formulaire

} // Fin du If


Il m'affiche le formulaire mais lorsque je valide ne fait pas le switch (donc action n'est pas défini)
Commenter la réponse de cseagle
cseagle 99 Messages postés vendredi 18 avril 2003Date d'inscription 5 août 2009 Dernière intervention - 4 sept. 2004 à 10:05
0
Merci
Merci beaucoup c'est ça, ça fonctionne impec.

Encore merci
Commenter la réponse de cseagle
gibozsec 318 Messages postés mardi 27 mai 2003Date d'inscription 11 mars 2010 Dernière intervention - 4 sept. 2004 à 15:20
0
Merci
:) Je t'avais préciser d'utiliser $_POST["tavariable"] comme paramètre.

?-) Grrrrrrrrrrr ?-)
Commenter la réponse de gibozsec

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.