Inscription-espace membre
Résolu
Loic1983
Messages postés
98
Date d'inscription
Statut
Membre
Dernière intervention
-
avion-f16 Messages postés 19252 Date d'inscription Statut Contributeur Dernière intervention -
avion-f16 Messages postés 19252 Date d'inscription Statut Contributeur Dernière intervention -
Bonour à tous,
J'éssai de faire un espace membre pour mes (futur) membres, mais impossible...
Je doit peut être être moin intelleligent que la moyenne... j'ai parcouru le site du zéro, plusieurs tuto sur les sessions, mais je n'y arrive pas. On me dit pourtant que ce que je souhaite faire est simple a réaliser.
J'aimerai faire un petit cadre sur la page d'acceuil de mon site avec une case NOM, une autre MOT DE PASSE, et sous ces cases le mot 's'inscrire'.
Je voudrais que les visiteurs puissent s'inscrire, tout simplement. J'aimerai faire une page perso à chaque membre, protégé par leur mot de passe.
Si quelqu'un connait un tuto vraiment très claire, ou veut prendre la peine de m'éxpliquer pas a pas ce qu'il faut faire ce serait sympa.
merci
J'éssai de faire un espace membre pour mes (futur) membres, mais impossible...
Je doit peut être être moin intelleligent que la moyenne... j'ai parcouru le site du zéro, plusieurs tuto sur les sessions, mais je n'y arrive pas. On me dit pourtant que ce que je souhaite faire est simple a réaliser.
J'aimerai faire un petit cadre sur la page d'acceuil de mon site avec une case NOM, une autre MOT DE PASSE, et sous ces cases le mot 's'inscrire'.
Je voudrais que les visiteurs puissent s'inscrire, tout simplement. J'aimerai faire une page perso à chaque membre, protégé par leur mot de passe.
Si quelqu'un connait un tuto vraiment très claire, ou veut prendre la peine de m'éxpliquer pas a pas ce qu'il faut faire ce serait sympa.
merci
A voir également:
- Inscription-espace membre
- Espace insécable - Guide
- Espace de stockage gmail plein - Guide
- Wetransfer gratuit sans inscription - Guide
- Twitter inscription - Guide
- Membre indisponible vinted - Guide
13 réponses
Un tutoriel pour faire un espace-membres assez basique :
http://www.lephpfacile.com/howto/10-comment-faire-un-espace-membre-en-php
http://www.lephpfacile.com/howto/10-comment-faire-un-espace-membre-en-php
Tu as sans doute fait une faute dans l'attribut "action" de la balise "form".
Il faut que la page cible existe.
Il faut que la page cible existe.
J'ai trouver ce script sur le site:
vegeta1other 12 jun 2008 à 00:52
Comment créer un espace membre?? bin c assez simple quand on a déjà tâté du PHP et qu'on connait le principe logique...
voici comment ca marche:
1) creer sa page de demarrage. (appelé index)
<?php
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('test', $base);
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();
// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème :)
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
<html>
<head>
<title>Accueil</title>
</head>
<body>
Connexion à l'espace membre :<br />
<form action="index.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
<input type="submit" name="connexion" value="Connexion">
</form>
<a href="inscription.php">Vous inscrire</a>
<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</body>
</html>
--> info a savoir sur la page de démarrage: Ici, ce n'est que les cadres pour l inscription, mais vous pouvez y ajouté tous le body de votre site (présentation par ex)...
Ensuite, il faut bien sur une page
ATTENTION
- Pour que cela fonctionne, vous devez mettre le bon server, login et password suivant la configuration de votre base de donné, de plus, ici la table ce nome "test"...
- Vous devez avoir créé une base de donnée avec une table (ici membre) pour y ranger les infos des visiteurs qui s'inscrivent.
pour ce faire, voici une requête SQL toute chaude
CREATE TABLE membre (
id int(11) NOT NULL auto_increment,
login text NOT NULL,
pass_md5 text NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
2) Faire un lien de la page index a la page d inscription pour avoir un formulaire "entre guillement ici" à remplir.
<?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
// on teste les deux mots de passe
if ($_POST['pass'] != $_POST['pass_confirm']) {
$erreur = 'Les 2 mots de passe sont différents.';
}
else {
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('test', $base);
// on recherche si ce login est déjà utilisé par un autre membre
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
if ($data[0] == 0) {
$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass'])).'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
}
else {
$erreur = 'Un membre possède déjà ce login.';
}
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
<html>
<head>
<title>Inscription</title>
</head>
<body>
Inscription à l'espace membre :<br />
<form action="inscription.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
<input type="submit" name="inscription" value="Inscription">
</form>
<?php
if (isset($erreur)) echo '<br />',$erreur;
?>
</body>
</html>
- Une fois validée toutes les infos seront ds la BdD
3) Ensuite, créer la page sur laquelle votre bien aimé visiteur tombera apres s'être inscrit.
<?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: index.php');
exit();
}
?>
<html>
<head>
<title>Espace membre</title>
</head>
<body>
Bienvenue <?php echo htmlentities(trim($_SESSION['login'])); ?>!<br />
<a href="deconnexion.php">Déconnexion</a>
</body>
</html>
Voila, et si votre membre souhaite se deconecter...
<?php
session_start();
session_unset();
session_destroy();
header('Location: index.php');
exit();
?>
Tous ses codes sont déjà lié entre eu... il ne reste plus qu a les utilisers en adaptant le nom de la base de donnée, le login et le pass
-----------------------------------------------------------------------------------------------
Mais ca ne fonctionn pas, quand je tente une inscription ca m'affiche "no data base selected"
vegeta1other 12 jun 2008 à 00:52
Comment créer un espace membre?? bin c assez simple quand on a déjà tâté du PHP et qu'on connait le principe logique...
voici comment ca marche:
1) creer sa page de demarrage. (appelé index)
<?php
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('test', $base);
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();
// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème :)
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
<html>
<head>
<title>Accueil</title>
</head>
<body>
Connexion à l'espace membre :<br />
<form action="index.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
<input type="submit" name="connexion" value="Connexion">
</form>
<a href="inscription.php">Vous inscrire</a>
<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</body>
</html>
--> info a savoir sur la page de démarrage: Ici, ce n'est que les cadres pour l inscription, mais vous pouvez y ajouté tous le body de votre site (présentation par ex)...
Ensuite, il faut bien sur une page
ATTENTION
- Pour que cela fonctionne, vous devez mettre le bon server, login et password suivant la configuration de votre base de donné, de plus, ici la table ce nome "test"...
- Vous devez avoir créé une base de donnée avec une table (ici membre) pour y ranger les infos des visiteurs qui s'inscrivent.
pour ce faire, voici une requête SQL toute chaude
CREATE TABLE membre (
id int(11) NOT NULL auto_increment,
login text NOT NULL,
pass_md5 text NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
2) Faire un lien de la page index a la page d inscription pour avoir un formulaire "entre guillement ici" à remplir.
<?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
// on teste les deux mots de passe
if ($_POST['pass'] != $_POST['pass_confirm']) {
$erreur = 'Les 2 mots de passe sont différents.';
}
else {
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('test', $base);
// on recherche si ce login est déjà utilisé par un autre membre
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
if ($data[0] == 0) {
$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass'])).'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
}
else {
$erreur = 'Un membre possède déjà ce login.';
}
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
<html>
<head>
<title>Inscription</title>
</head>
<body>
Inscription à l'espace membre :<br />
<form action="inscription.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
<input type="submit" name="inscription" value="Inscription">
</form>
<?php
if (isset($erreur)) echo '<br />',$erreur;
?>
</body>
</html>
- Une fois validée toutes les infos seront ds la BdD
3) Ensuite, créer la page sur laquelle votre bien aimé visiteur tombera apres s'être inscrit.
<?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: index.php');
exit();
}
?>
<html>
<head>
<title>Espace membre</title>
</head>
<body>
Bienvenue <?php echo htmlentities(trim($_SESSION['login'])); ?>!<br />
<a href="deconnexion.php">Déconnexion</a>
</body>
</html>
Voila, et si votre membre souhaite se deconecter...
<?php
session_start();
session_unset();
session_destroy();
header('Location: index.php');
exit();
?>
Tous ses codes sont déjà lié entre eu... il ne reste plus qu a les utilisers en adaptant le nom de la base de donnée, le login et le pass
-----------------------------------------------------------------------------------------------
Mais ca ne fonctionn pas, quand je tente une inscription ca m'affiche "no data base selected"
Merci pour ta réponse (et aussi pour sa rapidité!)
J'arrive plus ou moin a m'en sortir avec le scriptci-dessus,j'aicependant 2 problèmes:
1. lorsque j'entre un mauvas nom d'utilisateur ca m'affiche "internet explorer ne peut pas afficher cette pag web.
2. lorsque j'entre le bon nom et le bon mot de passe ca m'affiche également la même chose.
J'ai appelé la première page index.php
la deuxieme inscription.php
la troisième membre.php
Vu que celui qui a écritce poste n'a pas précser le nom à donner j'ai peut être fait une erreur la dessus?
J'arrive plus ou moin a m'en sortir avec le scriptci-dessus,j'aicependant 2 problèmes:
1. lorsque j'entre un mauvas nom d'utilisateur ca m'affiche "internet explorer ne peut pas afficher cette pag web.
2. lorsque j'entre le bon nom et le bon mot de passe ca m'affiche également la même chose.
J'ai appelé la première page index.php
la deuxieme inscription.php
la troisième membre.php
Vu que celui qui a écritce poste n'a pas précser le nom à donner j'ai peut être fait une erreur la dessus?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ne copie pas bêtement les scripts, analyses-les afin de comprendre le fonctionnement.
Ensuite, code toi-même.
Ensuite, code toi-même.
C'est un peu ce que je fais, j'essai d'analyser au maximum les scripts pour y comprendre quelque chose... mais bon c'est pas facile j'ai un peu de mal avec les sessions.
J'ai toujours mes érreurs "internet explorer ne peu pas afficher cette page" quand je tente de me connecter avec un nom d'utilisateur et mot de passe que j'ai enregistré.
Apparament ma page index.php ne dirige pas vers la page membre.php, quelqu'un voit il d'ou viens l'erreur?
J'ai toujours mes érreurs "internet explorer ne peu pas afficher cette page" quand je tente de me connecter avec un nom d'utilisateur et mot de passe que j'ai enregistré.
Apparament ma page index.php ne dirige pas vers la page membre.php, quelqu'un voit il d'ou viens l'erreur?
J'ai suivi le tuto que tu m'a donner avion f-16,
en faite c'est le tuto correspond au script que j'ai.
Au moin j'ai pu comprendre un petit peu le fonctionnement.
Par contre j'en suis toujours au même problême...
Voit tu de quoi ca viens? (enfin je me doute que tu doit savoir de quoi ca viens, la question est veu tu me l'expliquer stp?)
Merci
en faite c'est le tuto correspond au script que j'ai.
Au moin j'ai pu comprendre un petit peu le fonctionnement.
Par contre j'en suis toujours au même problême...
Voit tu de quoi ca viens? (enfin je me doute que tu doit savoir de quoi ca viens, la question est veu tu me l'expliquer stp?)
Merci
Merci avion f-16 pour ton aide,
Frogone tu ne doit pas comprendre que des personnes comme moi par exemple font leur site eux-même car ils n'ont pas le budjet pour faire appels a des proffessionnels.
Si moi par exemple je n'arive pas a faire moi même mon site ben je laisserai tombé mon projet... et aucun proffessionnels ne me gagnera comme client...
Donc l'aide que avion f-16 apporte a des personnes comme moi est très précieuse et ne joue pas en défaveur des proffessionnels.
Frogone tu ne doit pas comprendre que des personnes comme moi par exemple font leur site eux-même car ils n'ont pas le budjet pour faire appels a des proffessionnels.
Si moi par exemple je n'arive pas a faire moi même mon site ben je laisserai tombé mon projet... et aucun proffessionnels ne me gagnera comme client...
Donc l'aide que avion f-16 apporte a des personnes comme moi est très précieuse et ne joue pas en défaveur des proffessionnels.
Pour en revenir a mon problême,
j'ai résolu cette histoire de
"Warning: mysql_connect() [function.mysql-connect]: php_network_getaddresses: getaddrinfo failed: Hôte inconnu. in C:\wamp\www\test2\inscription.php on line 11"
Par contre j'ai toujours le soucis suivant:
quand je m'inscrit en entrant un nom et mot de passe c'est ok, j'arrive sur la page membre.php qui me dit:"bienvenu"
Par contre quand je me déconnecte et tente de me reconnecté avec le nom et mot de passe l'ordinateur charge un moment puis "internet exploreur ne peu pas afficher cette page" et une fenetre windows s'ouvre me disant que appache a cesser de fonctionner suite a un probleme.
Vois tu d'ou l'erreur peu venir?
Apparament la page membre.php n'est pas accessible suite a une connection de membre déja enregistré
j'ai résolu cette histoire de
"Warning: mysql_connect() [function.mysql-connect]: php_network_getaddresses: getaddrinfo failed: Hôte inconnu. in C:\wamp\www\test2\inscription.php on line 11"
Par contre j'ai toujours le soucis suivant:
quand je m'inscrit en entrant un nom et mot de passe c'est ok, j'arrive sur la page membre.php qui me dit:"bienvenu"
Par contre quand je me déconnecte et tente de me reconnecté avec le nom et mot de passe l'ordinateur charge un moment puis "internet exploreur ne peu pas afficher cette page" et une fenetre windows s'ouvre me disant que appache a cesser de fonctionner suite a un probleme.
Vois tu d'ou l'erreur peu venir?
Apparament la page membre.php n'est pas accessible suite a une connection de membre déja enregistré
Et a tu une idée de comment résoudre ce problême?
Je pensai que l'erreur vennait peut etre de cette ligne (prise de la page index.php)
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
mais j'ai du faire fausse route si tu me dit que c'est un probleme du a ma plate forme de dévellopement...
J'utlise wamp
Je pensai que l'erreur vennait peut etre de cette ligne (prise de la page index.php)
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
mais j'ai du faire fausse route si tu me dit que c'est un probleme du a ma plate forme de dévellopement...
J'utlise wamp
On m'a oublié?
Quelqu'un sait il comment résoudre ce probleme sur wamp?
Quand je tente de me connecter avec un nom et mot de passe, que ca m'affiche "internet explorer ne peu pas afficher cette page" et que j'ai la petite fenetre windows qui me dit"appach a cesser de fonctionner suite a un probleme" je vais dans "apach error log" et j'ai ceci qui s'affiche:
[Tue Mar 23 14:47:57 2010] [notice] Parent: child process exited with status 255 -- Restarting.
[Tue Mar 23 14:47:57 2010] [notice] Apache/2.2.11 (Win32) PHP/5.3.0 configured -- resuming normal operations
[Tue Mar 23 14:47:57 2010] [notice] Server built: Dec 10 2008 00:10:06
[Tue Mar 23 14:47:57 2010] [notice] Parent: Created child process 4300
[Tue Mar 23 14:47:58 2010] [notice] Child 4300: Child process is running
[Tue Mar 23 14:47:58 2010] [notice] Child 4300: Acquired the start mutex.
[Tue Mar 23 14:47:58 2010] [notice] Child 4300: Starting 64 worker threads.
[Tue Mar 23 14:47:58 2010] [notice] Child 4300: Starting thread to listen on port 80.
quelqu'un voit ce que ca veu dire?
Quelqu'un sait il comment résoudre ce probleme sur wamp?
Quand je tente de me connecter avec un nom et mot de passe, que ca m'affiche "internet explorer ne peu pas afficher cette page" et que j'ai la petite fenetre windows qui me dit"appach a cesser de fonctionner suite a un probleme" je vais dans "apach error log" et j'ai ceci qui s'affiche:
[Tue Mar 23 14:47:57 2010] [notice] Parent: child process exited with status 255 -- Restarting.
[Tue Mar 23 14:47:57 2010] [notice] Apache/2.2.11 (Win32) PHP/5.3.0 configured -- resuming normal operations
[Tue Mar 23 14:47:57 2010] [notice] Server built: Dec 10 2008 00:10:06
[Tue Mar 23 14:47:57 2010] [notice] Parent: Created child process 4300
[Tue Mar 23 14:47:58 2010] [notice] Child 4300: Child process is running
[Tue Mar 23 14:47:58 2010] [notice] Child 4300: Acquired the start mutex.
[Tue Mar 23 14:47:58 2010] [notice] Child 4300: Starting 64 worker threads.
[Tue Mar 23 14:47:58 2010] [notice] Child 4300: Starting thread to listen on port 80.
quelqu'un voit ce que ca veu dire?
J'ai trouver la solution!
Et tout seul, comme un grand!
en fait il faut supprimer le mysql_colse ();
et tout fonctionne...
Bon j'avoue que j'ai fais quelques recherches sur google et apparament wamp ce plante avec la fonction mysql_close();
Donc ceux qui sont dans le même cas il suffit de supprimer ce champ
Et tout seul, comme un grand!
en fait il faut supprimer le mysql_colse ();
et tout fonctionne...
Bon j'avoue que j'ai fais quelques recherches sur google et apparament wamp ce plante avec la fonction mysql_close();
Donc ceux qui sont dans le même cas il suffit de supprimer ce champ