#2 Créer un espace membre | Connexion, Profil et Déconnexion

Statut
N'est pas ouverte pour d'autres réponses.

WhiiTe'

Administateur
Ancien staff
Inscription
22 Octobre 2011
Messages
14 712
Réactions
8 502
Points
32 425
RGCoins
0
Bonjour :RG:,

On se retrouve pour la deuxième partie de ma série sur "comment créer un espace membre".
Si vous n'avez pas suivi la première partie je vous conseille d'aller le voir, sauf si vous avez déjà le code, en tout cas je reprendrai mon code. (partie 1)

Nous avons rien à faire dans la base de donnée puisque les donnée sont déjà enregistré. (puisqu'on est déjà inscris)

J'utiliserai le logiciel Sublime Text 3 !

https://reality-gaming.fr/attachments/djamel2-png.61408/

Donc nous allons créer deux fichier dans le dossier de notre site, nous les appellerons "connexion.php" et "profil.php".
Ensuite nous allons faire la base de la page, c'est à dire le formulaire etc...

HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>TUTO PHP #2 | WhiiTe'</title>
</head>
<body>
<h2>Connexion</h2>
<br />
<form method="POST">
<input type="text" class="pseudo" name="pseudoconnect" placeholder="Pseudo ..."> <br />
<input type="password" class="motdepasse" name="mdpconnect" placeholder="Mot de passe ..."> <br /><br />
<input type="submit" class="submit" name="submit" value="Se connecter !"> <br />
</form>
<br>
</body>
</html>

Voila, nous avons le champs de texte pour noté le pseudo et le mot de passe.
Nous allons donc passer au PHP pour connecter le membre si les coordonnées sont bonnes.

Nous allons vérifié si le bouton submit a bien été cliqué.

PHP:
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');

if(isset($_POST['submit']))
{

}
?>

Comme toujours nous lions la base de donnée. :oui:
Maintenant nous allons sécurisé un peu et vérifié si l'utilisateur ai bien rentré quelques choses dans le champs de texte.

PHP:
 $pseudoconnect = htmlspecialchars($_POST['pseudoconnect']);
$mdpconnect = sha1($_POST['mdpconnect']);
if(!empty($pseudoconnect) AND !empty($mdpconnect))
{

Mettez bien ce cette partie de code entre les deux "{" -- "}" juste au dessus. ( )
Nous déclarons "$pseudoconnect" et "$mdpconnect", nous les sécurisons également grâce à un htmlspecialchars pour le pseudo, et nous cryptons le mot de passe grâce à la fonction sha1.

Ensuite nous vérifions si l'utilisateur a bien rentré un pseudo et un mot de passe.

Si l'utilisateur a bien rentré un pseudo et un mot de passe, nous passons à la vérification qui permet de connecter le membre si les informations qu'il a rentré existent bien dans la base de donnée !

PHP:
 $requser = $bdd->prepare("SELECT * FROM membres WHERE pseudo = ? AND motdepasse = ?");
$requser->execute(array($pseudoconnect, $mdpconnect));
$userexist = $requser->rowCount();
if($userexist == 1)
{

Nous créons une variables "$requser" qui va aller cherché dans la base de donnée les pseudos et les mots de passes, ensuite nous faisons un array de "$pseudoconnect" et de"$mdpconnect", puis nous faisons un rowCount, cette fonction permet de retourner 1 ou 0 si l'utilisateur existe ou non, donc nous vérifions si le membre existe dans la base de donnée, donc si nous avons 1.

Si nous avons 1, nous allons faire une dernière étape pour redirigé le membre vers son profil.

PHP:
 $userinfo = $requser->fetch();
$_SESSION['id'] = $userinfo['id'];
$_SESSION['pseudo'] = $userinfo['pseudo'];
$_SESSION['mail'] = $userinfo['mail'];

header("Location: profil.php?id=".$_SESSION['id']);
}
else
{
$erreur = "Mauvais pseudo ou mot de passe !";
}
}
else
{
$erreur = "Tous les champs doivent être complétés !";
}

Je ne serai pas vraiment comment vous expliqué ce qui se trouve au-dessus de la redirection, en gros les variables de session (pour l'id, le pseudo et le mail) sont dans une variable qu'on nomme "$userinfo".

Ensuite nous redirigeons le membre vers son profil. (profil.php?id=son id dans la base de donnée)

https://reality-gaming.fr/attachments/djamel2-png.61408/

Maintenant nous allons faire la déconnexion du membre.
C'est vraiment très simple, en 4 lignes de codes c'est réglé.
Créez un fichier qui se nomme "deconnexion.php"

PHP:
<?php
session_start();
$_SESSION = array();
session_destroy();
header("Location: connexion.php");
?>

Nous mettons un session_start, qui permet de gardé les variables de session active, ensuite nous faisons un session_destroy, qui détruit la totalité des variables sur le site (ou localhost ...) puis nous redirigeons le membre vers la page de connexion.

https://reality-gaming.fr/attachments/djamel2-png.61408/

Je vais vous expliqué maintenant comment faire le profil, l'avatar sera pour la prochaine partie.
Nous allons reprendre la base de la page (l'html) que je vous ai mis au dessus.
Mettez le code suivant en haut de votre code, et fermez la conditions tout en bas de la page.

PHP:
if(isset($_GET['id']) AND $_GET['id'] > 0)
{
    $getid = intval($_GET['id']);
    $requser = $bdd->prepare('SELECT * FROM membres WHERE id = ?');
    $requser->execute(array($getid));
    $userinfo = $requser->fetch();

Pour affiché le pseudo, vous devrez mettre $userinfo['pseudo'], ou pour affiché le mail du membre c'est $userinfo['mail'], je vous laisse faire le reste selon vous, car c'est votre site. ;)
Voici ce que j'ai fais sur mon site : :)

https://reality-gaming.fr/attachments/djamel2-png.61408/

Et voila :RG: c'est la fin de cette deuxième partie de ma série, si vous avez des problèmes ou une questions n'hésitez pas à me demander ! :)

Prochain tutoriel = L'édition du profil :oui:

:tchuss:
 
Dernière édition:
D

deleted287255

Bonjour :RG:,

On se retrouve pour la deuxième partie de ma série sur "comment créer un espace membre".
Si vous n'avez pas suivi la première partie je vous conseille d'aller le voir, sauf si vous avez déjà le code, en tout cas je reprendrai mon code. (partie 1)

Nous avons rien à faire dans la base de donnée puisque les donnée sont déjà enregistré. (puisqu'on est déjà inscris)

J'utiliserai le logiciel Sublime Text 3 !


https://reality-gaming.fr/attachments/djamel2-png.61408/

Donc nous allons créer deux fichier dans le dossier de notre site, nous les appellerons "connexion.php" et "profil.php".
Ensuite nous allons faire la base de la page, c'est à dire le formulaire etc...

HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>TUTO PHP #2 | WhiiTe'</title>
</head>
<body>
<h2>Connexion</h2>
<br />
<form method="POST">
<input type="text" class="pseudo" name="pseudoconnect" placeholder="Pseudo ..."> <br />
<input type="password" class="motdepasse" name="mdpconnect" placeholder="Mot de passe ..."> <br /><br />
<input type="submit" class="submit" name="submit" value="Se connecter !"> <br />
</form>
<br>
</body>
</html>

Voila, nous avons le champs de texte pour noté le pseudo et le mot de passe.
Nous allons donc passer au PHP pour connecter le membre si les coordonnées sont bonnes.

Nous allons vérifié si le bouton submit a bien été cliqué.

PHP:
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');

if(isset($_POST['submit']))
{

}
?>

Comme toujours nous lions la base de donnée. :oui:
Maintenant nous allons sécurisé un peu et vérifié si l'utilisateur ai bien rentré quelques choses dans le champs de texte.

PHP:
 $pseudoconnect = htmlspecialchars($_POST['pseudoconnect']);
$mdpconnect = sha1($_POST['mdpconnect']);
if(!empty($pseudoconnect) AND !empty($mdpconnect))
{

Mettez bien ce cette partie de code entre les deux "{" -- "}" juste au dessus. ( )
Nous déclarons "$pseudoconnect" et "$mdpconnect", nous les sécurisons également grâce à un htmlspecialchars pour le pseudo, et nous cryptons le mot de passe grâce à la fonction sha1.

Ensuite nous vérifions si l'utilisateur a bien rentré un pseudo et un mot de passe.

Si l'utilisateur a bien rentré un pseudo et un mot de passe, nous passons à la vérification qui permet de connecter le membre si les informations qu'il a rentré existent bien dans la base de donnée !

PHP:
 $requser = $bdd->prepare("SELECT * FROM membres WHERE pseudo = ? AND motdepasse = ?");
$requser->execute(array($pseudoconnect, $mdpconnect));
$userexist = $requser->rowCount();
if($userexist == 1)
{

Nous créons une variables "$requser" qui va aller cherché dans la base de donnée les pseudos et les mots de passes, ensuite nous faisons un array de "$pseudoconnect" et de"$mdpconnect", puis nous faisons un rowCount, cette fonction permet de retourner 1 ou 0 si l'utilisateur existe ou non, donc nous vérifions si le membre existe dans la base de donnée, donc si nous avons 1.

Si nous avons 1, nous allons faire une dernière étape pour redirigé le membre vers son profil.

PHP:
 $userinfo = $requser->fetch();
$_SESSION['id'] = $userinfo['id'];
$_SESSION['pseudo'] = $userinfo['pseudo'];
$_SESSION['mail'] = $userinfo['mail'];

header("Location: profil.php?id=".$_SESSION['id']);
}
else
{
$erreur = "Mauvais pseudo ou mot de passe !";
}
}
else
{
$erreur = "Tous les champs doivent être complétés !";
}

Je ne serai pas vraiment comment vous expliqué ce qui se trouve au-dessus de la redirection, en gros les variables de session (pour l'id, le pseudo et le mail) sont dans une variable qu'on nomme "$userinfo".

Ensuite nous redirigeons le membre vers son profil. (profil.php?id=son id dans la base de donnée)


https://reality-gaming.fr/attachments/djamel2-png.61408/

Maintenant nous allons faire la déconnexion du membre.
C'est vraiment très simple, en 4 lignes de codes c'est réglé.
Créez un fichier qui se nomme "deconnexion.php"

PHP:
<?php
session_start();
$_SESSION = array();
session_destroy();
header("Location: connexion.php");
?>

Nous mettons un session_start, qui permet de gardé les variables de session active, ensuite nous faisons un session_destroy, qui détruit la totalité des variables sur le site (ou localhost ...) puis nous redirigeons le membre vers la page de connexion.


https://reality-gaming.fr/attachments/djamel2-png.61408/

Je vais vous expliqué maintenant comment faire le profil, l'avatar sera pour la prochaine partie.
Nous allons reprendre la base de la page (l'html) que je vous ai mis au dessus.

Pour affiché le pseudo, vous devrez mettre $userinfo['pseudo'], ou pour affiché le mail du membre c'est $userinfo['mail'], je vous laisse faire le reste selon vous, car c'est votre site. ;)
Voici ce que j'ai fais sur mon site : :)


https://reality-gaming.fr/attachments/djamel2-png.61408/

Et voila :RG: c'est la fin de cette deuxième partie de ma série, si vous avez des problèmes ou une questions n'hésitez pas à me demandé ! :)

Prochain tutoriel = L'édition du profil :oui:

:tchuss:
Good tuto :d: Par contre des images marche pas ;)
 

Aigeane

Black Excellence
Ancien staff
Inscription
25 Novembre 2012
Messages
17 465
Réactions
10 058
Points
35 940
RGCoins
0
Merci du tuto Max :d:
 

SoCoolMen

Espion
Premium
Inscription
15 Novembre 2011
Messages
3 012
Réactions
1 064
Points
22 509
RGCoins
0
Une flemme de lire mais ça a l'air cool :D
 

Sagasaga

Premium
Inscription
29 Novembre 2013
Messages
795
Réactions
277
Points
4 211
RGCoins
0
Super Merci !
 

Rivals

Ancien staff
Inscription
27 Août 2016
Messages
1 706
Réactions
897
Points
13 104
RGCoins
0
Good :membre:
 

Woozy.

Premium
Inscription
11 Novembre 2014
Messages
2 520
Réactions
175
Points
14 249
RGCoins
0
Merci Max
*-*
 

Neziics'

Membre
Inscription
28 Mai 2014
Messages
1 513
Réactions
347
Points
1 466
RGCoins
0
Sa me rapelle PrimFX tiens ....
 

WhiiTe'

Administateur
Ancien staff
Inscription
22 Octobre 2011
Messages
14 712
Réactions
8 502
Points
32 425
RGCoins
0
Sa me rapelle PrimFX tiens ....

J'ai suivi ses tutoriels pour mes début en PHP donc les variables sont les mêmes :)
 

WhiiTe'

Administateur
Ancien staff
Inscription
22 Octobre 2011
Messages
14 712
Réactions
8 502
Points
32 425
RGCoins
0
C'est exacetment le même code source

Je viens de te dire que j'ai suivi ses tutoriels, maintenant je serai le refaire sans tutoriel et sa te fais quoi au pire ?
 

Neziics'

Membre
Inscription
28 Mai 2014
Messages
1 513
Réactions
347
Points
1 466
RGCoins
0
Je viens de te dire que j'ai suivi ses tutoriels, maintenant je serai le refaire sans tutoriel et sa te fais quoi au pire ?
Y'a aucun souci, c'est jsute que t'as pas la source ;)
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut