[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   -
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:


<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:

5 réponses

Nirvv Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   1
 
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 :)
0
cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
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.
0
cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
Bon sa marche mais maintenant sa m'affiche:
Notice: Undefined index: pseudo in C:\wamp\www\test\livredor.php on line 14


Bilou.
0
cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
C'est bon j'ai réussi.
Voilà se que j'ai mit:

$_POST['pseudo'] = "";
$_POST['message'] = "";

if($_POST['pseudo'] == "" AND $_POST['message'] == "") 
{
}
else
{
.....
}



Bilou.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nirvv Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   1
 
Undefinex index ça veut dire que ta variable n'est pas défini.
Le "isset" sert a palier a ce probleme en général.

EDIT : Ah oki :)
Bin de rien ^^' Bonne continuation
0