[PHP] Problème de débutant
cs-bilou
Messages postés
769
Date d'inscription
Statut
Membre
Dernière intervention
-
Nirvv Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
Nirvv Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis les cour depuis le Site Du Zéro.
Je suis en train de faire un livre d'or mais il y a un problème.
Voilà mon script:
Le problème c'est que même si le met rien dans les champs "pseudo" et "message".
Je peux poster. Alors que normalement non.
Sa doit surement être un truc de débutant.
Si quelqu'un peu m'aider.
Merci.
Bilou.
Je suis les cour depuis le Site Du Zéro.
Je suis en train de faire un livre d'or mais il y a un problème.
Voilà mon script:
<html> <form method="post" action="livredor.php"> Pseudo : <input name="pseudo"><br> Message :<br> <textarea name="message" rows="8" cols="35"></textarea><br /> <input type="submit" value="Envoyer" /> </form> </head> <?php mysql_connect("localhost", "root", ""); mysql_select_db("test"); if (isset($_POST['pseudo']) AND isset($_POST['message'])) { $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); $message = nl2br($message); mysql_query("INSERT INTO livredor VALUES('', '" . $pseudo . "', '" . $message . "')"); } $nombreDeMessagesParPage = 20; $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livredor'); $donne = mysql_fetch_array($retour); $totalDesMessages = $donne['nb_messages']; $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage); echo "Page : "; for ( $i = 1 ; $i <= $nombreDePages ; $i++) { echo '<a href="livredor.php?page=' . $i . '">' . $i . '</a> '; } if (isset($_GET['page'])) { $page = $_GET['page']; } else { $page = 1; } $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage; $reponse = mysql_query('SELECT * FROM livredor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage); while ($donnees = mysql_fetch_array($reponse)) { echo '<p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . $donnees['message'] . '</p>'; } mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o) ?>
Le problème c'est que même si le met rien dans les champs "pseudo" et "message".
Je peux poster. Alors que normalement non.
Sa doit surement être un truc de débutant.
Si quelqu'un peu m'aider.
Merci.
Bilou.
A voir également:
- [PHP] Problème de débutant
- Logiciel de programmation pour débutant - Guide
- Easy php - Télécharger - Divers Web & Internet
- Logiciel montage vidéo débutant - Guide
- Expert php pinterest - Télécharger - Langages
- Debut logiciel de capture video - Télécharger - TV & Vidéo
5 réponses
Il te suffit de faire une simple condition (enfin simple, c'est très compréhensible ^^).
Il faut que tu test si tes variables sont vides.
Comment faire ça ? :o
Bin SI tes variables sont vides, on fait rien (ou tu peux afficher un message disant que les champs sont vides), SINON tu enregistres le message dans la BDD.
Donc apres ton if (isset($_POST['pseudo']) AND isset($_POST['message']))
Et aussi apres ton mysql_real_escape_string.
Tu mets par exemple :
if($_POST['pseudo'] == "" OR $_POST['message'] == "")
{
?> Il faut remplir tout les champs pour poster un message sur le livre d'or ! <?php
}
else
{
// Là tu fais ton INSERT INTO ^^
}
Bon apres y'a des methodes différentes pour la condition et pour afficher le texte (tu peux faire echo "..."; au lieu de fermer les balises php comme moi, c'est juste que pour afficher du texte j'utilise tout le temps le html et pas le php ^^').
Mais ce code fonctionne ^^'
Adapte le a ton code, et dis moi si ça marche :)
Il faut que tu test si tes variables sont vides.
Comment faire ça ? :o
Bin SI tes variables sont vides, on fait rien (ou tu peux afficher un message disant que les champs sont vides), SINON tu enregistres le message dans la BDD.
Donc apres ton if (isset($_POST['pseudo']) AND isset($_POST['message']))
Et aussi apres ton mysql_real_escape_string.
Tu mets par exemple :
if($_POST['pseudo'] == "" OR $_POST['message'] == "")
{
?> Il faut remplir tout les champs pour poster un message sur le livre d'or ! <?php
}
else
{
// Là tu fais ton INSERT INTO ^^
}
Bon apres y'a des methodes différentes pour la condition et pour afficher le texte (tu peux faire echo "..."; au lieu de fermer les balises php comme moi, c'est juste que pour afficher du texte j'utilise tout le temps le html et pas le php ^^').
Mais ce code fonctionne ^^'
Adapte le a ton code, et dis moi si ça marche :)
Ok merci pour ta réponse.
Enfin c'était tout con comme je le penser :p.
Je vais le teste je te tien au courant.
Bilou.
Enfin c'était tout con comme je le penser :p.
Je vais le teste je te tien au courant.
Bilou.
Bon sa marche mais maintenant sa m'affiche:
Bilou.
Notice: Undefined index: pseudo in C:\wamp\www\test\livredor.php on line 14
Bilou.
C'est bon j'ai réussi.
Voilà se que j'ai mit:
Bilou.
Voilà se que j'ai mit:
$_POST['pseudo'] = ""; $_POST['message'] = ""; if($_POST['pseudo'] == "" AND $_POST['message'] == "") { } else { ..... }
Bilou.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question