| Auteur | |
|---|---|
| midiweb | # 21 Jan 2006 - 16:58:58 |
| 62 Posts |
salut, j'ai fait un formulaire pour un livre d'or. Le script de contrôle est en PHP. Le script PHP est avec le HTML sur la même page (livredor.php). Tout fonctionne bien SAUF lorsque je renvoie des champs vides ou manquants. Mon but est de réafficher la page avec le formulaire puisque les champs sont vides. Mais l'affichage de la nouvelle page se fait en dessous de celle en cours. Donc je vois deux fois ma bannière un en dessous de l'autre. J'utilise la fonction INCLUDE(./livredor.php) pour réafficher le formulaire s'il est vide. Avant je voulais utiliser HEADER(location:./livredor.php) mais j'ai un message d'erreur: "Warning,......" En bref, mon but est de rediriger l'internaute vers le formulaire d'origine s'il fait une erreur ou un oubli dans les champs. Rien d'autre que cela. Voici ci-après le code PHP du script: ......... .............. HTML avec la bannière et le formulaire ..................... <?php // Partie PHP après validation du formulaire, fichier invoqué "message.php" // Mettons le (future) fichier dans une variable $commentaires="messages.txt"; // assignons nos 2 variables du formulaire et on en profite pour les protégers des balises HTML $pseudo=htmlentities($_POST['pseudo']); $prenom=htmlentities($_POST['prenom']); $titre=htmlentities($_POST['titre']); $mail=htmlentities($_POST['mail']); $message=htmlentities($_POST['message']); // Pensons au retour à la ligne et au stripslashes pour la variable $message $message=stripslashes(nl2br($message)); // On met en place quelques conditions pour les cellules (nom et message) // On vérifie avant tout si le fichier existe si ce n'est pas le cas on le crée if(!is_file($commentaires)) { $verif=@fopen($commentaires,"w+"); } // On vérifie que le login ou le message ne soient pas vide elseif (trim($message)=="" || trim($pseudo)=="" || trim($prenom)=="" || trim($mail)=="" || trim($titre)=="") { include('./livredor.php'); // On sort du script ! exit; } // Après ces quelques vérification d'usage on passe à l'exécution de ce formulaire // Si ok on ouvre en écirture-enregistrement du fichier message.txt $verif=@fopen($commentaires,"r+"); // On analyse les anciennes données et on les stocks $stock=@fread($verif,filesize($commentaires)); // On met la date dans une varialbe $date=date ("d/m/Y um H:i"); // On paramètre le tout dans la variable $opinion $opinion="<b>".$prenom."</b>"." "."<b>".$pseudo."</b> a écrit le : ".$date."<br />\n".$message."<br />\n<hr />"; // On remet le curseur du fichier en début de ligne rewind($verif); // On insère le nouveau commentaire fputs($verif,$opinion." \n".$stock); // On clore le fichier fclose($verif); // On affiche le tout readfile($commentaires); ?> </body> </html> Merci de votre aide |
| Mr A | # 21 Jan 2006 - 17:04:58 |
| 6 Posts |
Ton système est presque correct, sauf que si ton champ est vide il faut initialiser une variable, par exemple $erreur_champ_nom à 1, et dans ta partie HTML tu inclus un code de ce genre
avant/après ou dedans le champ nom. Ca te permettra de n'avoir qu'un seul formulaire. Ai-je été assez clair? Modifié par Mr A (21 Jan 2006 - 17:05) |
| Stephan | # 21 Jan 2006 - 17:10:23 |
| 3161 Posts |
@midiweb Est-ce que tu pourrais baliser ton code avec le BBCode [ code][/code ] (sans les espaces) comme spécifié dans les règles du forum* ? Ça le rendra plus lisible. Merci. * que tu as lues et approuvées en t'inscrivant. |
| Stephan | # 21 Jan 2006 - 17:22:56 |
| 3161 Posts |
Ce forum est réservé aux questions en rapport avec les standards Web. => À lire avant de poster dans ce salon. Tu y trouveras plusieurs liens utiles pour t'aider à régler ton problème. Merci de ta compréhension. |
| Stephan | # 21 Jan 2006 - 17:23:28 |
| 3161 Posts |
Sujet sans lien avec les standards du Web. |
Les références web : openweb.eu.org - opquast.com - webmaster-hub.com - webrankinfo.com - salemioche.net - web-pour-tous.org - webonorme.org
Nos partenaires : Editions Eyrolles