Switch et php 5 [Résolu]

cseagle
Messages postés
99
Date d'inscription
vendredi 18 avril 2003
Dernière intervention
5 août 2009
- 3 sept. 2004 à 21:53 - Dernière réponse : gibozsec
Messages postés
318
Date d'inscription
mardi 27 mai 2003
Dernière intervention
11 mars 2010
- 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
Messages postés
252
Date d'inscription
vendredi 13 juin 2003
Dernière intervention
25 avril 2011
- 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é 94 internautes ce mois-ci

Commenter la réponse de cs_Chouchou182
cs_Chouchou182
Messages postés
252
Date d'inscription
vendredi 13 juin 2003
Dernière intervention
25 avril 2011
- 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
Messages postés
318
Date d'inscription
mardi 27 mai 2003
Dernière intervention
11 mars 2010
- 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
Messages postés
99
Date d'inscription
vendredi 18 avril 2003
Dernière intervention
5 août 2009
- 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
Messages postés
99
Date d'inscription
vendredi 18 avril 2003
Dernière intervention
5 août 2009
- 4 sept. 2004 à 10:05
0
Merci
Merci beaucoup c'est ça, ça fonctionne impec.

Encore merci
Commenter la réponse de cseagle
gibozsec
Messages postés
318
Date d'inscription
mardi 27 mai 2003
Dernière intervention
11 mars 2010
- 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.