Page membre

Fermé
bettini - 12 janv. 2014 à 22:21
 bettini - 8 févr. 2014 à 08:03
Bonjour,

J'ai un site internet que j'ai réalisé moi-même grâce à un logiciel (open element) et un peu de "bidouille". Je ne suis pas un pro de l'informatique mais j'arrive à faire des petites choses.

Concrètement je souhaite que mes clients (je suis coach sportif) puissent accéder à une page membre où ils pourront voir leur programme sportif. Je vais faire une page par client puisque tout est personnalisé.

Maintenant je ne sais pas trop comment faire accéder mes clients à leur page perso.
J'ai regardé un peu des programmations php et je pense que la c'est un peu trop compliqué pour moi...

J'ai pensé à ça:
- mettre un lien "espace membre" sur ma page d'accueil
- en cliquant dessus j'arrive sur une page ou je mets un champ à remplir, un mot de passe quoi.
- en fonction du mot de passe entré, le client est dirigé sur sa page perso.

En gros, je crée un mot de passe par client. (je n'ai pas 200 personnes à gérer donc je peux le faire au cas par cas).

Je sais comment protéger une page par mot de passe, mais je ne sais pas comment rediriger sur une page x ou y en fonction du mot de passe entré.

Avez-vous une solution?

Merci d'avance

Anthony

10 réponses

[TiDi] Messages postés 126 Date d'inscription samedi 19 octobre 2013 Statut Membre Dernière intervention 17 juillet 2016 262
12 janv. 2014 à 22:48
Ok, donc sans PHP ce n'est pas possible ... Non ce n'est pas vraiment pas envisageable. Maintenant, ton site, tu le gères par client FTP ?

Si oui, suit les indications suivantes, je vais essayé de faire simple :

1. Tu ouvres ton bloc-notes :)
2. Tu enregistres sous nomdetapage.php
3. Je te fais un exemple de ce que tu pourrais mettre, après tu adaptes mon exemple au besoin de ton site :
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8"/> // quasiment obligatoire
    <title>Le titre de ton site</title>
  </head>
  <body>
    <header>
// Tu mets ici, l'entête de ton site, logo, etc ...
    </header>
    <section>
      <?php
      if (!isset($_POST['mdp']) OR $_POST['mdp'] != "motdepassedumembre1" OR $_POST['mdp'] != "motdepassedumembre2" // etc...)
      {
      ?>
      <form method="post" action="nomdelapagequetuesentraindecréer.php">
      <p><label for="1">Votre nom : </label><input type="text" id="1" name="pseudo"/>
      <label for="2">Votre mot de passe : </label><input type="password" id="2" name="mdp"/>
      </form>
      <?php
      }
      else
      {
      ?>
      // affiche le contenu de ta page réservé aux membres en HTML
      <?php
      }
      ?>
    </section>
  </body>
</html>


Voilà ! :)
0
Merci, je teste cela demain !
0
Bon j'ai testé sans succès...
Y a t-il un moyen en javascript de renvoyer sur une page x ou y en fonction du champ renseigné?

Concrètement j'ai sur ma page mon champ de formulaire "mot de passe" à remplir et un bouton pour valider. Il me faudrait donc un code qui redirige en cliquant sur mon bouton vers une page X si le mot de passe entré est "mdp1" et vers une page y si le mot de passe entré est "mdp2" et ainsi de suite.
0
[TiDi] Messages postés 126 Date d'inscription samedi 19 octobre 2013 Statut Membre Dernière intervention 17 juillet 2016 262
Modifié par [TiDi] le 22/01/2014 à 21:57
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8"/> // quasiment obligatoire
    <title>Le titre de ton site</title>
  </head>
  <body>
    <header>
