Probléme livre d' or php + mysql
Dernière réponse : dans Programmation
Salut à tous, j' ai actuellement un livre d' or en php + mysql que j' ai téléchargé sur le net. Le voici:
htt://ns23.hosteur.com/~bpzoom/index.php?page=livredor
Je souhaite que les gens qui postent un message sur le livre d' or puissent mettre leur adresse email, comme pour "pseudo", donc il faut créer un nouveau formulaire avec à côté: "Votre adresse email".
Je connaît pas le php, et je n' arrive pas à créer ce formulaire ...
Est-ce que quelqu' un peut me donner ce qu' il faut rajouter dans le script et éventuellement dans la base données ?
Voici ma 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();
}
?>
Voici 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)
?>
Voici le code qui m' a permis de créer la table sur ma base de données:
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)
);
Voilà, en ésperant que quelqu' un pourra m' aider,
Merci d' avance !
htt://ns23.hosteur.com/~bpzoom/index.php?page=livredor
Je souhaite que les gens qui postent un message sur le livre d' or puissent mettre leur adresse email, comme pour "pseudo", donc il faut créer un nouveau formulaire avec à côté: "Votre adresse email".
Je connaît pas le php, et je n' arrive pas à créer ce formulaire ...
Est-ce que quelqu' un peut me donner ce qu' il faut rajouter dans le script et éventuellement dans la base données ?
Voici ma 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();
}
?>
Voici 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)
?>
Voici le code qui m' a permis de créer la table sur ma base de données:
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)
);
Voilà, en ésperant que quelqu' un pourra m' aider,
Merci d' avance !
Autres pages sur : probleme livre php mysql
Lassé par la pub ? Créez un compte
<?
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 "<=\"hidden\" name=\"topic\" value=\"poster\">\n";
echo "<center><=\"\" name=\"nom\" size=\"30\" value=\"votre nom\"></center><br>\n";
echo "<center><=\"\" name=\"email\" size=\"30\" value=\"votre email\"></center><br>\n";
echo "<center><textarea name=\"message\" rows=\"12\" cols=\"36\" wrap=\"virtual\">votre message ...</textarea></center>\n";
echo "<center><=\"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=\"java script: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','$email','$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");
$email = mysql_result($comptage_req,$i,"email");
$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> ($email) </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();
}
?>
Pour ajouter l'email dans la base, tu peux, depuis phpMyAdmin, exécuter la requète suivante:
ALTER TABLE `goldenbook_tbl` ADD `email` VARCHAR( 255 ) NOT NULL AFTER `nom`;
J' ai fait ce que tu as dit, il ya une erreur, regarde là:
http://ns23.hosteur.com/~bpzoom/index.php?page=livredor
Essaye d' ajouter un message, tu verras l' erreur.
Merci d' avance !
http://ns23.hosteur.com/~bpzoom/index.php?page=livredor
Essaye d' ajouter un message, tu verras l' erreur.
Merci d' avance !
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :