> Tous les forumsForum des Webmasters

 livre dor
Statut du sujet : NON RESOLU Imprimer
 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>&nbsp;</p>
</form>
</body>
</html>
</body>
</html>
</td>
</tr>
</table>
</td>
</tr>
</table>
<p>&nbsp;</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

 Afficher le profil de AnonymeEnvoyer un message privé à Anonyme
 
 
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.

Afficher le profil de AlexPrinceEnvoyer un message privé à AlexPrince
 Revenir en haut de la page
 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é

Afficher le profil de AnonymeEnvoyer un message privé à Anonyme
 Revenir en haut de la page
 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))

Afficher le profil de AlexPrinceEnvoyer un message privé à AlexPrince
 Revenir en haut de la page
 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

Afficher le profil de AnonymeEnvoyer un message privé à Anonyme
 Revenir en haut de la page
 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.

"

??

Afficher le profil de millefeintes Voir la configuration de millefeintesEnvoyer un message privé à millefeintes
 Revenir en haut de la page
 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

Afficher le profil de AnonymeEnvoyer un message privé à Anonyme
 Revenir en haut de la page
 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".
Afficher le profil de AlexPrinceEnvoyer un message privé à AlexPrince
 Revenir en haut de la page
 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:Documentation

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
Afficher le profil de AnonymeEnvoyer un message privé à Anonyme
 Revenir en haut de la page
 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
Afficher le profil de AlexPrinceEnvoyer un message privé à AlexPrince
 Revenir en haut de la page
 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

Afficher le profil de AnonymeEnvoyer un message privé à Anonyme
 Revenir en haut de la page
 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

Afficher le profil de AnonymeEnvoyer un message privé à Anonyme
 Revenir en haut de la page
 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 =)
Afficher le profil de AlexPrinceEnvoyer un message privé à AlexPrince
 Revenir en haut de la page
 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

Afficher le profil de AnonymeEnvoyer un message privé à Anonyme
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte




Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsForum des Webmasters

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page