Juste pour info alors, je te files le début afin que tu bosses un peu :
requête SQL:
========
CREATE TABLE membres (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
login VARCHAR(255) NULL,
pass VARCHAR(255) NULL,
mail VARCHAR(255) NULL,
PRIMARY KEY(id)
);
CREATE TABLE messages (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
id_membre INTEGER UNSIGNED NOT NULL,
date DATETIME NOT NULL,
titre VARCHAR(255) NULL,
contenu LONGTEXT NULL,
categorie INTEGER UNSIGNED NULL DEFAULT 0,
reponse_admin LONGTEXT NULL,
PRIMARY KEY(id)
);
login.php
=====
<?php session_start(); include('auth.php');?>
<html>
<head>
<title>Login</title>
</head>
<body>
<?php
if ( !isset($_SESSION['id_membre'])) {
if (isset($_POST['login']) && isset($_POST['pass']) ) {
$sql = "SELECT id_membre FROM $table_membres WHERE login='".$_POST['login']."' AND pass='".$_POST['pass']."' ORDER BY id_membre LIMIT 1";
$res = mysql_query($sql,$id_link);
if (mysql_rows_num($res)==0) {
header("location: ".$_SERVER['PHP_SELF']);
}else{
while ($row = mysql_fetch_array($res)){
$_SESSION['id_membre'] = $row['id_membre'];
}
header("location: index.php");
}
}else{
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<fieldset>
<legend>Login/MdP</legend>
<input name="login" type="text" value="login" />
<input name="pass" type="text" value="password" />
<input type="submit" value="Valider" />
</fieldset>
</form>
<?php
}
}else{
header("location: index.php");
}
?>
</body>
</html>
index.php (côté client)
=============
<?php session_start(); include("auth.php"); setlocale(LC_MONETARY, "fr","fr_FR");?>
<html>
<head>
<title>Login</title>
</head>
<body>
<?php
if ( !isset($_SESSION['id_membre'])) {
header("location: login.php");
}else{
?>
Historique des conversations :
<?php
$sql = "SELECT * FROM $table_messages WHERE id_membre='".$_SESSION['id_membre']."' ORDER BY date DESC";
$res = mysql_query($sql, $id_link);
while ($row = mysql_fetch_array($res)){
printf("Date: %s<br />Titre: \"%s\"<br /><textarea>%s</textarea><br />Réponse Admin: %s<br /><br />", strftime("%D %T",), $row['titre'], $row['contenu'], $row["reponse_admin"]);
}
?>
Nouvelle conversation :
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<input type="hidden" name="date" value="<?php echo date("%d-%m-%y %T");?>" />
titre:<input type="text" name="titre" value="" /><br />
contenu:<textarea></textarea><br />
</form>
<?php
}
?>
</body>
</html>
auth.php (contient les données pour la connexion SQL)
<?php
# Met le temps d'exécution de la page à 0:infini
@set_time_limit(0);
#On défini les nom des tables
$table_membres = "membres";
$table_messages = "messages";
#regarde si le site est contacter en local ou non - Ainsi on peut directement publier sur le site Free.fr
$local = ereg("127\.0\.0\.1|192\.168\.[0-9]{1,3}\.[0-9]{1,3}|169\.254\..*",getenv('REMOTE_ADDR'));
if ($local == 1) {
$dbname='test';
$hostname='localhost';
$username='test';
$password='test';
}
else{
$dbname='';
$hostname='';
$username='';
$password='';
}
#On crée une connection vers le serveur MySQL
$id_link = @mysql_connect($hostname, $username, $password, true, MYSQL_CLIENT_SSL) or die ("Erreur lors de la connexion au serveur MySQL :".mysql_error());
#On selectionne la base de donnée voulue
$db_selected = mysql_select_db($dbname, $id_link);
if (!$db_selected) {
die ('Impossible de sélectionner la base de données : ' . mysql_error());
}
?>
je te laisse voir sinon pour la partie admin mais c'est pas très dur. L'ensemble de ce que je te files, je l'ai fais en 30-35min. Pour un truc complet avec un meilleur design (CSS, ...) il me faudrait 1-2H selon la complexité mais là j'ai pas trop le temps donc je te laisses finir. C'est un bon exercice pour toi afin de savoir programmer. Il te faudra aussi faire la partie enregistrement des membres (ca va, pas dur un formulaire, 2-3 <input type="text" /> et un submit.