Livre d'or : Petit problème
Résolu
Fun-Brice
-
valpat -
valpat -
Bonjour ...
En fait je souhaites créer un livre d'or. Aujourd'hui je pensais l'avoir terminé et réussit mais plusieurs problèmes perssistes ... :
1°) Lorsque j'appuie sur le bouton Valider, le message que je souhaites ajouter au livre d'or ne s'affiche pas ...
2°) Le numéro des pages où sont inscrit les messages ne s'affiche pas ...
Et le pire dans tout ça c'est que je n'ai pas le message habituel d'erreur, style "Parse error: parse error, expecting `','' or `';'' in c:\documents and settings\moi\bureau\livre_dor.2\livre.php on line 84"
Voici le code de la page :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Livre d'or</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" media="screen" href="css.css" />
</head>
<body>
<p>Hello hello, voici le Livre d'Or du Fun-Mag</p>
<?php
$serveur = 'localhost';
$pseudo = 'monpseudo';
$mot_de_passe = 'monmotdepasse';
$base = 'livre';
mysql_connect("$serveur", "$pseudo", "$mot_de_passe");
mysql_select_db("$base");
if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
$date = date ( "d/m/Y H:i:s" ); //Définition de la variable date
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); //Sécurité Powa !
$message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); //Idem ^^
$message = nl2br($message); // Remplacement de "entrer" par <br/>
mysql_query("INSERT INTO livreor VALUES('', '$date', '$pseudo', '$message')");
}
$nombreDeMessagesParPage = 25; // A modifier !
// Récupération du nombre total de messages
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];
// Calcul du nombres de pages créées
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
// Boucle ... Affichage des numéro de pages ainsi que des liens vers celles ci ...
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="livre.php?page=' . $i . '">' . $i . '</a> ';
}
?>
</p>
<?php
//Affichage des messages
if (isset($_GET['page']))
{
$page = intval($_GET['page']); //Récupération de la page ...
}
else
{
$page = 1; // Page par defaut
}
// Calculation de la limite du numéro de base
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
$reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
while ($donnees = mysql_fetch_array($reponse))
{
echo '<p><strong>' . $donnees['pseudo'] . '</strong> Posté le :' . $donnees['date'] . '<br />' . $donnees['message'] . '</p>';
}
mysql_close();
?>
<p>Ajouter votre message</p>
<form method="post" action="livre.php">
<p>
<label for="pseudo">Pseudo :<br/></label><input name="pseudo" /><br /><br />
<label for="message">Message :</label><br/>
<textarea name="messsage" cols=50 rows=5>
Votre message ici !
</textarea>
<br>
</p>
<input type="Submit" value="Valider">
</form>
</body>
</html>
En fait je souhaites créer un livre d'or. Aujourd'hui je pensais l'avoir terminé et réussit mais plusieurs problèmes perssistes ... :
1°) Lorsque j'appuie sur le bouton Valider, le message que je souhaites ajouter au livre d'or ne s'affiche pas ...
2°) Le numéro des pages où sont inscrit les messages ne s'affiche pas ...
Et le pire dans tout ça c'est que je n'ai pas le message habituel d'erreur, style "Parse error: parse error, expecting `','' or `';'' in c:\documents and settings\moi\bureau\livre_dor.2\livre.php on line 84"
Voici le code de la page :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Livre d'or</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" media="screen" href="css.css" />
</head>
<body>
<p>Hello hello, voici le Livre d'Or du Fun-Mag</p>
<?php
$serveur = 'localhost';
$pseudo = 'monpseudo';
$mot_de_passe = 'monmotdepasse';
$base = 'livre';
mysql_connect("$serveur", "$pseudo", "$mot_de_passe");
mysql_select_db("$base");
if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
$date = date ( "d/m/Y H:i:s" ); //Définition de la variable date
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); //Sécurité Powa !
$message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); //Idem ^^
$message = nl2br($message); // Remplacement de "entrer" par <br/>
mysql_query("INSERT INTO livreor VALUES('', '$date', '$pseudo', '$message')");
}
$nombreDeMessagesParPage = 25; // A modifier !
// Récupération du nombre total de messages
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];
// Calcul du nombres de pages créées
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
// Boucle ... Affichage des numéro de pages ainsi que des liens vers celles ci ...
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="livre.php?page=' . $i . '">' . $i . '</a> ';
}
?>
</p>
<?php
//Affichage des messages
if (isset($_GET['page']))
{
$page = intval($_GET['page']); //Récupération de la page ...
}
else
{
$page = 1; // Page par defaut
}
// Calculation de la limite du numéro de base
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
$reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
while ($donnees = mysql_fetch_array($reponse))
{
echo '<p><strong>' . $donnees['pseudo'] . '</strong> Posté le :' . $donnees['date'] . '<br />' . $donnees['message'] . '</p>';
}
mysql_close();
?>
<p>Ajouter votre message</p>
<form method="post" action="livre.php">
<p>
<label for="pseudo">Pseudo :<br/></label><input name="pseudo" /><br /><br />
<label for="message">Message :</label><br/>
<textarea name="messsage" cols=50 rows=5>
Votre message ici !
</textarea>
<br>
</p>
<input type="Submit" value="Valider">
</form>
</body>
</html>
A voir également:
- Livre d'or : Petit problème
- Or - Guide
- Télécharger livre de lecture ce2 gratuit pdf - Télécharger - Éducatifs
- Livre coran en français pdf - Télécharger - Histoire & Religion
- Request header or cookie too large - Forum Webmastering
- Malheureusement, votre colissimo ne peut pas être livré. - Forum Consommation & Internet
12 réponses
As-tu vérifié si tes données entrent dans la base de donnée avec PhpMyAdmin ?
Sinon j'ai eu des problèmes du genre, j'ai dû remplacer '$date' par '".$date."' et de même pour les autres en enregistrant les infos dans la base de donnée.
Sinon ton code a l'air bon, si je me trompe pas il vient du sdz, donc si c'est du M@téo, c'est du bon ! lol.
Sinon j'ai eu des problèmes du genre, j'ai dû remplacer '$date' par '".$date."' et de même pour les autres en enregistrant les infos dans la base de donnée.
Sinon ton code a l'air bon, si je me trompe pas il vient du sdz, donc si c'est du M@téo, c'est du bon ! lol.
Non les données n'entrent pas dans la base de donnée ^^
Je viens de remplacer les '$variable' en '".$variable."' mais sa ne change pas ...
Je viens de remplacer les '$variable' en '".$variable."' mais sa ne change pas ...
J'ai trouvé ! Tu as 3 "s" à message dans ton formulaire : "messsage", donc $_POST['message'] n'existe pas, donc ce qui est dans la condition ne s'exécute pas. C'est souvent qu'on se fait avoir par une pauvre lette comme ça ! Je viens de faire un site et ça m'est arrivé une bonne dizaine de fois ! lol.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon j'ai encore deux problème ^^
1) Les dates de mes messages s'affichent comme ceci : Pseudo posté le 2.
2) Ensuite j'ai rajouté un code pour vérifier si les champs sont vides (avec empty) mais maintenant qu'il soient vide ou pas ... Ca me met le message d'erreur prévu si les champs sont vides ...
Voici le code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Livre d'or</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
<!--
img
{
border:none;
}
-->
</style>
</head>
<body>
<p>Hello hello, voici le Livre d'Or du Fun-Mag</p>
<?php
$serveur = 'localhost';
$pseudo = 'root';
$mot_de_passe = '';
$base = 'livre';
mysql_connect("$serveur", "$pseudo", "$mot_de_passe");
mysql_select_db("$base");
if(empty($_POST['$pseudo']) OR empty($_POST['$message']))
{
echo 'Vous n\'avez pas remplie tous les champs<br /><br />';
}
else
{
if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
$date = date('d/m/Y/H/i/s'); //Définition de la variable date
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); //Sécurité Powa !
$message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); //Idem ^^
$message = nl2br($message); // Remplacement de "entrer" par <br/>
mysql_query("INSERT INTO livreor VALUES('', '".$date."', '".$pseudo."', '".$message."')");
}
}
?>
<?php
$nombreDeMessagesParPage = 10; // A modifier !
// Récupération du nombre total de messages
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];
// Calcul du nombres de pages créées
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
// Boucle ... Affichage des numéro de pages ainsi que des liens vers celles ci ...
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="livre.php?page=' . $i . '">' . $i . '</a> ';
}
?>
<?php
//Affichage des messages
if (isset($_GET['page']))
{
$page = intval($_GET['page']); //Récupération de la page ...
}
else
{
$page = 1; // Page par defaut
}
// Calculation de la limite du numéro de base
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
$reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
while ($donnees = mysql_fetch_array($reponse))
{
echo '<p><strong>' . $donnees['pseudo'] . '</strong> Posté le ' . $donnees['date'] . '<br />' . $donnees['message'] . '<br /><hr /></p>';
}
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="livre.php?page=' . $i . '">' . $i . '</a> ';
}
mysql_close();
?>
<p>Ajouter votre message</p>
<form method="post" action="livre.php">
<p>
<label for="pseudo">Pseudo :<br/></label><input name="pseudo" /><br /><br />
<label for="message">Message :</label><br/>
<textarea name="message" rows="10" cols="50">
1) Les dates de mes messages s'affichent comme ceci : Pseudo posté le 2.
2) Ensuite j'ai rajouté un code pour vérifier si les champs sont vides (avec empty) mais maintenant qu'il soient vide ou pas ... Ca me met le message d'erreur prévu si les champs sont vides ...
Voici le code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Livre d'or</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
<!--
img
{
border:none;
}
-->
</style>
</head>
<body>
<p>Hello hello, voici le Livre d'Or du Fun-Mag</p>
<?php
$serveur = 'localhost';
$pseudo = 'root';
$mot_de_passe = '';
$base = 'livre';
mysql_connect("$serveur", "$pseudo", "$mot_de_passe");
mysql_select_db("$base");
if(empty($_POST['$pseudo']) OR empty($_POST['$message']))
{
echo 'Vous n\'avez pas remplie tous les champs<br /><br />';
}
else
{
if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
$date = date('d/m/Y/H/i/s'); //Définition de la variable date
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); //Sécurité Powa !
$message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); //Idem ^^
$message = nl2br($message); // Remplacement de "entrer" par <br/>
mysql_query("INSERT INTO livreor VALUES('', '".$date."', '".$pseudo."', '".$message."')");
}
}
?>
<?php
$nombreDeMessagesParPage = 10; // A modifier !
// Récupération du nombre total de messages
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];
// Calcul du nombres de pages créées
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
// Boucle ... Affichage des numéro de pages ainsi que des liens vers celles ci ...
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="livre.php?page=' . $i . '">' . $i . '</a> ';
}
?>
<?php
//Affichage des messages
if (isset($_GET['page']))
{
$page = intval($_GET['page']); //Récupération de la page ...
}
else
{
$page = 1; // Page par defaut
}
// Calculation de la limite du numéro de base
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
$reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
while ($donnees = mysql_fetch_array($reponse))
{
echo '<p><strong>' . $donnees['pseudo'] . '</strong> Posté le ' . $donnees['date'] . '<br />' . $donnees['message'] . '<br /><hr /></p>';
}
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="livre.php?page=' . $i . '">' . $i . '</a> ';
}
mysql_close();
?>
<p>Ajouter votre message</p>
<form method="post" action="livre.php">
<p>
<label for="pseudo">Pseudo :<br/></label><input name="pseudo" /><br /><br />
<label for="message">Message :</label><br/>
<textarea name="message" rows="10" cols="50">
J'ai aussi oublié de préciser que les "entrer" dans le message ne se transforme pas en <br/> ...
Merci d'avance ^^
Merci d'avance ^^
Bon j'ai reussit à régler les problèmes de date et de saut de ligne ...
Mais je n'arrive toujours pas à empecher la validation d'un formulaire vide ...
de plus je me sens un peu seul là ^^
Mais je n'arrive toujours pas à empecher la validation d'un formulaire vide ...
de plus je me sens un peu seul là ^^
salut
étant intessé par ce genre de systeme , pourquoi ne pas expliquer comment tu as résolu les erreurs? :)
étant intessé par ce genre de systeme , pourquoi ne pas expliquer comment tu as résolu les erreurs? :)
Ok ^^ :
Pour les dates je n'ai pas reussit de le faire celon la méthode courte :
$date = date('d/m/Y');
J'ai donc créé d'autre variables :
$date = date('d'); //Définition de la variable date
$date1 = date('m'); //Définition de la variable date
$date2 = date('Y'); //Définition de la variable date
$date3 = date('H'); //Définition de la variable date
$date4 = date('i'); //Définition de la variable date
$date5 = date('s'); //Définition de la variable date
Dans l'affichage des messages j'ai ajouté les données :
. $donnees['date'] . '/' . $donnees['date1'] . '/' . $donnees['date2'] . ' à ' . $donnees['date3'] . ':' . $donnees['date4'] . ':' . $donnees['date5'] . '<br />' .
Et j'ai aussi ajouté les nouvelles variables dans la base de données ...
Ce qui me donne : 3/09/2007 à 13:04:52
Pour la transformation de "saut de ligne" en <br/> :
J'ai tout simplement réunit les deux différentes variables de message :
$message = mysql_real_escape_string(nl2br(htmlspecialchars($_POST['message'])));
Voila ^^ Mais il me reste toujours l'anti-validation de formulaire vide :p
Pour les dates je n'ai pas reussit de le faire celon la méthode courte :
$date = date('d/m/Y');
J'ai donc créé d'autre variables :
$date = date('d'); //Définition de la variable date
$date1 = date('m'); //Définition de la variable date
$date2 = date('Y'); //Définition de la variable date
$date3 = date('H'); //Définition de la variable date
$date4 = date('i'); //Définition de la variable date
$date5 = date('s'); //Définition de la variable date
Dans l'affichage des messages j'ai ajouté les données :
. $donnees['date'] . '/' . $donnees['date1'] . '/' . $donnees['date2'] . ' à ' . $donnees['date3'] . ':' . $donnees['date4'] . ':' . $donnees['date5'] . '<br />' .
Et j'ai aussi ajouté les nouvelles variables dans la base de données ...
Ce qui me donne : 3/09/2007 à 13:04:52
Pour la transformation de "saut de ligne" en <br/> :
J'ai tout simplement réunit les deux différentes variables de message :
$message = mysql_real_escape_string(nl2br(htmlspecialchars($_POST['message'])));
Voila ^^ Mais il me reste toujours l'anti-validation de formulaire vide :p
if(empty($_POST['$pseudo']) OR empty($_POST['$message']))
{
echo 'Vous n\'avez pas remplie tous les champs<br /><br />';
}
Les lignes incriminées semblent être ici : enlève les '$' devant les arguments de $_POST
Exemple : $_POST['$pseudo'] ==> $_POST['pseudo']
Sinon PHP cherche le champ ayant pour name "$pseudo" et pas "pseudo"
J'espère que c'est ça, mais normalement ça devrait marcher.
Le Yaude
{
echo 'Vous n\'avez pas remplie tous les champs<br /><br />';
}
Les lignes incriminées semblent être ici : enlève les '$' devant les arguments de $_POST
Exemple : $_POST['$pseudo'] ==> $_POST['pseudo']
Sinon PHP cherche le champ ayant pour name "$pseudo" et pas "pseudo"
J'espère que c'est ça, mais normalement ça devrait marcher.
Le Yaude