// Tu mets ici, l'entête de ton site, logo, etc ...
    </header>
    <section>
      <?php
      if (!isset($_POST['mdp']))
      {
      ?>
      <form method="post" action="nomdelapagequetuesentraindecréer.php">
      <p><label for="1">Votre nom : </label><input type="text" id="1" name="pseudo"/>
      <label for="2">Votre mot de passe : </label><input type="password" id="2" name="mdp"/>
      </form>
      <?php
      }
      elseif ($_POST['mdp'] != "motdepassedumembre1" OR $_POST['mdp'] != "motdepassedumembre2")
      {
      header('Location: /page_mdp_incorrect.php');
      }
      else
      header('Location: /page_membre.php');
      }
      ?>
    </section>
  </body>
</html>


Je n'ai pas testé le code, il se peut qu'il ne marche pas, après oui tu peux le faire avec du JavaScript mais je ne m'y connais pas en JS ... Puis après, je sais pas s'il est bien de l'utiliser vu qu'il peut être désactiver par l'utilisateur.

TiDi
0

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

Posez votre question
J'ai réessayé et j'ai ajouté des lignes pour le bouton d'exécution. Mais le problème c'est qu'en cliquant sur le bouton envoyer, ça me redirige vers une page serveur error 404. De plus avec les lignes de code du bouton, j'ai un nouveau champ mais à quoi sert-il?

Avec ton code, il suffit juste que le mot de passe soit bon pour rediriger la page? Ou il faut absolument que le nom et le mdp soient juste?

Voici le code:


<?php
if (!isset($_POST['mdp']) OR $_POST['mdp'] != "mdp1" OR $_POST['mdp'] != "mdp2"
{
?>
<form method="post" action="http://www.google.fr">
<p><label for="1">Votre nom : </label><input type="text" id="1" name="pseudo"/>
<label for="2">Votre mot de passe : </label><input type="password" id="2" name="mdp"/>
</form>
<?php
}
else
{
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" enctype="multipart/form-data">
<input name="..." type="text">
<input type="submit" title="Go !" value="Envoyer"/>
</form>
<?php
}
?>
0
[TiDi] Messages postés 126 Date d'inscription samedi 19 octobre 2013 Statut Membre Dernière intervention 17 juillet 2016 262
23 janv. 2014 à 19:24
Oulah ! form action sert à définir la page php qui va traité les informations envoyés par le formulaire. En quoi Google va traité les informations nom et mot de passe ?
Non non, il faut que tu mettes sous action le nom de la page que tu écris toi !
Je sais pas si t'arrives à me comprendre ... La page que tu es entrain de rédiger en mettant ce code, il faut que tu mettes son nom dans form action.
0
Ok, j'ai mis Google en exemple, mais je croyais que c'était ici que je devais mettre ma page de redirection.
Il faut donc d'autres lignes pour rediriger après validation du mdp?
0
[TiDi] Messages postés 126 Date d'inscription samedi 19 octobre 2013 Statut Membre Dernière intervention 17 juillet 2016 262
Modifié par [TiDi] le 24/01/2014 à 22:24
0
[TiDi] Messages postés 126 Date d'inscription samedi 19 octobre 2013 Statut Membre Dernière intervention 17 juillet 2016 262
24 janv. 2014 à 22:24
Imaginons que tu es sur ton bloc-notes et que le code que tu es entrain de rédiger, tu vas l'enregistrer sous "espace-membres.php".

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8"/> // quasiment obligatoire
		<title>Le titre de ton site</title>
	</head>
	<body>
	<header>
// Tu mets ici, l'entête de ton site, logo, etc ...
	</header>
		<section>
			<?php
			if (!isset($_POST['mdp']))
			{
			?>
				<form method="post" action="espace-membres.php"> // *Explications de cette ligne en bas
					<p><label for="1">Votre nom : </label><input type="text" id="1" name="pseudo"/>
					<label for="2">Votre mot de passe : </label><input type="password" id="2" name="mdp"/>
				</form>
			<?php
			}
			elseif ($_POST['mdp'] != "mdp1" OR $_POST['mdp'] != "mdp2")
			{
				header('Location: /page_mdp_incorrect.php');
			}
			else
				header('Location: /page_membre.php');
			}
			?>
		</section>
	</body>
