|
|
|
|
Bonjour,
je voudrais créer un espace 'privé' dans lequel les gens devraient
- s'inscrire (login, pass, mail)
- pouvoir ensuite 'poster' et avoir la réponse à leur question (en être même averti par mail ce serait sympa !)
Il ne s'agit pas du tout d'un 'forum' avec 36 rubriques, mais que chacun puisse après inscription avoir son espace de communication avec le webmaster du site ....
là je coince au niveau du script (ou autre) à choisir et à trouver !!!
si vous avez des indications à me donner elles seront les bienvenues ...
et l'idéal serait même de pouvoir faire cela sans base de donnée ... mais est-ce possible ? est-ce que cela existe qq part ? en open soucre ?
@mitiés
b g
le 'www' est fait aussi pour communiquer, partager et échanger, non ?Configuration: Windows XP
Firefox 2.0.0.4
Tu veux faire une zone d'assistance pour que les membres puissent demander des trucs au webmaster donc. Pour cela, je te conseille de développer tout même en PHP/MySQL.
|
Merci c'est sympa
|
Chaque espace serait privé avec ma technique, car il suffirait de n'afficher que l'historique dont le client est propriétaire (où membres.id=relation.id_membres) ce qui ce traduit par deux simples SELECT:
|
T'es un petit rigolo toi !
|
Ce que tu veux faire ressemble énormément à un forum, le fait qu'il n'y ait pas 36 messages mais un espace privé avec seul les messages de l'utilisateur est un détail.
|
Juste pour info alors, je te files le début afin que tu bosses un peu :
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. |
Grand merci
|