Se connecter / S'enregistrer
Votre question

Probléme livre d' or php + mysql

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
13 Juin 2006 13:06:50

Salut à tous, ne connaîssant que des bases en php, j' ai préféré télécharger un livre d' or "pré-fabriqué sur le net.

Je l' ai installé, tous fonctionne à merveille:

Voici ma page livre d' or!

Citation : Page livredor.php

<?
require("config.inc.php3");

if($topic=='form') // on affiche le formulaire
{
echo "<center><font face=\"$face\" color=\"$color\" size=\"2\"><b>Ajouter un message au Livre d'or</b></font></center><br>";
echo "<form method=\"POST\" action=\"$index"."$signe"."topic=poster\">\n";
echo "<input type=\"hidden\" name=\"topic\" value=\"poster\">\n";
echo "<center><input type=\"\" name=\"nom\" size=\"30\" value=\"votre nom\"></center><br>\n";
echo "<center><textarea name=\"message\" rows=\"12\" cols=\"36\" wrap=\"virtual\">votre message ...</textarea></center>\n";
echo "<center><input type=\"submit\" name=\"submit\" value=\"Poster le message ...\"></center>\n\n";
echo "</form>";
echo "<center><font face=\"$face\" color=\"$color\" size=\"2\"><b><a href=\"$index\"><< Retour au Livre d'or</a></b></font></center>\n";
echo "<hr size=1 width=\"310\">\n";
}
elseif($topic=='poster') // on poste les infos du formulaire
{
if(empty($nom) OR empty($message) OR $nom=='votre nom' OR $message=='votre message ...')
{
echo "<center><font face=\"$face\" color=\"$col_alert\" size=\"2\"><b>Erreur dans les champs !</b></center><br>\n";
echo "<center><a href=\"Javascript:history.back()\"><< Merci de retourner au formulaire</a></font></center>\n";
}
else
{
$db = mysql_connect("$host", "$login", "$password");
mysql_select_db("$base",$db);

$date = date("d-m-Y");
$heure = date("H\hi");

$message = addslashes($message);
$nom = addslashes($nom);

mysql_query("INSERT INTO goldenbook_tbl VALUES('','$nom','$message','$date','$heure')");
mysql_close();

Header("Location: $index");
}
}
else // on affiche le livre d'or
{
$db = mysql_connect("$host", "$login", "$password");
mysql_select_db("$base",$db);

if($limit==''){ $limit = 0; }

$count_req = mysql_query("SELECT id FROM goldenbook_tbl");
$count = mysql_numrows($count_req);

$comptage_req = mysql_query("SELECT * FROM goldenbook_tbl ORDER BY id DESC LIMIT $limit, 10");
$comptage = mysql_numrows($comptage_req);

echo "<center><font face=\"$face\" color=\"$color\" size=\"2\"><b>$count messages | ";
echo "<a href=\"$index"."$signe"."topic=form\">Ajouter un message</a> | ";
echo "<hr size=1 width=\"$width\">\n";

$i=0;
WHILE($i!=$comptage)
{
$nom = mysql_result($comptage_req,$i,"nom");
$message = mysql_result($comptage_req,$i,"message");
$date = mysql_result($comptage_req,$i,"date");
$heure = mysql_result($comptage_req,$i,"heure");

$message = stripslashes(stripslashes($message));
$nom = stripslashes(stripslashes($nom));

echo "<center><div align=\"center\">\n";
echo "<table width=\"$width\" bgcolor=\"$bgcolor\">\n";
echo "<tr><td bgcolor=\"$bgtitre\"><font face=\"$potitre\" color=\"$cotitre\" size=2> <b>$nom</b></font> <font face=\"verdana\" size=\"1\">($date à $heure)</font></td></tr>\n";
echo "<tr><td><font face=\"$pomessa\" color=\"$comessa\" size=2><blockquote>$message</font></td></tr>\n";
echo "</table></div></center><br>\n\n";

$i++;
}

// gestion des liens pages ----------------------------
$pages = $count / 10;
$pages = floor($pages);

if($count>10)
{
$footer = "Pages: <a href=\"$index"."$signe"."limit=0\"><b>index</b></a>\n";

if($count==40){ $i = 1; }else{ $i = 0; }

$comptage = 10;
$page_num = 2;
WHILE($i!=$pages)
{
if($limit==$comptage)
{
$footer .= " | <b>$page_num</b>\n";
$comptage += 10;
$page_num++;
$i++;
}
else
{
$footer .= " | <a href=\"$index"."$signe"."limit=$comptage\"><b>$page_num</b></a>\n";
$comptage += 10;
$page_num++;
$i++;
}
}
}

$reste = $count - $limit - 10;
$reste_limit = $limit + 10;

if($reste<=0)
{
$reste = "Fin des messages";
$avant = "";
$apres = "";
}
else
{
$reste = "10 affichés - Reste ";
$reste .= $count - $limit - 10;
$avant = "<a href=\"$index"."$signe"."limit=$reste_limit\">";
$apres = "</a>";
}

if($count==0)
{
$reste = "Le livre d'or est vide pour le moment";
$avant = "";
$apres = "";
}

echo "<center><font face=\"$face\" color=\"$color\" size=\"2\">[$avant"."$reste"."$apres]</font></center><br>\n";
echo "<center><font face=\"$face\" color=\"$color\" size=\"2\">$footer</font></center>\n";
echo "<hr size=1 width=\"$width\">\n";

mysql_close();
}
?>



