Pb de switch case !
Bonjour,
Voila je rencontre un probleme avec un switch case, j'ai fait une messagerie interne et j'ai mis dans mon switch a la case "new" : un formulaire pour entrer un message a envoyer ! Or le formulaire est de method POST et que je l'envoi le switch ne risque pas de reconnaitre $_POST , vu que la condition du switch est $_GET['do'] , et j'ai essayer de mettre $_GET || $_POST mais ca marchais plus aprés !
Voila mon code :
http://www.lephpfacile.com/wall/wall.php?id=2031
En gros je voudrais qu'aprés avec valider le formulaire , le switch case rentre dans la case ='envoyer' pour executer l'envoi !
Merci de vos conseils,
Ciao,
I am singing in the rain , I am happy again !!
fait comme sa
<?php
if(isset($_GET[do]))
{
$var = $_GET[do];
}
else
{
$var = $_POST[do];
}
switch($var)
{
case 'xx':
break;
default:
break;
}
?>
Oui j'y avais penser mais La_glob m'as dit que le switch n'était pas forcement meilleur que le else if dont j'ai mis un else if ! Par contre j'ai encore une parse error !
http://www.lephpfacile.com/wall/wall.php?id=2032
Merci de votre aide,
Ciao,
I am singing in the rain , I am happy again !!
xtreme, faut inversé le isset($_POST["do"]) et du $_GET.
Parce que meme si tu post, dans l'url, tu veras toujours le "url/page.php?param1=valeur1&do=valeur2"...
Donc c'est mieux de vérifier avant, le $_POST, plutot que le $_GET, sachant que le post n'existe que s'il a bien cliquer sur le bouton.
(ou alors forcer l'action vers la meme page, sans parametre dans l'url, via un 'action="pageencour.php"' dans la balise form ^^)
>> http://projectopensource.free.fr/index.php?m=2&m2=5&s=8 <<
il te manque une accolade, probablement a la fin...
Et je serait toi, j'indenterais mon code proprement, parce que meme en copiant/collant le code dans mon editeur, et bien c'est pas encore joli joli a voir ^^
Si j'avais pas le surlignage des (), [] et {}, je pense que j'aurais pas trop vu d'ou ca vient.
Et meme la, c'est assez illisible pour te dire précisément ou ca manque ^^
>> http://projectopensource.free.fr/index.php?m=2&m2=5&s=8 <<
citation:
sachant que le post n'existe que s'il a bien cliquer sur le bouton
heu si c un formulaire pour valider fo bien cliker sur le bouton
apret dans la majoriter des personne ki font de formulaire specifie la method.
alor
euh, je me suis peut etre mal exprimé ^^
En fait, si tu fais
si $_GET existe, je prend $_GET
sinon je prend $_POST
hors, si tu ne force pas l'action dans la balise form (via action="currentpage.php"), et que le gars a mise un parametre $_GET identique a celui d'un $_POST, comme il commence par vérifié la presence du parametre dans l'url, et que celui ci exite, alors il ne prends pas le $_POST, quand bien meme il aurait cliquer sur le bouton ^^
T'as qu'a faire le test tout simple.
<?php
if (TRUE == isset($_GET["test"]))
{
echo ("\$_GET[test] vaut: ".$_GET["test"]);
}
else
{
echo ("\$_POST[test] vaut: ".$_POST["test"]);
}
?>
<html>
<head>
<title>Test</title>
</head>
<body>
<form method="post">
<input type="submit" name="test" value="Je poste !">
</form>
</body>
</html>
voila, tu copie ca dans un fichier, tu le teste avec l'url:
http://(nomdedomaine)/tonfichier.php?test=variable_du_get
et tu me dis ce que tu vois d'affiché ^^
Logiquement, tu n'aurais toujours que:
$_GET[test] vaut: variable_de_get
>> http://projectopensource.free.fr/index.php?m=2&m2=5&s=8 <<
Il a raison , logiquement tu aura toujours la var $_GET dans ta variable $var.
Mieux vaut faire le contraire.
Ensuite ne pas oublier les quotes ou guillements dans une var tableau
Pourquoi ? Simplement parce que si il n'y pas de quote alors do (ici en l'occurence) sera considéré comme une constante si non defini sera egale a do (forcement) mais si il y a define('do','toto') alors $_GET[do] sera equivalent a $_GET['toto'].
Donc toujours mettre des quotes.
zebdinou pour les intimes / Blog : http://www.zebden.fr
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: