Page 1 sur 1

Notice: Undefined variable: message in C:\Program Files\Easy

Posté : 23 avr. 2009, 10:29
par liloo
Bonjour!

Voilà j'ai ce code ci-dessous et quand je le test il me dit :

Notice: Undefined variable: message in C:\Program Files\EasyPHP 2.0b1\www\form2.

Notice: Undefined variable: message in C:\Program Files\EasyPHP 2.0b1\www\form2.php on line 30

Notice: Undefined variable: message in C:\Program Files\EasyPHP 2.0b1\www\form2.php on line 36

Notice: Undefined variable: message in C:\Program Files\EasyPHP 2.0b1\www\form2.php on line 42


Je n'arrive pas à résoudre le problème à force d'avoir trop réfléchi dessus :? Si quelqu'un pouvait juste y jetter un oeil pour me dire ce qui ne va pas ce serait un grand ouf de soulagement!!

Merci :wink:

Voici le code (j'ai ajouté les balise
 et 
pour pouvoir envoyer ce message dc a ignorer ^^):

Code : Tout sélectionner

[php] <?php if($_POST) include("verifForm.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Créer un compte</title> <link type="text/css" rel="stylesheet" href="style2.css" /> </head> <body> <h1>Créer un compte</h1> <?php if (!empty($message["ok"])){ ?> <p><?php print $message["ok"];?></p> <?php }?> <form action="form2.php" method="post" class="formulaire"> <p> <label>Nom d'utilisateur:</label> <input type="text" id="username" name="username" value="<?php print $_POST["username"];?>" /> <span id="username_alert"><?php print $message["username"];?></span> [color=red]=>1ere erreur[/color] </p> <p> <label>Mot de passe:</label> <input type="password" id="password" name="password" value="<?php print $_POST["password"];?>"/> <span id="password alert"><?php print $message["password"];?></span> [color=red]=>2eme erreur[/color] </p> <p> <label>Adresse e-mail:</label> <input type="text" id="email" name="email" value="<?php print $_POST["email"];?>" /> <span id="email_alert"><?php print $message["email"];?></span> [color=red]=>3eme erreur[/color] </p> <p> <label>Code postal:</label> <input type="text" id="codepostal" name="codepostal" value="<?php print $_POST["codepostal"];?>" maxlenght="5" size="5" /> <span id="codepostal_alert"><?php print $message["codepostal"];?></span> [color=red]=>4eme erreur[/color] </p> <p> <input type="submit" value="Valider" /> </p> </form> <script type="text/javascript">init();</script> </body> </html> [/php]

Posté : 23 avr. 2009, 10:54
par D4Y
Pourrais-tu mettre le code de form2.php ou veriform.php si le code donnée est celui de form2.php et donner la ligne 42 merci

Posté : 23 avr. 2009, 11:31
par liloo
Ok.

La ligne 42 de form2.php est:

Code : Tout sélectionner

<span id="codepostal_alert"><?php print $message["codepostal"];?></span>
Voici le code de verifForm.php

Code : Tout sélectionner

<?php include("function.php"); // on vide le tableau d'erreur unset($message); // recupération des valeurs du formulaire $username = $_POST["username"]; $password = $_POST["password"]; $email = $_POST["email"]; $codepostal = $_POST["codepostal"]; // on verifie que le nom n'est pas vide avant de lancer la verification qui implique des requetes SQL if(!empty($username)) $dispoUsername = verifDispoUsername($username); // on verifie que le password n'est pas vide $validPassword = (!empty($password)); // on vérifie le format de l'adresse email $validEmail = validEmail($email); // on verifie que le format du code postal $validCodePo = validCodePostal($codepostal); if($dispoUsername && $validPassword && $validEmail && $validCodePo) { // si tous les criteres sont validés, on envoie un message de validation $message["ok"] = "L'inscription a bien été effectuée"; // on vide les données pour éviter un doublon des données en cas de nouvelle soumission du formulaire unset($_POST); } else { // si les criteres ne sont pas tous validés, on envoie le(s) message(s) d'erreur correspondant(s) if(!$dispoUsername) $message["username"] = "Le nom d'utilisateur est soit vide, soit deja utilisé"; if(!$validPassword) $message["password"] = "Le mot de passe est vide"; if(!$validEmail) $message["email"] = "L'adresse email n'est pas correcte"; if(!$validCodePo) $message["codepostal"] = "Le code postal n'est pas correct"; } ?>

Posté : 23 avr. 2009, 11:44
par D4Y
Dans ta page form2.php , définit la variable $message (avant le if($_POST) include("verifForm.php"); )

$message = array();

Ensuite , un détail tu peux mettre <?=$message['"codepostal"']?> plutot que <?php print $message["codepostal"];?>

Posté : 23 avr. 2009, 11:49
par momox
Attention, la notation que tu donnes, a savoir la notation raccourcie, ne fonctionne pas si les short_open_tags sont a Off, d'ailleurs, cette option va disparaître des prochaines versions de PHP ainsi que la notation raccourcie que tu emploies.

Posté : 23 avr. 2009, 14:55
par D4Y
belle connerie alors ... c'est tellement plus rapide

Posté : 23 avr. 2009, 15:26
par Ryle
C'est effectivement plus rapide, mais le jour où ton script php est déployée sur un serveur dont tu ne maitrises pas la configuration et qui ne les as pas activé, t'es bon pour tous les changer. Si tu utilises la balise <?php, peut importe la config du serveur ton script fonctionnera, tu seras adulé, partout dans la rue on parlera de toi, les filles seront nues, elles se jetteront sur toi... mais je m'égare :)

L'autre inconvénient des short tags concerne les balises liées aux normes xml que php va joyeusement interpréter en te disant qu'il y a des erreur de syntaxe dans ton code
<?xml version="1.0" ...
(et là, fini les filles nues qui se jettent sur toi... ;))

Posté : 23 avr. 2009, 15:56
par thehawk
:oops: j'ai toujours pas vu les filles nues qui se jette sur moi !!!! :cry:

Posté : 23 avr. 2009, 15:58
par Ryle
s'parce que ton serveur devait gérer les shorts tags ;)

Posté : 23 avr. 2009, 16:01
par thehawk
Même pas 8-)

(Bon et si on laissé ce sujet dans sa pure chasteté et évitons de dériver dans le métasymbolisme de nôtres esprit déviant => Je connais la sortie ;))