</html>


*Si tu veux, le formulaire agit sur la page où il agit lui même. C'est un peu difficle à comprendre ...
Voici un schéma d'explication : https://i58.servimg.com/u/f58/18/63/85/87/tuto210.jpg

C'est pour cela que je ne comprends pas pourquoi tu veux faire une condition de redirection, sur mes sites webs j'utilise tout sur la même page.
Exemple pour le fonctionnement sur une seule et unique page :

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8"/> // quasiment obligatoire
		<title>Le titre de ton site</title>
	</head>
	<body>
	<header>
		<h1>Sport.com</h1>
		<h2>Espace membres</h2>
	</header>
		<section>
			<?php
			if (!isset($_POST['mdp'])) // Si il n'y a aucune données reçut (normale quand l'utilisateur arrive que la page, il n'a pas pu envoyer de données donc il faut afficher le formulaire) :
			{
			?>
				<p>Veuillez entrer votre mot de passe</p>
				<form method="post" action="espace-membres.php">
					<p><label for="1">Votre nom : </label><input type="text" id="1" name="pseudo"/>
					<label for="2">Votre mot de passe : </label><input type="password" id="2" name="mdp"/>
				</form>
			<?php
			}
			elseif ($_POST['mdp'] != "mdp1" OR $_POST['mdp'] != "mdp2") // Si les données envoyées ne correspondent aux mots de passes 1, 2, 3, etc ... alors dire que le mot de passe est incorrect et réafficher le formulaire :
			{
			?>
				<p>Mot de passe incorrect, veuillez réessayer :</p>
				<form method="post" action="espace-membres.php">
					<p><label for="1">Votre nom : </label><input type="text" id="1" name="pseudo"/>
					<label for="2">Votre mot de passe : </label><input type="password" id="2" name="mdp"/>
				</form>
			<?php
			}
			else // Sinon donc si il y a bien des données et que les mots de passes correspondent bien afficher la page membre
				<p>Connexion réussi !</p>
				// Contenu de la page membre
			}
			?>
		</section>
	</body>
</html>


C'est beaucoup plus simple que faire des redirections ... Après je ne t'y obliges pas.
0
Hello !

1) Je comprends une partie de tout ça. Maintenant, dis moi si je me trompe, mais en lisant ce code, j'ai l'impression que lorsque le membre indique son pseudo et mdp, il va tomber sur une page membre mais qui sera la même pour tous les membres. Or je crée une page spéciale par membre.
Comment indiquer que le mdp1 sera lié à la page membre 1, le mdp2 à la page membre 2 etc...

2) De plus, ton code ne m'ajoute pas de bouton pour valider est-ce normal?

3) Enfin est-ce que dans ton cas, le bon pseudo est obligatoire pour ouvrir la page membre ou juste le mdp?

Merci de ton aide.
0
[TiDi] Messages postés 126 Date d'inscription samedi 19 octobre 2013 Statut Membre Dernière intervention 17 juillet 2016 262
30 janv. 2014 à 21:26
0
[TiDi] Messages postés 126 Date d'inscription samedi 19 octobre 2013 Statut Membre Dernière intervention 17 juillet 2016 262
Modifié par [TiDi] le 30/01/2014 à 21:31
Pour faire une page par membre. Il est vrai qu'on peut faire une page HTML par membre avec des redirections. Mais le mieux : imaginons une page avec un gros nombre de condition :
- En premier, si il n'existe pas de mot de passe ni de pseudo alors afficher le formulaire de connexion.
- En second, si les données ont bien été envoyés et que le mot de passe ou le pseudo est incorrect alors dire que ce qui est incorrect (mot de passe ou pseudo)
- En troisième, si le mot de passe et le pseudo est bon alors passé à d'autres conditions :
o Si le pseudo et le mot de passe correspond au membre 1 alors afficher la page du membre 1
o Si le pseudo et le mot de passe correspond au membre 2 alors afficher la page du membre 2
o Etc...

