|
| Anonyme | Posté le 03/01/2007 @ 03:53 |
Petit astucien
356 Messages
| bonjour j'ai un soucy je voulais mettre le code dans une paghe mais ca un peux beugué et j'ai pris le code dans cette page http://www.siteduzero.com/tuto-3-188-1-tp-un-livre-d-or.html et moi j'aimerais le mettre : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Bienvenue sur mon site</title> <style type="text/css"> <!-- body { background-color: #330099; margin-left: 1px; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; } body,td,th { color: cyan; font-family: Arial, Helvetica, sans-serif; font-size: 13px; } a:link { text-decoration: none; } a:visited { text-decoration: none; } a:hover { text-decoration: none; } a:active { text-decoration: none; } .Style3 {color: white } a { font-size: 13px; color: cyan; } --> </style></head> <body> <BR> <TABLE height=1464 width=980 align=center> <TBODY> <TR bgColor=#330099> <TD height=157 colSpan=3 align=left vAlign=top scope=col><P><?php include("menuhaut.php"); ?> <TR bgColor=#333366> <TD width=150 height="1289" rowSpan=2 align=left vAlign=top bgcolor="#330099" scope=col><?php include("menugauche.php"); ?> <TD width=830 colspan="2" align=left vAlign=top bgcolor="#330099" scope=col><br> <table width="800" align="center"> <tr> <td width="800" align="left" valign="top"><table width="800" border="1" align="center"> <tr> <td><!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"> form, .pages { text-align:center; } </style> </head> <body> <form method="post" action="livredor.php"> <p>Mon site vous plaît ? Laissez-moi un message !</p> <p> Pseudo : <input name="pseudo" /> <br /> Message :<br /> <textarea name="message" rows="8" cols="35"></textarea> <br /> <input name="submit" type="submit" value="Envoyer" /> </p> <p class="pages"> <?php mysql_connect("", "", ""); mysql_select_db(""); // --------------- Etape 1 ----------------- // Si un message est envoyé, on l'enregistre // ----------------------------------------- if (isset($_POST['pseudo']) AND isset($_POST['message'])) { $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité $message = htmlentities($_POST['message'], ENT_QUOTES); // De même pour le message $message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br /> // On peut enfin enregistrer :o) mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "')"); } // --------------- Etape 2 ----------------- // On écrit les liens vers chacune des pages // ----------------------------------------- // On met dans une variable le nombre de messages qu'on veut par page $nombreDeMessagesParPage = 20; // Essayez de changer ce nombre pour voir :o) // On récupère le nombre total de messages $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livredor'); $donnees = mysql_fetch_array($re †††?tour); $totalDes?????Messages = $donnees['nb_messages']; // On calcule le nombre de pages à créer $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage); // Puis on fait une boucle pour écrire les liens vers chacune des pages echo 'Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { echo '<a href="livredor.php?page=' . $i . '">' . $i . '</a> '; } ?> </p> <?php // --------------- Etape 3 --------------- // Maintenant, on va afficher les messages // --------------------------------------- if (isset($_GET['page'])) { $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4) } else // La variable n'existe pas, c'est la première fois qu'on charge la page { $page = 1; // On se met sur la page 1 (par défaut) } // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL $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> a écrit :<br />' . $donnees['message'] . '</p>'; } mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o) ?> <p> </p> </form> </body> </html> </body> </html> </td> </tr> </table> </td> </tr> </table> <p> </p></TD> </TR> </TBODY> </TABLE> </body> </html> <body> </body> </html>
et l'erreur que je ne comprend pas lol Parse error: syntax error, unexpected '?' in /mnt/144/sdb/b/c/le.coffre/livredor.php on line 58
donc la ligne // On récupère le nombre total de messages $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livredor'); $donnees = mysql_fetch_array($re †††?tour); $totalDes?????Messages = $donnees['nb_messages']; ce code si c'est un autre que je pourait changé là je ferais mais alors là mystere merci d'avance
|
| |
| |
| Publicité |
|
|
| AlexPrince | Posté le 03/01/2007 à 06:34 |
Petit astucien
398 Messages
| Est-ce que tu ne pourrais pas essayer pour une fois de te forcer un peu ? L'erreur ne pourrait pas être plus évidente. On te dit qu'un '?' n'est pas attendu à une certaine place du code. Tu regardes la ligne (et tu nous l'as même copiée..) et tu vois '$totalDes?????Messages' tu ne trouves rien d'anormal ? Surtout quand tu regardes deux lignes plus bas et que tu vois '$totalDesMessages. Il me semble que la conclusion logique aurait été d'effacer tous ces petits caractères. Ensuite on a ceci: '$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livredor'); $donnees = mysql_fetch_array($re †††?tour);' Sur la première ligne tu vois '$retour' alors que sur la deuxième tu vois $re et ensuite plein de petits signes bizarres. En suivant la même logique que dans l'autre cas, tu aurais pu déduire que tu devais simplement effacer ces symboles. Pourquoi est-ce que tu t'obstines à faire un site web alors que tu ne connais visiblement absolument rien du HTML, du CSS, du PHP et du MySQL ? Tu t'entêtes à prendre des scripts ici et là et tout foutre ensemble en espérant que ça marche; c'est tout simplement stupide. Je dis haut et fort ce que beaucoup d'autres pensent probablement. Ça fait déjà plusieurs semaines que tu viens sur ce forum en nous donnant des pages et des pages de code en nous disant de l'arranger pour toi, alors que déjà tout ce code a été écrit par quelqu'un d'autre, probablement même mixé avec du code de WYSIWYG. Tout ça, c'est sans compter que tu ne t'efforces jamais de nous expliquer *en détails* les problèmes que tu as, en partie parce que tu ne sais pas ce que tu fais et que tu écris presque en SMS. Je considère ça comme un manque de respect; tu ne prends même pas le temps de mettre une majuscule et un point à chaque phrase alors que nous prenons de notre temps pour t'aider et résoudre tes problèmes. Ne va pas croire que le forum ne veut pas de toi, au contraire. Tout ceci n'est que mon avis personnel, mais je ne veux pas plus que les autres que tu quittes le forum. Je crois simplement que tu devrais faire plus attention dans tes posts, les soigner un peu plus, et nous montrer plus d'efforts de ta part. |
| |
|
| Anonyme | Posté le 03/01/2007 à 13:14 |
Petit astucien
356 Messages
| j'essay de faire plus net lol maintenant il y as 2 erreur Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/144/sdb/b/c/le.coffre/livredor.php on line 93 Page : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/144/sdb/b/c/le.coffre/livredor.php on line 127 91 a 94 // On récupère le nombre total de messages $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor'); $donnees = mysql_fetch_array($retour); $totalDesMessages = $donnees['nb_messages']; 127 while ($donnees = mysql_fetch_array($reponse)) si'il y avait une basse donné en sql je comprendrais mais là il utilise pas enfin j'ai pas vue indiqué |
| |
|
| AlexPrince | Posté le 03/01/2007 à 15:30 |
Petit astucien
398 Messages
| Le SQL est un langage qui ne sert absolument qu'à contrôler une base de données.. Il ne fait rien d'autre.. Change: $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor'); $donnees = mysql_fetch_array($retour); $totalDesMessages = $donnees['nb_messages']; while ($donnees = mysql_fetch_array($reponse)) Pour ceci: $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor'); $totalDesMessages = $donnees['nb_messages']; while ($donnees = mysql_fetch_array($retour)) |
| |
|
| Anonyme | Posté le 03/01/2007 à 20:13 |
Petit astucien
356 Messages
| j'ai changé mas pas marché $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livredor'); $donnees = mysql_fetch_array($retour); $totalDesMessages = $donnees['nb_messages']; et $reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage); while ($donnees = mysql_fetch_array($retour)) et a chaque fois je supprime les cocki pour voir si ca vien de là mais la non |
| |
|
| millefeintes | Posté le 03/01/2007 à 23:52 |
Petit astucien
480 Messages
| wil-smith a écrit :
j'ai changé mas pas marché $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livredor'); $donnees = mysql_fetch_array($retour); $totalDesMessages = $donnees['nb_messages']; et $reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage); while ($donnees = mysql_fetch_array($retour)) et a chaque fois je supprime les cocki pour voir si ca vien de là mais la non
i - un peu bizarre car parfois tu utilises la table 'livreor' d'autres fois la table 'livredor'. ii - peut-être que tu n'as pas créé de table tout simplement, car apparemment tu dis qu'il n'y a pas de tables alors que, comme a dit alexprince, tout est basé sur une BD. as tu suivi l'étape 1 et le debut de létape 2, je cite : " Comme d'habitude, on n'attaque jamais un script PHP avant de l'avoir préparé : on doit réfléchir à son fonctionnement si on ne veut pas se retrouver complètement perdus dans notre code. On doit d'abord se demander quelles seront les fonctionnalités de notre livre d'or. Quand un visiteur va arriver dessus, que va-t-il pouvoir faire ? Il peut laisser son pseudo et un message, il sera enregistré dans une table comme tous les autres. Commençons par créer cette table justement. On va l'appeler "livreor", et elle aura 3 champs : - id : comme d'habitude, on crée un id pour numéroter chaque champ. Cet id a le type INT dans MySQL et j'ai sélectionné "Index" comme je vous avais dit de faire pour les champs id. Par ailleurs, j'ai choisi "auto increment" pour que le numéro d'id s'inscrive automatiquement à chaque nouvelle entrée.
- pseudo : c'est le pseudo du visiteur. Il est de type VARCHAR, et il ne faut pas oublier de préciser sa "taille" lorsque vous créez la table : une taille de 255 me semble suffisante (vous n'avez pas des pseudos de 256 caractères dites-moi ? o_O)
- message : on y stocke le message qu'a laissé le visiteur. Ce champ est de type TEXT.
" ?? |
| |
|
| Anonyme | Posté le 04/01/2007 à 00:04 |
Petit astucien
356 Messages
| j'ai cré en fonction de ceux qui est ecrit mais il dit erreur CREATE TABLE `livredor` ( `id` INT NOT NULL AUTO_INCREMENT , `pseudo` VARCHAR( 255 ) NOT NULL , `message` TEXT NOT NULL ) TYPE = MYISAM peux etre j'ai oublie un mot |
| |
|
| AlexPrince | Posté le 04/01/2007 à 03:38 |
Petit astucien
398 Messages
| Est-ce que tu peux être plus clair ? Qu'est-ce que ça veut dire "ça ne marche pas" ? Un message d'erreur ? L'ordi plante ? Un écran bleu ? Le disque dur explose ? La fin du monde ? Ça nous dit rien, à nous, "ça marche pas". |
| |
|
| Anonyme | Posté le 04/01/2007 à 04:16 |
Petit astucien
356 Messages
| requête SQL: CREATE TABLE `livredor` ( `id` INT NOT NULL AUTO_INCREMENT , `pseudo` VARCHAR( 255 ) NOT NULL , `message` TEXT NOT NULL ) TYPE = MYISAM MySQL a répondu: #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key |
| |
|
| AlexPrince | Posté le 04/01/2007 à 05:28 |
Petit astucien
398 Messages
| Alors cherche avec google quelque chose du genre "comment définir une colonne en clé en SQL". Cherche un peu avant de nous demander de l'aide. Edit: J'ai trouvé la réponse en moins d'une minute. À ton tour. Modifié par AlexPrince le 04/01/2007 05:29 |
| |
|
| Anonyme | Posté le 04/01/2007 à 15:50 |
Petit astucien
356 Messages
| j'ai trouve la table lol CREATE TABLE `livredor` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `pseudo` VARCHAR( 255 ) NOT NULL , `message` TEXT NOT NULL ) TYPE = MYISAM ; mais là il y as un petit autre pb il affiche pas les messages je suis chiant mais tetu lol |
| |
|
| Anonyme | Posté le 07/01/2007 à 22:00 |
Petit astucien
356 Messages
| j'ai regarde ds ma table sql pour voir juste il y as mes message du livre d'or mail y as pas es ce que tu peux me dire le code our affiché les messages merci |
| |
|
| AlexPrince | Posté le 08/01/2007 à 01:40 |
Petit astucien
398 Messages
| Va voir sur www.siteduzero.com ou quelque chose du genre, tu vas trouver toutes les informations que tu veux sur le SQL. Y compris quelle requête utiliser pour faire afficher le contenu d'une table =) |
| |
|
| Anonyme | Posté le 12/01/2007 à 19:16 |
Petit astucien
356 Messages
| re c'est bon j'ai reuissi a faire fonctionné juste un pett truc es ce que tu pouras me dire le code a mettre pour ajouté des smileys et aussi de savoir mettre une couleur different pour differencier entre le pseudo et le texte et aussi de mettre leur nom du site et l'odre en partant du haut en bas je veux mettre : pseudo : et son include site : et son include : message : et son include : voilà livre d'or http://le.coffre.free.fr/livredor.php et le code du livre d'or <form method="post" action="livredor.php"> <p>Mon site vous plaît ? Laissez-moi un message !</p> <p> Pseudo :</p> <p> <input name="pseudo" /> </p> <p>Message :</p>
<textarea name="message" rows="8" cols="35"></textarea> <br /> <input type="submit" value="Envoyer" /></p> </p> </form> <table width="300"> <tr> <td width="300" align="left" valign="top"> <p class="pages"> <?php mysql_connect("", "", ""); mysql_select_db(""); // --------------- Etape 1 ----------------- // Si un message est envoyé, on l'enregistre // ----------------------------------------- if (isset($_POST['pseudo']) AND isset($_POST['message'])) { $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité $message = htmlentities($_POST['message'], ENT_QUOTES); // De même pour le message $message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br /> // On peut enfin enregistrer ) mysql_query("INSERT INTO livredor VALUES('', '" . $pseudo . "', '" . $message . "')"); } // --------------- Etape 2 ----------------- // On écrit les liens vers chacune des pages // ----------------------------------------- // On met dans une variable le nombre de messages qu'on veut par page $nombreDeMessagesParPage = 20; // Essayez de changer ce nombre pour voir ) // On récupère le nombre total de messages $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livredor'); $donnees = mysql_fetch_array($retour); $totalDesMessages = $donnees['nb_messages']; // On calcule le nombre de pages à créer $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage); // Puis on fait une boucle pour écrire les liens vers chacune des pages echo 'Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { echo '<a href="livredor.php?page=' . $i . '">' . $i . '</a> '; } ?> </p> <?php // --------------- Etape 3 --------------- // Maintenant, on va afficher les messages // --------------------------------------- if (isset($_GET['page'])) { $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4) } else // La variable n'existe pas, c'est la première fois qu'on charge la page { $page = 1; // On se met sur la page 1 (par défaut) } // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL $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) ?>
et si tu vois une autre possition qui feras bien que celle là n'hesite pas a me le modifié lol ou me dire et si possible sa ligne merci |
| |
|
|
| Haut de la page |