Citation : Ma page config.inc.php3
<?
/* connexion à la base de données ------------------------------------------------- */
$host = "localhost"; // host ("localhost" ou "sql.free.fr" pour Free)
$login = "*****"; // login de la base de données
$password = "******"; // password de la base de données
$base = "******"; // nom de la base de données

/* Infos Générales ---------------------------------------------------------------- */
$index = "livredor.php"; // incrivez-ici le nom de la page dans laquelle
// vous souhaitez inclure le livre d'or
// (index.php3 étant la valeur par défaut)

$signe = "?"; // si la variable $index ci-dessus contient déjà
// un "?", veuillez mettre ici: "&", autrement
// ne changez rien

$webmaster = ""; // email du webmaster
$bgtitre = "#C1C1C1"; // couleur de fond du haut du message
$bgcolor = "#E4DCD2"; // couleur de fond des messages
$width = "475"; // largeur du message (en pixel ou %)

$potitre = "arial"; // police du haut du message
$cotitre = "#000000"; // couleur du haut du message

$pomessa = "courier new"; // police du message
$comessa = "#000000"; // couleur du message

$face = "arial"; // police des liens du haut de page
$color = "#3E5278"; // couleur du nombre de messages

$col_alert = "#FF0000"; // couleur des messages d'erreur (#FF0000 : rouge)
?>



Citation : Et voici la table
CREATE TABLE goldenbook_tbl (
id int(11) NOT NULL auto_increment,
nom varchar(255) NOT NULL,
message tinytext NOT NULL,
date varchar(10) NOT NULL,
heure varchar(5) NOT NULL,
PRIMARY KEY (id),
KEY id (id),
UNIQUE id_2 (id)
);



Jusque là tout va bien, mon livre d' or fonctionne à merveille.

Ensuite j' ai décidé de mofifier mon script php et la table pour avoir un nouveau formulaire afin que les visiteurs puissent mettrent leurs adresse email, et pour avoir l' adresse IP de ceux qui postent les messages sur mon livre d' or.

Regardez:

Citation : Page livredor.php
<?
require("config.inc.php3");

