Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

probleme php: encore du paranormal??

7 réponses
Avatar
227dam
Bonjour et merci a ceux qui pourraient me repondre:

Voici une portion de mon code:

<?php
define ("MODE_DEFAUT", "defaut");
define ("MODE_INSERTION", "insertion");
define ("MODE_MAJ", "maj");
?>

Fichier FilmSimple.php:doit recuperer le mode et en fonctionde ca,
faire differentes actions en fonction aue le mode soit maj ou
insertion

if (isSet($_POST['mode'])) { echo "coincoin";echo $_POST['mode'];}
if ($_POST['mode']=='maj') echo "mise a jour";
else echo "mode insertionhaha";


Fichier FormFilmSimple.php:formulaire ai envoi le mode (et d'autres
parametre a FilmSimple.php par la methode POST
<FORM ACTION ='FilmSimple.php' METHOD='POST'><P>
<INPUT TYPE = HIDDEN NAME = "action" VALUE="FormFilmSimple">
<INPUT TYPE = HIDDEN NAME = "mode" VALUE="<?php echo $mode; ?> ">
....
<?php
...
<TR><TD COLSPAN=2><INPUT TYPE=SUBMIT VALUE='Executer'>

affichage obtenu:
coincoinmaj mode insertionhaha

probleme:pourquoi meme si le mode recu est maj, le programme n'entre
pas dans le if de maj????J'ai aussi essaye de faire ca mais c le meme
resultat:
if ($_POST['mode']== MODE_MAJ) echo "mise a jour";
if ($_POST['mode']== maj) echo "mise a jour";
if ($_POST['mode']=='MODE_MAJ') echo "mise a jour";

dans tous les cas ca ne marche pas. Une idee? Ca serait super sympas
pk la j'suis completement largue.

Merci beaucoup

7 réponses

Avatar
Olivier Miakinen

if (isSet($_POST['mode'])) { echo "coincoin";echo $_POST['mode'];}


Affiche "coincoin" puis le mode

if ($_POST['mode']=='maj') echo "mise a jour";
else echo "mode insertionhaha";


Affiche soit "mise a jour", soit "mode insertionhaha"

affichage obtenu:
coincoinmaj mode insertionhaha


Tu obtiens "coincoinmaj mode insertionhaha".

Supprimons "coincoin", il reste : "maj mode insertionhaha".

Supprimons "mode insertionhaha", il reste : "maj ".

Comme tu peux le constater sur tes propres traces, "maj " est différent
de "maj". D'où vient cette espace en trop ? Sans conteste d'ici (lire
avec une police à chasse fixe) :

<INPUT TYPE = HIDDEN NAME = "mode" VALUE="<?php echo $mode; ?> ">
^

|

Avatar
_nop_nop_quinton_
Gator wrote:

Bonjour et merci a ceux qui pourraient me repondre:



essaie cela ; tu n'avais pas mis de valeur par defaut, donc ca marchait pas
trop ton affaire:

<?php

$mode = "insert"; # default mode

if (isSet($_POST['mode'])){
echo "mode est positionnén";
echo "mode = " . $_POST['mode'] . "n";
} else
echo "mode non positionnén";


?>


<form action="FilmSimple.php" method="post">

<INPUT TYPE="HIDDEN" NAME="action" VALUE="FormFilmSimple">
<INPUT TYPE="HIDDEN" NAME="mode" VALUE="<?php echo $mode; ?> ">

<INPUT TYPE="SUBMIT" VALUE="Executer">
</FORM>

---

concernant le code HTML, le standard est actuellement XHTML, tu pourrais
dire
ou est-ce que tu vas chercher tes exemples de scripts, parce qu'il n'est
plus tres
a jour au niveau des normes. XHTML c'est simple et efficasse pour le
programmeur (toi)
et le navigateur (equipe de dev) ; xhtml dit :

- tout en minuscules,
- les options de la forme : nom="valeur",
- balises ouvertes et fermées ...
- pas de balises interlacées
- (déja ca, ce sera pas mal)

généralement j'utilise un fonction pour obtenir les arguments des
formulaires de ce type


function get_arg($key, $default = ''){
if(!isset($_REQUEST))
return $default;
if(!isset($_REQUEST[$key]))
return $default;
return($_REQUEST[$key]);
}

apres, il devient tres facile de gerer les arguments des scrips php de
maniere portable
et rapide :

$default_mode = "insert";
$mode = get_arg('mode', $default_mode);

...


--
Posté via http://www.webatou.net/
Usenet dans votre navigateur !
Complaints-To:

Avatar
Lionel
Gator wrote:

if ($_POST['mode']== MODE_MAJ) echo "mise a jour";
if ($_POST['mode']== maj) echo "mise a jour";
if ($_POST['mode']=='MODE_MAJ') echo "mise a jour";


tu as oublié les guillements autour de MODE_MAJ et maj....

Avatar
227dam
C bon c super ca marche, effectivement il y avait un espace en trop.
le genre d'erreur, on passe des heures dessus pour pas grand chose...
Vraiment merci a tous.
A+
Avatar
Marc

tu as oublié les guillements autour de MODE_MAJ et maj....
s'il n'y avait que cela ...


Avatar
Olivier Miakinen
C bon c super ca marche, effectivement il y avait un espace en trop.
le genre d'erreur, on passe des heures dessus pour pas grand chose...


Pour éviter d'y passer des heures la prochaine fois, au lieu
d'écrire « echo $variable; » tu écris « echo "<$variable>" » ou
encore « echo '<' . $variable . '>'; »

Avatar
Seth
Salut,

Je pense que le problème viens de ton formulaire :

<FORM ACTION ='FilmSimple.php' METHOD='POST'><P>
<INPUT TYPE = HIDDEN NAME = "action" VALUE="FormFilmSimple">
<INPUT TYPE = HIDDEN NAME = "mode" VALUE="<?php echo $mode; ?> ">
....
<?php
...
<TR><TD COLSPAN=2><INPUT TYPE=SUBMIT VALUE='Executer'>


J'écrirais plutot :

<input type="hidden" name="mode" value="<? echo $mode; ?>" />

Bon, mis à part la casse et les guillements (pour être plus conforme aux
recommandations du W3C) le plus important est l'espace laissé entre *?>* et *"*
qui s'ajoute donc au nom du mode.

--
--
La peur est une petite mort qui tue l'esprit...

http://www.greg-seth.fr.st