Eviter les conflits avec PHP5.

Invité
Invité n'ayant pas de compte PHPfrance

25 mai 2006, 17:37

Bonjour à tous.
Je suis en train de reprogrammer un formulaire, et bien sur, il n'est soumis qu'à certaines conditions. Si ces conditions ne sont pas respectées, un message d'erreur s'affiche, avec le formulaire en dessous. Mais quoi de plus grisant quand on a passé du temps à remplir un formulaire de tout devoir retaper parcequ'on a involontairement oublié un tout petit champ. Donc ce que j'aimerais, c'est que le formulaire contienne ce que l'internaute à déjà completé, et qu'il n'ait comme ça à remplir que ce qui manque. donc il faudrait mettre un value="<? echo $_POST['nom_du_cham']; ?>" pour chaque champ. Mais quand le formulaire n'est pas encore envoyé :s ?

Voici un petit exemple qui sera plus parlant :

=> Page formulaire.php
<?php
if(isset($_POST['publish']) AND $_POST['publish']=="true")
 {
if(empty($_POST['pseudo'])
{
echo "merci de mettre un pseudo";
}
}
?>
<form method="post" action="formulaire.php">
<input type="text" name="pseudo" />
<input type="text" name="machin" value="<?php echo $_POST['machin']; ?>" />
<input type="hidden" name="publish" value="true" />
<input type="submit" />
</form>

Mammouth du PHP | 19672 Messages

25 mai 2006, 17:40

Voici un exemple qui te montrera comment procéder.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

25 mai 2006, 18:02

Merci, mais tu ne réponds pas vraiment à ma question ;)
Prenons par exemple le champ téléphone de ton formulaire. Tu mets value="<?php echo $telephone ?>"

Cependant, lors de l'ouverture de la page (lorsque le formulaire n'a jamais été envoyé), la variable $telephone n'est pas définie. Cela ne pose t il pas de problème ? Je crois savoir que PHP5 n'aime pas ça.

Mammouth du PHP | 19672 Messages

25 mai 2006, 18:09

Le formulaire exemple du tuto est fonctionnel tel quel, tu peux le tester et tu n'auras pas ce type d'erreur.

Ce que tu peux faire, c'est :
<?php echo(isset($telephone) ? $telephone : null) ?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

25 mai 2006, 18:22

D'accord, merci :) Encore une petite question qui n'a pas de rapport, mais je n'ai toujours pas trouvé la réponse : ça change quoi de mettre un champ en NULL ou pas ?

Mammouth du PHP | 19672 Messages

25 mai 2006, 18:49

NULL, c'est rien, même pas une chaine vide qui est une valeur en soi : ça signifie donc "pas de valeur du tout"

L'utilité dépend de ton besoin. Mais imagine que tu aies une table où tu stockes des notes d'examen : un champ recevant une note peut être NULL parce qu'un examen non noté ne vaut pas zéro, il n'est pas noté du tout, donc la valeur NULL se justifie parfaitement.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: