Espace privé

bg62 Messages postés 23735 Date d'inscription   Statut Modérateur Dernière intervention   -  
 hbc -
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
A voir également:

8 réponses

vignemail1 Messages postés 1246 Date d'inscription   Statut Contributeur Dernière intervention   259
 
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.
Dans une table, tu stockes les membres (id, login, pass, mail)
Dans une autre, tu stockes les messages (id, titre, contenu, date, categorie?)
Dans une autre enfin, tu y stockes la relation (id_membres, id_message) afin de pouvoir les trier par date, titre, catégorie, ...

côté client, une page de login consultant "membres"
une page historique des contacts avec le webmaster
une page de post (peut être combiné avec l'historique trié par date chronologique inverse)

Tout ceci peut être fait en 24H (voir moins si tu t'y connait en PHP/MySQL)
0
bg62 Messages postés 23735 Date d'inscription   Statut Modérateur Dernière intervention   2 409
 
merci c'est sympa
Mais il faut que les autres membres n'y aient pas accès ...(chaque espace doit être privé) ... j'avais oublié de le dire
bon, quant à la durée .... 24 heures faut pas rêver ... de ce côté là je suis nul de chez nul !
en plus, je voudrais préparer tout ça (et tester !) en local, c'est pour cela que je voudrais éviter une BDD ...
mais s'il n'y a pas d'autres moyens ... mais là cela ferait quand même 3 tables minimum à créer et celui qui s'en servira ensuite n'y arrivera pas (là c'est sur il est encore plus '0' que moi .... !)
c'est pour cela que je demandais si qq chose de ce genre existe , pour pouvoir, le comprendre (essayer !) et ensuite l'adapter et le personnaliser
0
vignemail1 Messages postés 1246 Date d'inscription   Statut Contributeur Dernière intervention   259
 
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:
1- On récupère les id_message du client :
SELECT id_message FROM relation WHERE id_membres=$id_membre;

on obtient donc un tableau (après mysql_fetch_array) contenant tous les id_messages du client
2- On récupère les messages correspondants
SELECT * FROM messages WHERE id=$id_message ORDER BY date DESC;

on récupère les champs id, titre, contenu, date et categorie ainsi. On peut ainsi commencer à afficher.

Cela reviens à faire 2 boucles while imbriqués, je te l'ai dit, 24H max (pour moi ton truc je le fait en 1H max je pense)
Après je sais pas trop s'il existe un truc du genre car tout webmaster devrait savoir le faire donc je pense pas qu'ils se mettraient à mettre un code simple comme celui-là sur le net.
0
bg62 Messages postés 23735 Date d'inscription   Statut Modérateur Dernière intervention   2 409
 
t'es un petit rigolo toi !
tout le monde ne peut pas tout connaître et être aussi balaise en PHP ... moi c'est plutôt la 'vieille garde' et il y a longtemps que le recyclage n'est plus d'actualité ...
tu pourrais me faire cela ? que je puisse tester ?
@+
b g
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Magichit
 
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.
Une base de données, comme son nom l'indique, consiste à stocker des données.
Du moment où tu veux un mot de passe et un nom d'utilisateur, puis des messages il s'agit bel et bien d'une base de données.

L''utilisateur final n'a pas besoin de connaître la programmation pour gérer,envoyer, recevoir des messages dans l'espace privé puisque que tu auras crée toi toutes ces fonctionnalités.
Tu te renseignes pour faire un projet et on t'indique les solutions, maintenant c'est à toi de t'y mettre en apprenant le php et l'utilisation de bases de données mysql ou alors d'utiliser une solution de forum tout fait que tu adapte pour tes exigences...sinon tu fait appel à un professionel qui le fait pour toi.
Moi ca me prendrait pas 24h mais un peu plus et je fait du php et du mysql depuis 2 mois seulement.
0
vignemail1 Messages postés 1246 Date d'inscription   Statut Contributeur Dernière intervention   259
 
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.
0
bg62 Messages postés 23735 Date d'inscription   Statut Modérateur Dernière intervention   2 409
 
grand merci
mais tu sais ... je suis complètement nul en PHP et là je n'y comprends rien du tout quand il s'agit de l'employer pour créer un nouveau script de A à Z
la CSS ça va mais le PHP je n'ai jamais appris et il est un peu trop tard pour cela ...
@mitiés
b g
0
hbc
 
Merci pour ce script
je vais l'adapter (mais sans base de données -) pour un espce privé classique
cordialement
Hervé
0