if($topic=='form') // on affiche le formulaire
{
echo "<center><font face=\"$face\" color=\"$color\" size=\"2\"><b>Ajouter un message au Livre d'or</b></font></center><br>";
echo "<form method=\"POST\" action=\"$index"."$signe"."topic=poster\">\n";
echo "<input type=\"hidden\" name=\"topic\" value=\"poster\">\n";
echo "<center><input type=\"text\" name=\"nom\" size=\"30\" value=\"votre nom\"></center><br>\n";
echo "<center><input type=\"text\" name=\"mail\" size=\"30\" value=\"votre mail\"></center><br>\n";
echo "<center><textarea name=\"message\" rows=\"12\" cols=\"36\" wrap=\"virtual\">votre message ...</textarea></center>\n";
echo "<center><input type=\"submit\" name=\"submit\" value=\"Poster le message ...\"></center>\n\n";
echo "</form>";
echo "<center><font face=\"$face\" color=\"$color\" size=\"2\"><b><a href=\"$index\"><< Retour au Livre d'or</a></b></font></center>\n";
echo "<hr size=1 width=\"310\">\n";
echo "<center><a href=\"http://www.phpdebutant.fr.st\" target=\"_blank\"><font face=\"verdana\" size=\"1\">GoldenBook v1.0 (c) www.phpdebutant.fr.st&lt;/font></a></center>\n";
}
elseif($topic=='poster') // on poste les infos du formulaire
{
if(empty($nom) OR empty($message) OR empty($mail) OR $nom=='votre nom' OR $message=='votre message ...' OR $mail=='votre mail')
{
echo "<center><font face=\"$face\" color=\"$col_alert\" size=\"2\"><b>Erreur dans les champs !</b></center><br>\n";
echo "<center><a href=\"Javascript:history.back()\"><< Merci de retourner au formulaire</a></font></center>\n";
}
else
{
$db = mysql_connect("$host", "$login", "$password");
mysql_select_db("$base",$db);

$date = date("d-m-Y");
$heure = date("H\hi");

$message = addslashes($message);
$nom = addslashes($nom);
$mail = addslashes($mail);

mysql_query("INSERT INTO goldenbook_tbl VALUES('','$nom','$message','$date','$heure','$mail', '$_SERVER[\'REMOTE_ADDR\']')");
mysql_close();

Header("Location: $index");
}
}
else // on affiche le livre d'or
{
$db = mysql_connect("$host", "$login", "$password");
mysql_select_db("$base",$db);

if($limit==''){ $limit = 0; }

$count_req = mysql_query("SELECT id FROM goldenbook_tbl");
$count = mysql_numrows($count_req);

$comptage_req = mysql_query("SELECT * FROM goldenbook_tbl ORDER BY id DESC LIMIT $limit, 10");
$comptage = mysql_numrows($comptage_req);

echo "<center><font face=\"$face\" color=\"$color\" size=\"2\"><b>$count messages | ";
echo "<a href=\"$index"."$signe"."topic=form\">Ajouter un message</a> | ";

echo "<hr size=1 width=\"$width\">\n";

$i=0;
WHILE($i!=$comptage)
{
$nom = mysql_result($comptage_req,$i,"nom");
$message = mysql_result($comptage_req,$i,"message");
$date = mysql_result($comptage_req,$i,"date");
$heure = mysql_result($comptage_req,$i,"heure");
$mail = mysql_result($comptage_req,$i,"mail");

$message = stripslashes(stripslashes($message));
$nom = stripslashes(stripslashes($nom));
$mail = stripslashes(stripslashes($mail));

echo "<center><div align=\"center\">\n";
echo "<table width=\"$width\" bgcolor=\"$bgcolor\">\n";
echo "<tr><td bgcolor=\"$bgtitre\"><font face=\"$potitre\" color=\"$cotitre\" size=2> <b>$nom</b> ($mail)</font> <font face=\"verdana\" size=\"1\">($date à $heure)</font></td></tr>\n";
echo "<tr><td><font face=\"$pomessa\" color=\"$comessa\" size=2><blockquote>$message</font></td></tr>\n";
echo "</table></div></center><br>\n\n";

$i++;
}

// gestion des liens pages ----------------------------
$pages = $count / 10;
$pages = floor($pages);

if($count>10)
{
$footer = "Pages: <a href=\"$index"."$signe"."limit=0\"><b>index</b></a>\n";

if($count==40){ $i = 1; }else{ $i = 0; }

$comptage = 10;
$page_num = 2;
WHILE($i!=$pages)
{
if($limit==$comptage)
{
$footer .= " | <b>$page_num</b>\n";
$comptage += 10;
$page_num++;
$i++;
}
else
{
$footer .= " | <a href=\"$index"."$signe"."limit=$comptage\"><b>$page_num</b></a>\n";
$comptage += 10;
$page_num++;
$i++;
}
}
}

$reste = $count - $limit - 10;
$reste_limit = $limit + 10;

if($reste<=0)
{
$reste = "Fin des messages";
$avant = "";
$apres = "";
}
else
{
$reste = "10 affichés - Reste ";
$reste .= $count - $limit - 10;
$avant = "<a href=\"$index"."$signe"."limit=$reste_limit\">";
$apres = "</a>";
}

if($count==0)
{
$reste = "Le livre d'or est vide pour le moment";
$avant = "";
$apres = "";
}

echo "<center><font face=\"$face\" color=\"$color\" size=\"2\">[$avant"."$reste"."$apres]</font></center><br>\n";
echo "<center><font face=\"$face\" color=\"$color\" size=\"2\">$footer</font></center>\n";
echo "<hr size=1 width=\"$width\">\n";

mysql_close();
}
?>



Citation : Page config.inc.php3
J' ai rien changé sur cette page ...


Citation : la table

CREATE TABLE goldenbook_tbl (
id int(11) NOT NULL auto_increment,
nom varchar(255) NOT NULL,
message tinytext NOT NULL,
date varchar(10) NOT NULL,
heure varchar(5) NOT NULL,
mail varchar(50) NOT NULL,
ip varchar(20) NOT NULL,
PRIMARY KEY (id),
KEY id (id),
UNIQUE id_2 (id)
);




A mes yeux, mon script php est correct, mais mon livre d' or ne fonctionne pas et je ne trouve pas l' erreur.

Avez-vous une solution ?

Merci d' avance !

Autres pages sur : probleme livre php mysql

13 Juin 2006 13:36:39

dit nous l'erreur ! sa marche pas , certes mais sa fait quoi ?

Lire des tartines de codes c'est tres lourd tu sais......
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS