Code : Tout sélectionner
#
# Base de données: `forum`
# Structure de la table `forum_messages`
#
CREATE TABLE forum_messages (
ID int(11) NOT NULL AUTO_INCREMENT,
quand int(11) DEFAULT NULL,
login varchar(15) NOT NULL DEFAULT '',
email varchar(50) NOT NULL DEFAULT '',
message text NOT NULL,
reponse int(11) NOT NULL DEFAULT '0',
KEY ID (ID)
) TYPE=MyISAM<?
/*
Mini-forum en PHP - Etape 2
http://www.asp-php.net/scripts/asp-php/mini-forum.php
*/
// === CONNEXION A LA BD ===
// On teste si on est en local ou non
$isLocal = ($_SERVER["SERVER_NAME"]=="localhost");
// Paramètres de connexion en local ou sur site
// Remplacer ??? par les paramètres del'hébergement
$host = ($isLocal) ? "localhost" : "???";
$user = ($isLocal) ? "root" : "???";
$pass = ($isLocal) ? "" : "???";
$bdd = ($isLocal) ? "forum" : "???";
// connexion
mysql_connect($host,$user,$pass);
mysql_select_db($bdd);
// === AJOUT DU MESSAGE EVENTUEL ===
if(@$_POST["message"]) {
$SQL = "INSERT into forum_messages"
."(quand,login,email,message"
.",reponse) VALUES(" . time()
.",'".$_POST["login"]."'"
.",'".$_POST["email"]."'"
.",'".addslashes($_POST["message"])."'"
.",'".$_POST["reponse"]."'"
.")";
mysql_query($SQL);
}
// === AFFICHAGE DE LA PAGE ===
?><HTML><HEAD>
<TITLE>Mini-forum</TITLE>
<SCRIPT language="JavaScript"><!--
function repond(id) {
document.form1.reponse.value=id
document.form1.submit()
}
--></SCRIPT>
</HEAD><BODY bgcolor="#FFFFFF"><center>
<!-- Formulaire de saisie -->
<table>
<form method="post" action="index.php" name="form1">
<tr>
<td align=right>Login</td><td>
<input name="login" maxlength=15>
</td><td rowspan=3>
<textarea name="message" cols=60 rows=5
></textarea>
</td>
</tr><tr>
<td align=right>Email</td><td>
<input name="email" maxlength=50>
</td>
</tr><tr>
<td colspan=2 align=center>
<input type="submit" value="Nouveau sujet">
<input type="hidden" name="reponse">
</td>
</tr>
</form>
</table>
<!-- Affichage des messages -->
<table border=1 cellspacing=0 cellpadding=5 width=100%>
<?
// Fonction d'écriture des messages et réponses
function ecrit($id) {
$SQL = "SELECT * FROM forum_messages WHERE ID=".$id
. " OR reponse=".$id." ORDER BY ID";
$res = mysql_query($SQL);
while($val=mysql_fetch_array($res)) {
// Bouton "Répondre" ?
if(!$val["reponse"]) {
echo "<button onclick='repond(".$val["ID"].")'>"
. "Répondre</button>";
} else {
echo "<hr size=1>";
}
// Ecrit la date du message
echo date("d/m/Y",$val["quand"]);
// Ecrit le login de l'auteur
echo " - ".$val["login"];
echo "<br>";
// Ecrit le message, n'autorise pas les code html ;)
echo htmlentities($val["message"]);
}
}
// Requête de sélection des messages initiaux
$SQL = "SELECT ID FROM forum_messages"
. " WHERE reponse=0 ORDER BY ID DESC";
$res = mysql_query($SQL);
// Tant qu'il y a des messages
while($val=mysql_fetch_array($res)) {
// Nouvelle ligne
echo "<tr><td>";
// Ecrit le message et ses réponses
ecrit($val["ID"]);
// Fin de ligne
echo "</td></tr>";
}
?>
</table>
</center></BODY></HTML><?
// === DECONNEXION ===
mysql_close();
?>