Ce qui donnerai :
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8"/> // quasiment obligatoire
  <title>Le titre de ton site</title>
 </head>
 <body>
 <header>
  <h1>Sport.com</h1>
  <h2>Espace membres</h2>
 </header>
  <section>
   <?php
   if (!isset($_POST['mdp']) OR !isset($_POST['pseudo']) // Si il n'y a aucune données reçut (normal quand l'utilisateur arrive que la page, il n'a pas pu envoyer de données donc il faut afficher le formulaire) :
   {
   ?>
    <p>Veuillez entrer votre mot de passe</p>
    <form method="post" action="espace-membres.php">
     <p><label for="1">Votre nom : </label><input type="text" id="1" name="pseudo"/>
     <label for="2">Votre mot de passe : </label><input type="password" id="2" name="mdp"/>
    </form>
   <?php
   }
   elseif ($_POST['pseudo'] != "pseudo1" OR $_POST['pseudo'] != "pseudo2") // Si les données envoyées ne correspondent aux pseudos 1, 2, 3, etc ... alors dire que le pseudo est incorrect et réafficher le formulaire :
   {
   ?>
    <p>Le nom d'utilisateur que vous avez entré est incorrect, veuillez réessayer :</p>
    <form method="post" action="espace-membres.php">
     <p><label for="1">Votre nom : </label><input type="text" id="1" name="pseudo"/>
     <label for="2">Votre mot de passe : </label><input type="password" id="2" name="mdp"/>
     <input type="submit" value="Connexion"/> // J'avais oublié le bouton de connexion
    </form>
   <?php
   }
   elseif ($_POST['mdp'] != "mdp1" OR $_POST['mdp'] != "mdp2") // Si les données envoyées ne correspondent aux mots de passes 1, 2, 3, etc ... alors dire que le mot de passe est incorrect et réafficher le formulaire :
   {
   ?>
    </p>Le mot de passe est incorrect, veuillez réassayer :</p>
    <form method="post" action="espace-membres.php">
     <p><label for="1">Votre nom : </label><input type="text" id="1" name="pseudo"/>
     <label for="2">Votre mot de passe : </label><input type="password" id="2" name="mdp"/>
     <input type="submit" value="Connexion"/> // J'avais oublié le bouton de connexion
    </form>
   <?php
   elseif ($_POST['mdp'] != "mdp1" OR $_POST['mdp'] != "mdp2" OR $_POST['pseudo'] != "pseudo1" OR $_POST['pseudo'] != "pseudo2") // Si les données envoyés ne correspondent ni au mot de passe de chacun des membres et ni aux pseudos ... alors dire que le mot de passe et le pseudo est incorrect et réafficher le formulaire :
   {
   ?>
    </p>Le mot de passe et le nom d'utilisateur que vous avez entré est incorrect, veuillez réassayer :</p>
    <form method="post" action="espace-membres.php">
     <p><label for="1">Votre nom : </label><input type="text" id="1" name="pseudo"/>
     <label for="2">Votre mot de passe : </label><input type="password" id="2" name="mdp"/>
     <input type="submit" value="Connexion"/> // J'avais oublié le bouton de connexion
    </form>
   <?php
   }
   else // Sinon donc si il y a bien des données, que le pseudo correspond et le mot de passe aussi alors ... Bah c'est repartit pour des if et else :
   {
    if ($_POST['mdp'] == "mdp1" AND $_POST['pseudo'] == "pseudo1")
    {
    ?>
     // Afficher la page du membre 1 !
    <?php
    }
    elseif ($_POST['mdp'] == "mdp2" AND $_POST['pseudo'] == "pseudo2")
    {
    ?>
     // Afficher la page du membre 2 !
    <?php
    }
   }
   ?>
  </section>
 </body>
</html>


Pour les plus grosses structures, faut passer aux bases de données et MySQL.
Là ça va si tu as 10 membres grands maximum, si tu veux directement passer aux bases de données, tu me le dis.


TiDi
0
[TiDi] Messages postés 126 Date d'inscription samedi 19 octobre 2013 Statut Membre Dernière intervention 17 juillet 2016 262
30 janv. 2014 à 21:33
Mais tu sais, je peux devenir ton webmaster gratuitement si tu veux, si tu manques de temps ou autre chose ... Moi je suis collégien, le temps, j'en manque pas ;).
0
Avec ton code, j'ai 4 fois les champs de formulaire. et quoi que je mette dedans, en cliquant sur connexion ça m'envoie sur une page avec ceci:

405 - HTTP verb used to access this page is not allowed.

The page you are looking for cannot be displayed because an invalid method (HTTP verb) was used to attempt access.
0
[TiDi] Messages postés 126 Date d'inscription samedi 19 octobre 2013 Statut Membre Dernière intervention 17 juillet 2016 262
Modifié par [TiDi] le 31/01/2014 à 19:19
Ah je sais pourquoi, il faut utiliser WampServer. Enfait, si tu veux, le navigateur ne peut pas faire marcher le PHP. C'est un serveur qui doit le faire. Alors il faut que tu installes WampServer, c'est un logiciel, mini-serveur qui va exécuter le PHP. Alors t'es sur Windows, Linux ou Mac ?

Pour Windows :
ici > http://fr.openclassrooms.com/informatique/cours/concevez-votre-site-web-avec-php-et-mysql/sous-windows-wamp

Pour Linux :
ici > http://fr.openclassrooms.com/informatique/cours/concevez-votre-site-web-avec-php-et-mysql/sous-linux-xampp

Pour Mac OS X :
ici > http://fr.openclassrooms.com/informatique/cours/concevez-votre-site-web-avec-php-et-mysql/sous-mac-os-x-mamp
C'est Mamp mais c'est globalement la même chose.

Il faut que tu enregistres ta page avec l'extension .php et non .html
0
Ca ne change rien... toujours la page 405 après validation.
0
J'ai réussi ! Mais avec un autre code:


<?php

if (isset($_POST['submit']))
{
$_SESSION['v_log'] = $_POST["login"];
$_SESSION['v_psw'] = $_POST["motpasse"];
$_SESSION['v_acces'] = '';

if (empty($_SESSION['v_log']) && empty($_SESSION['v_psw']))
{
echo '<div align="center"><font color="red" size="3"><b>Vous devez entrer un login et un mot de passe pour accéder à l\'espace membre !</b></font></div><br>';
}
elseif (empty($_SESSION['v_log']) && strlen($_SESSION['v_psw']) >1)
{
echo '<div align="center"><font color="red" size="3"><b>Vous devez entrer un nom d\'utilisateur pour accéder à l\'espace membre !</b></font></div><br>';
}
elseif (strlen($_SESSION['v_log']) >1 && empty($_SESSION['v_psw']))
{
echo '<div align="center"><font color="red" size="3"><b>Vous devez entrer un mot de passe pour accéder à l\'espace membre !</b></font></div><br>';
}
else
{

// DEBUT GESTION DES MEMBRES

// Login du premier membre anthony
if (md5($_SESSION['v_log']) === 'pseudo1' && md5($_SESSION['v_psw']) === 'mdp1')
{
// Accès OK
$_SESSION['v_acces'] = 'acces_ok';
}

// Login du deuxième membre isabelle
elseif (md5($_SESSION['v_log']) === 'pseudo2' && md5($_SESSION['v_psw']) === 'mdp2')
{
// Accès OK
$_SESSION['v_acces'] = 'acces_ok2';
}

// Login du troisème membre charlene
elseif (md5($_SESSION['v_log']) === 'pseudo3' && md5($_SESSION['v_psw']) === 'mdp3')
{
// Accès OK
$_SESSION['v_acces'] = 'acces_ok3';
}

// FIN GESTION DES MEMBRES

else
{
echo '<div align="center"><font color="red" size="3"><b>Le nom d\'utilisateur ou le mot de passe est mauvais !</b></font></div><br>';
}
}
}

if ($_SESSION['v_acces'] === 'acces_ok')
{
echo '<a href="http://monsite.com/Anthony.php"><b><font color="green" size="3"> Cliquez ICI pour accéder </font></b></a><br>';
}
if ($_SESSION['v_acces'] === 'acces_ok2')
{
echo '<a href="http://monsite.com/Isabelle.php"><b><font color="green" size="3"> Cliquez ICI pour accéder </font></b></a><br>';
}
if ($_SESSION['v_acces'] === 'acces_ok3')
{
echo '<a href="http://monsite.com/charlene.php"><b><font color="green" size="3"> Cliquez ICI pour accéder </font></b></a><br>';
}




echo '<form method="post" action="">';
echo '<strong><font color="blue">Login </font><br></strong></font><input type=text name="login" size="15" value="" /><br>';
echo '<strong><font color="blue">Mot de passe </font><br></strong></font><input type=password name="motpasse" size="15" value="" /><br>';
echo '<input type="submit" name="submit" value="Valider">';
echo '</form>';
?>


Et dans chaque page membre j'ai ça:

session_start();
if ($_SESSION['v_acces']==='acces_ok')
{
// Affichage de cette page SI le membre est identifié
}
else
{
// Redirection sur la page login si le membre n'est pas identifié
header('Location: http://monsite.com/pagelogin.htm');
exit;
0
[TiDi] Messages postés 126 Date d'inscription samedi 19 octobre 2013 Statut Membre Dernière intervention 17 juillet 2016 262
5 févr. 2014 à 19:15
Ok :) Ben c'est pas moi qui aura résolu ton problème ...
0
Salut,
Vous oubliez tout deux quelque chose d'essentiel:

Si vous voulez des mots de passe et identfiant sécurisé il faut utiliser une base de données pour les stocker.
Le reste c'est du bricolage dont la sécurité est aussi solide qu'une serrure en sucre glace.. je veut dire inexistante.

Autre raison d'utiliser une base de données : les pages dynamiques, le même code sert à générer une potentielle infinité de page qui changera selon le membre. Il est bien sûr inimaginable de faire une page HTML par membre, si vous avez 1000, 10000 membres cela voudrait dire que vous travailliez 24h/24 à écrire des pages HTML toutes identiques à l'exception des informations propres à chaque utilisateur et que vous n'obtiendrez ainsi qu'une page type alors qu'en dynamique vous avez autant de pages que vous voulez pour autant de membres que vous voulez. Chaque page ayant son propre code mais qui n'et pas à multiplier par le nombre de membres puisque cette information est dynamique c.à.d.: envoyée par la base de donnée dans l'affichage.
0
[TiDi] Messages postés 126 Date d'inscription samedi 19 octobre 2013 Statut Membre Dernière intervention 17 juillet 2016 262
6 févr. 2014 à 20:15
Oui d'ailleurs @bettini si tu veux faire ce que te dis @Rincewind
> http://www.legeekcafe.com/tutoriels-5-creer-son-espace-membre-avec-php-et-mysql.html
0
@TiDi: T'inquiète j'ai réussi à comprendre 2-3 choses grâce à tes explications.
@ Rincewind: je n'aurai qu'une vingtaine de pages membres au maximum. Je peux donc les gérer 1 par 1. Le mot de passe est crypté md5. Et puis si quelqu'un arrive à entrer tout de même sur une de ces pages ce n'est pas très grave, il n'y a pas de données hyper confidentielles.
0
[TiDi] Messages postés 126 Date d'inscription samedi 19 octobre 2013 Statut Membre Dernière intervention 17 juillet 2016 262
8 févr. 2014 à 07:50
20 ça fait beaucoup quand même ... Au début je ne comprenais pas très bien ce que tu voulais, je croyais que tu voulais juste une partie de ton site, réservé à tes membres. Mais si c'est une page par membre. Vaut mieux passer par MySQL. C'est beaucoup plus compliqué. Moi j'utilise du PDO. Si tu veux on commence le tuto toute suite.
0