Version en ligne

Tutoriel : Système d'inscription avec validation par l'administrateur

Table des matières

Système d'inscription avec validation par l'administrateur
Créer le formulaire d'inscription
Traiter les données du formulaire d'inscription
La page de validation des nouveaux inscrits
Script pour la connexion
Script pour la vérification de connexion

Système d'inscription avec validation par l'administrateur

Créer le formulaire d'inscription

Quelquefois, nous voulons faire un site privé pour quelque raison que ce soit. Grâce au script que je vous montrerai, il est possible de demander une inscription qui devra ensuite être activée par le webmaster. Ainsi, même après une inscription, l'internaute ne peut toujours pas se connecter au site…

Un système semblable est d'ailleurs utilisé sur plusieurs forums phpBB2 (si vous demandez l'activation par l'administrateur ;) ). Cependant, le codage est peut-être différent, car je ne l'ai pas regardé. :-°

Alors voilà, c'est parti ! :)

Créer le formulaire d'inscription

Traiter les données du formulaire d'inscription

La première étape, c'est bien entendu de créer un formulaire d'inscription. Sinon, comment l'internaute fera pour demander l'activation de son compte ? ;)

Quels sont les prérequis pour faire ce formulaire ?

Je ne pense pas avoir besoin de vous expliquer que CRÉER le formulaire n'est pas très compliqué… Vous n'avez besoin que de l'HTML (à la base, car il est possible de faire un bouton afin de s'assurer de l'action en JavaScript, etc. ^^ ).

Si vous ne savez pas comment faire du HTML, allez voir le tutoriel de M@teo21. Vous aurez certaines choses beaucoup plus compliquées à faire plus tard… :-°

Quels sont les champs que nous devrions mettre dans notre formulaire ?

Bien entendu, je ne peux pas vous indiquer exactement quels champs demander à l'internaute lors de l'inscription, tout dépend de vous. Donc, je vais vous montrer un exemple à partir des formulaires d'inscription que je crée habituellement, mais si vous comprenez bien le principe, vous pourrez FACILEMENT faire des modifications. Si vous ne comprenez pas le principe, vous devrez tout faire comme moi ! :p

Pour ce tutoriel, on va faire un formulaire avec une demande de pseudo, de mot de passe (ainsi que la confirmation pour voir si c'est le bon ;) ), l'adresse e-mail et un beau petit bouton M'inscrire.

Je manque souvent d'imagination… Je vais donc prendre le nom inscription.php pour la page d'inscription.

<form method="post">
</form>

Ce petit bout de code représente uniquement l'ouverture du formulaire. Cela indique que le contenu entre les balises désignera un formulaire.

Passons maintenant à la création des différents champs. Je vous montre le code, et je vous explique une certaine partie par la suite.

<form method="post">
<label>Pseudo: <input type="text" name="pseudo"/></label><br/>
<label>Mot de passe: <input type="password" name="passe"/></label><br/>
<label>Confirmation du mot de passe: <input type="password" name="passe2"/></label><br/>
<label>Adresse e-mail: <input type="text" name="email"/></label><br/>
<input type="submit" value="M'inscrire"/>
</form>

Voilà, c'est à cela que ressemble notre formulaire. Bien entendu, cela a l'air compliqué comme ça, mais c'est un formulaire simple à déchiffrer… :-°

Commençons par les label qui entourent chaque champ du formulaire. Si vous ne vous en souvenez pas (j'étais pareil au début :-° ), cela sert à relier le mot écrit avant la case du formulaire. Ainsi, en cliquant sur Pseudo, vous verrez automatiquement apparaître votre curseur dans le champ pseudo.

Ensuite, j'ai mis des <br /> afin que chaque champ soit en dessous de l'autre, ça donne, d'après moi, un formulaire plus propre. ;)

Vous avez pu remarquer que j'ai mis le type text dans chacun des input. Par contre, pour le mot de passe, j'ai mis password. Grâce à ça, l'internaute ne verra pas le texte, mais seulement des étoiles (*).

Maintenant, vous savez comment créer le formulaire d'inscription. Nous allons donc passer à quelque chose de plus intéressant dans quelques secondes (à moins que vous arrêtiez de lire o_O ).


Traiter les données du formulaire d'inscription

Traiter les données du formulaire d'inscription

Créer le formulaire d'inscription La page de validation des nouveaux inscrits

Maintenant, vous avez fait un formulaire pour l'inscription. Par contre, comme vous le savez sûrement, il ne sert à rien pour l'instant…

Quoi ??? Tu nous as fait une sous-partie complète qui ne sert absolument à rien ???

En fait, cela servira une fois cette partie lue… Pour l'instant, l'internaute remplit le formulaire, mais rien ne se passe par la suite. Là, on enregistrera les données dans la base de données.

Premièrement, il faut que vous sachiez que les codes PHP que je vous montrerai ici doivent se trouver sur la même page. L'absence de action signifie prendre la même page quand on valide (un développeur est toujours paresseux ^^ ).

Que faut-il savoir pour cette section ?

Bien entendu, je vous suggère fortement d'avoir de bonnes bases en PHP. Une connaissance des deux premières parties serait, d'après moi, suffisante.

Passons maintenant au codage ! :D

Deuxièmement, si vous ne voulez pas avoir une erreur en plein devant vous en arrivant sur la page, il faut vérifier si le formulaire a été rempli. Pour ce faire, j'espère que vous le savez ^^ , on va utiliser une condition. Voici le code à écrire :

<?php
if(!empty($_POST['pseudo']))
{
// …
// Votre code
// …
}
?>

Avec ce bout de code, je vérifie si l'information sur le champ pseudo a été envoyée et qu'elle est non nulle. J'aurais pu mettre n'importe quel champ, mais un seul suffit. J'aurais aussi pu tous les mettre avec un AND entre chaque, mais le script devient plus long (et moins compréhensible ;) ). Le reste du code de cette partie se place entre les accolades.

Maintenant, nous allons enregistrer les données reçues du formulaire dans notre base de données.

Oui, mais je n'ai pas de table prête pour ça. Où vais-je enregistrer mes données ?

J'y arrivais justement. Lors de mon tutoriel, on va devoir créer deux tables dans la base de données. Nous sommes arrivés à la première.

Je vous conseille d'appeler cette table validation. Un mauvais nom à donner serait connexion, car ce n'est pas cette table qui servira à se connecter... Elle vous servira, comme son nom l'indique, à valider le nouvel utilisateur.

Dans notre cas, voici les informations sur les champs de la table validation :

1. id de type INT avec auto_increment et index. Pas besoin d'explications, vous avez dû voir plusieurs explications dans le cadre du cours de M@teo21 ;
2. pseudo de type VARCHAR ;
3. passe de type VARCHAR ;
4. email de type VARCHAR.

Afin de créer votre table, je vous offre le code SQL :

CREATE TABLE `validation` (
`id` INT( 255 ) NOT NULL AUTO_INCREMENT ,
`pseudo` VARCHAR( 255 ) NOT NULL ,
`passe` VARCHAR( 255 ) NOT NULL ,
`email` VARCHAR( 255 ) NOT NULL ,
INDEX ( `id` )
);

Comme vous pouvez le remarquer, j'ai mis un attribut pour chaque champ du formulaire que nous avons créer.

Maintenant que votre table est prête, nous allons passer au codage de la page.

Pour commencer, on va vérifier si les deux mots de passe entrés sont les mêmes. S'ils sont pareils, on va enregistrer les informations dans la base de données. Sinon, on va écrire un message qui indique une erreur. Voici le code à écrire :

<?php
// D'abord, je me connecte à la base de données.
mysql_connect("localhost", "root", "");
mysql_select_db("nom_db");

// Je mets aussi certaines sécurités ici…
$passe = mysql_real_escape_string(htmlspecialchars($_POST['passe']));
$passe2 = mysql_real_escape_string(htmlspecialchars($_POST['passe2']));
if($passe == $passe2)
{
// Ne vous inquiétez pas, le script arrive…
}
 
else
{
echo 'Les deux mots de passe que vous avez rentrés ne correspondent pas…';
}
?>
<?php
if(!empty($_POST['pseudo']))
{
// D'abord, je me connecte à la base de données.
mysql_connect("localhost", "root", "");
mysql_select_db("nom_db");


// Je mets aussi certaines sécurités ici…
$passe = mysql_real_escape_string(htmlspecialchars($_POST['passe']));
$passe2 = mysql_real_escape_string(htmlspecialchars($_POST['passe2']));

if($passe == $passe2)
{
 
}
else
{
echo 'Les deux mots de passe que vous avez rentrés ne correspondent pas…';
}
}
?>

Comme vous avez pu le remarquer, nous nous sommes connectés à la base de données. Les informations que j'ai inscrites sont faites pour EasyPHP ou Wamp, mais vous pouvez très bien les changer par vous-mêmes.

Bon, continuons. Ne lâchez pas, il en reste pas gros à cette partie du tutoriel. :D Tout ce qui reste à faire, c'est enregistrer les informations reçues par le formulaire de la partie 1 dans notre base de données.

<?php
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$email = mysql_real_escape_string(htmlspecialchars($_POST['email']));

// Je vais crypter le mot de passe.
$passe = sha1($passe);
?>

Je mets une variable normale (et non pas super globale), car je me retrouve toujours avec des erreurs incompréhensibles dans le cas contraire. C'est pour le bien-être de tous. J'ai aussi crypté le mot de passe grâce à la fonction sha1. Bien entendu, il est possible de le faire avec d'autres fonctions, mais il s'agit de celle que j'aime utiliser. En effet, un bon webmaster devrait toujours crypter ses mots de passe. ;)

Maintenant, nous allons faire la requête SQL afin d'insérer les informations. N'oubliez pas non plus que nous avons un champ id en auto_increment. Donc, il ne faut mettre aucune donnée au début pour le champ id (on met seulement '').

<?php
mysql_query("INSERT INTO validation VALUES('', '$pseudo', '$passe', '$email')");
?>

Voilà, les informations sont maintenant enregistrées. Cette sous-partie tire à sa fin… Je vais donc vous donner, comme promis, le code complet vu lors de la sous-partie 2 (je ne mettrai pas celui de la sous-partie 1).

<?php
if(!empty($_POST['pseudo']))
{
// D'abord, je me connecte à la base de données.
mysql_connect("localhost", "root", "");
mysql_select_db("nom_db");

// Je mets aussi certaines sécurités ici…
$passe = mysql_real_escape_string(htmlspecialchars($_POST['passe']));
$passe2 = mysql_real_escape_string(htmlspecialchars($_POST['passe2']));
if($passe == $passe2)
{
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$email = mysql_real_escape_string(htmlspecialchars($_POST['email']));
// Je vais crypter le mot de passe.
$passe = sha1($passe);

mysql_query("INSERT INTO validation VALUES('', '$pseudo', '$passe', '$email')");
}
 
else
{
echo 'Les deux mots de passe que vous avez rentrés ne correspondent pas…';
}
}
?>

J'ai une bonne nouvelle pour vous… On en a enfin fini avec la page inscription.php ! Là, on va rapidement entrer dans le vif du sujet pour la validation (en d'autres mots, on en arrive enfin au but du tutoriel :) ).


Créer le formulaire d'inscription La page de validation des nouveaux inscrits

La page de validation des nouveaux inscrits

Traiter les données du formulaire d'inscription Script pour la connexion

Pour résumer ce qui a été fait jusqu'à présent, l'internaute s'est inscrit. Ensuite, si vous êtes sur ce tutoriel, c'est que vous voulez avoir à valider le membre avant qu'il puisse se connecter. C'est ici où vous apprendrez à faire la page de validation.

Comment allons-nous former cette page ?

Lorsque nous programmons, il est toujours important d'avoir le modèle et le fonctionnement de la page en tête. Je vais donc maintenant vous faire une petite description du fonctionnement de la page que je vous montrerai. Si vous êtes forts en programmation, vous pourrez faire comme je fais toujours. Vous lisez et vous vous inspirez de mon tutoriel, et après vous faites des modifications pour qu'il soit vraiment à votre goût.

La page fonctionnera très simplement. Nous afficherons un membre par ligne. Sur chaque ligne, il y aura son pseudo, son mot de passe et son adresse e-mail (libre à vous de changer les informations que l'on voit) et il y aura des textes-liens (nouveau mot :lol: ) : Accepter et Refuser. Est-ce que j'ai besoin de vous expliquer ce qui se passe lorsque nous cliquons sur l'un des textes-liens ?

Quelles sont les propriétés de la page de validation ?

Premièrement, le nom de la page devra s'appeler, d'après l'exemple de mon tutoriel, validation.php. Aussi, cette page devra être protégée par un .htaccess et un .htpasswd. À moins que vous ne vouliez que n'importe qui puisse valider les membres ? :-° Pour savoir comment créer ces deux types de fichiers, voici le lien vers le cours sur les htaccess de M@teo21.

Il est enfin l'heure de commencer le codage de notre page de validation ! :p

D'abord, on va aller chercher les informations de chaque nouveau membre auquel vous n'avez pas encore rendu de verdict (accepté ou refusé).

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("nom_db");
$quete = mysql_query("SELECT * FROM validation");
?>

Encore une fois, cela n'est pas trop compliqué. On commence d'abord par se connecter à notre base de données. Ensuite, je vais chercher toutes les entrées dans la table créée un peu plus tôt lors de mon tutoriel : validation. Vous devriez aller voir le cours PHP de M@teo21 si vous ne comprenez pas le code que je viens de vous donner. Comme je l'ai dit en début de cours, la connaissance de MySQL est requise pour bien comprendre mon tutoriel.

Maintenant, on va afficher chaque membre en attente de verdict. Pour l'instant, je ne mettrai pas les liens Accepter et Refuser, car c'est un peu plus complexe. Je préfère donc les mettre séparément pour bien les expliquer. Je mettrai tout de même un commentaire pour que vous sachiez où placer les liens que nous verrons très bientôt.

<?php
while($validation = mysql_fetch_array($quete))
{
echo 'Pseudo: ';
echo $validation['pseudo'];
echo ' E-mail: ';
echo $validation['email'];
// Les liens « Accepter » et « Refuser » se placent ici.
echo '<br/>';
}
?>

Je sais, ce script semble bizarre à première vue. :-° Par contre, sachez que l'affichage est bon lorsque tout est placé sur la page. Premièrement, sachez que bien que j'aie fait des entrées dans le code PHP, tout est inscrit en une seule ligne lorsque vous naviguez sur le Web. Aussi, les différentes espaces placées servent à ne pas créer la « phrase » (entre guillemets, car elle est mal formée :-° ) en un seul mot.

D'abord, il y a le while suivi de mysql_fetch_array. Cela sert à afficher de la façon inscrite chaque entrée de ma table. Ensuite, je commence à écrire ce que l'on voit réellement sur la page grâce à la fonction echo. Je mets donc Pseudo: suivi du pseudo du membre. C'est la même chose partout. Pour finir, je change de ligne pour que la prochaine entrée sur la page (s'il y en a une) soit affichée sur la ligne suivante.

Maintenant, bien que la tâche puisse sembler compliquée, je vais vous montrer comment mettre les liens Accepter et Refuser. Regardez bien le href, c'est la partie la plus importante dans ce bout de code.

<?php
echo '<a href="validation.php?action=accepter&id='.$validation['id'].'">Accepter</a>'; // Il y a une espace pour séparer les liens.
echo '<a href="validation.php?action=refuser&id='.$validation['id'].'">Refuser</a>';
?>

Là, vous avez le droit de vous poser des questions. C'est justement pour cette raison que j'ai mis du rouge et du bleu. C'est afin de vous aider à comprendre ce que je viens de faire. Commençons par le début. ;) Je commence avec un echo suivi d'une apostrophe. Pour ne pas faire d'erreur, je mets aussi l'apostrophe qui ferme immédiatement ainsi que le point-virgule. Ensuite, entre les apostrophes, je mets la balise HTML de lien. Je commence donc avec un lien comme d'habitude. Je me rends donc sur la page validation.php (la même page). Sautons ensuite les couleurs. Vous pouvez voir, bien que collés, les guillemets. Avant ces guillemets se trouve une apostrophe en bleu. Ces guillemets ferment l'attribut href. Ensuite, j'écris ce qui sera affiché en tant que lien (accepter ou refuser). Je referme ensuite la balise a, qui sert à créer un lien. Veuillez noter l'espace, comme mentionné dans le commentaire. Celle-ci sert à écrire Accepter Refuser plutôt que AccepterRefuser.

On passe maintenant aux couleurs… Soyez prêts, car c'est la partie difficile ! :euh:

Rouge : premièrement, il y a un point d'interrogation qui annonce une variable $_GET. D'abord, j'ai action qui est le nom de la variable. L'action sert simplement à savoir quoi effectuer. Je mets ensuite le signe égal (=) qui met la valeur de la variable. Je ne me suis pas trop creusé la tête, j'ai mis accepter et refuser dépendamment du cas.

Ensuite, vous voyez un signe prononcé et (&). Celui-ci sert à dire qu'il y a une autre variable de type $_GET. Celle-ci est bleue.

Bleu : j'ai d'abord nommé la variable id. C'est l'id de l'utilisateur (enregistré dans la BDD) à qui on va rendre le verdict. Donc, je mets ensuite "'." pour faire une concaténation. Cela sert à rajouter une variable. Encore une fois, il s'agit d'un array, et j'écris donc $validation['id']. Je finis en refermant la concaténation avec le contraire de l'ouverture : ".'".

Maintenant, notre script est prêt à afficher nos choix et les utilisateurs. À présent, il faudra coder afin de faire quelque chose lorsque action (Accepter ou Refuser) est effectuée. La première chose à faire est de vérifier si un choix a été effectué. Ensuite, on vérifie si l'action est d'accepter ou de refuser le membre. Voici comment :

<?php
if(isset($_GET['action']) AND isset($_GET['id']))
{
$action = $_GET['action'];
if($action == "accepter")
{
// C'est ici que l'on mettra l'action à effectuer si le verdict est « accepter ».
}
elseif($action == "refuser")
{
// C'est ici que l'on mettra l'action à effectuer si le verdict est « refuser ».
}
}
?>

Donc, en gros, on commence par regarder si l'URL de la barre de navigation contient les deux variables (ce n'est pas bon s'il n'y en a qu'une). Ensuite, on vérifie si la valeur de la variable action est accepter ou refuser, tout dépend du lien sur lequel vous avez cliqué.

Nous allons maintenant préparer le code si l'action est accepter. Il faudra donc commencer par rajouter les informations du membre dans une table qui sert de connexion, et ensuite les supprimer de la table validation pour ne pas activer le compte d'un même membre deux fois. ;)

Peux-tu au moins nous dire quoi mettre dans notre nouvelle table pour la connexion ?

Cette fois, la réponse sera très courte. Nommez la table connexion ou un nom semblable et mettez-y les mêmes champs que dans la table validation, car les informations seront simplement transférées si le membre est accepté.

D'abord, nous allons enregistrer toutes les informations dans la table connexion grâce au code suivant :

<?php
$id = $_GET['id'];
$quete2 = mysql_query("SELECT * FROM validation WHERE id='$id'");
$connexion = mysql_fetch_array($quete2);
 
$pseudo = $connexion['pseudo'];
$passe = $connexion['passe'];
$email = $connexion['email'];
 
mysql_query("INSERT INTO connexion VALUES('$id', '$pseudo', '$passe', '$email')");
?>

Donc, on commence par se connecter à la base de données. Ensuite, on met dans la variable $id l'information prise dans l'URL, puis on va chercher les informations du membre dont l'id est celui de l'URL. On met ensuite le tout dans des variables normales (sans array), et on finit avec une inclusion des informations dans la table connexion. Veuillez noter que le mot de passe envoyé dans la table connexion est lui aussi crypté grâce à la fonction sha1 de PHP. En effet, nous avons pris la même valeur que dans la table validation, sans le décrypter.

Maintenant, il ne nous reste qu'à supprimer les informations de la table validation.

<?php
mysql_query("DELETE FROM validation WHERE id='$id'");
?>

Passons maintenant au script à écrire si jamais l'action était refuser. Cette action est très simple : nous n'avons qu'à supprimer les informations de la table validation. Voici donc le code à inscrire.

<?php
$id = $_GET['id'];
mysql_query("DELETE FROM validation WHERE id='$id'");
?>

La page validation.php est maintenant terminée. Puisque la sous-partie est longue et que l'assemblage doit être compliqué, je vais vous assembler la page moi-même. En d'autres mots, je vais faire le travail pour vous… :-°

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("nom_db");
$quete = mysql_query("SELECT * FROM validation");
while($validation = mysql_fetch_array($quete))
{
echo 'Pseudo: ';
echo $validation['pseudo'];
echo ' Mot de passe: ';
echo $validation['passe'];
echo ' E-mail: ';
echo $validation['email'];
echo '<a href="validation.php?action=accepter&id='.$validation['id'].'">Accepter</a>';
echo '<a href="validation.php?action=refuser&id='.$validation['id'].'">Refuser</a>';
echo '<br/>';
}
 
if(isset($_GET['action']) AND isset($_GET['id']))
{
$action = $_GET['action'];
if($action == "accepter")
{
$id = $_GET['id'];
$quete2 = mysql_query("SELECT * FROM validation WHERE id='$id'");
$connexion = mysql_fetch_array($quete2);
$pseudo = $connexion['pseudo'];
$passe = $connexion['passe'];
$email = $connexion['email'];
mysql_query("INSERT INTO connexion VALUES('$id', '$pseudo', '$passe', '$email')");
mysql_query("DELETE FROM validation WHERE id='$id'");
}
elseif($action == "refuser")
{
$id = $_GET['id'];
mysql_query("DELETE FROM validation WHERE id='$id'");
}
}
?>

Voilà, cette sous-partie est terminée. On se rejoint dans la prochaine !


Traiter les données du formulaire d'inscription Script pour la connexion

Script pour la connexion

La page de validation des nouveaux inscrits Script pour la vérification de connexion

Premièrement, il vous faut un petit formulaire afin de demander le pseudo et le mot de passe du membre. Je vais vous laisser le créer seuls, car sinon, mon tutoriel sera beaucoup trop long et cela ressemble beaucoup à ma sous-partie parlant de la création du formulaire d'inscription. Supposons maintenant que vous ayez créé ce formulaire et que les noms des champs sont pseudo et passe. J'utiliserai ces noms, mais veillez à les remplacer par les noms que vous avez choisis.

Premièrement, nous devons nous connecter à la base de données.

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("nom_db");
?>

Par la suite, nous allons vérifier si le couple pseudo / mot de passe correspond. Il faudra donc aller chercher les vraies informations dans la base de données. Par contre, pour ne pas afficher une erreur incompréhensible, il faudra vérifier si le pseudo existe bel et bien. Avant de tester les variables, soit lors de la déclaration de celles-ci, je dois mettre la sécurité nécessaire afin de protéger le site.

Voici donc le code PHP à écrire :

<?php
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$passe = mysql_real_escape_string(htmlspecialchars($_POST['passe']));
//Je crypte $passe avec la fonction "sha1"
$passe = sha1($passe);
$nbre = mysql_query("SELECT COUNT(*) AS exist FROM connexion WHERE pseudo='$pseudo'");
$donnees = mysql_fetch_array($nbre);
if($donnees['exist'] != 0) //si le pseudo existe
{
// C'est ici que l'on met le reste du script servant à se connecter.
}
?>

Donc, on calcule le nombre de fois que l'on a le pseudo dans la BDD. Si ce n'est pas égal à 0, on peut tenter de se connecter sans risquer une erreur disant que le pseudo n'est pas dans la BDD. Voici donc le script afin de vérifier si le couple pseudo / mot de passe est bon.

<?php
$quete = mysql_query("SELECT * FROM connexion WHERE pseudo='$pseudo'");
$infos = mysql_fetch_array($quete);
if($passe == $infos['passe'])
{
// C'est ici que je mets le code servant à effectuer la connexion, car le mot de passe est bon.
}
else // Si le couple pseudo / mdp n'est pas bon.
{
echo 'Vous n\'avez pas rentré les bons identifiants';
}
?>

Je vais donc chercher dans la BDD le mot de passe associé au pseudo entré. Si le mot de passe de la BDD et le mot de passe entré s'égalent, je continue la connexion. Sinon, j'affiche un message d'erreur.

Pour la suite du code, je vais vous envoyer vers un autre tutoriel qui m'a d'ailleurs permis d'être capable de faire le script de mon tutoriel. Voici le lien vers le tutoriel afin de finir la connexion.

Je vous montre maintenant le script complet de cette sous-partie, en incluant les commentaires.

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("nom_db");
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$passe = mysql_real_escape_string(htmlspecialchars($_POST['passe']));
// Je crypte $passe avec la fonction "sha1".
$passe = sha1($passe);
$nbre = mysql_query("SELECT COUNT(*) AS exist FROM connexion WHERE pseudo='$pseudo'");
$donnees = mysql_fetch_array($nbre);
if($donnees['exist'] != 0) // Si le pseudo existe.
{
$quete = mysql_query("SELECT * FROM connexion WHERE pseudo='$pseudo'");
$infos = mysql_fetch_array($quete);
if($passe == $infos['passe'])
{
// C'est ici que je mets le code servant à effectuer la connexion, car le mot de passe est bon.
}
else // Si le couple pseudo/ mot de passe n'est pas bon.
{
echo 'Vous n\'avez pas rentré les bons identifiants';
}
}
?>

La page de validation des nouveaux inscrits Script pour la vérification de connexion

Script pour la vérification de connexion

Script pour la connexion

À présent, la grosse partie du tutoriel est terminée. Par contre, bien que vous puissiez faire un formulaire d'inscription et valider un membre, celui-ci n'a toujours pas de restrictions pour entrer sur une certaine page. Je vais donc vous montrer dans cette courte sous-partie comment créer ce script. Je vous conseille en fait de créer une page qui vérifie la connexion et de l'inclure sur chaque page à protéger. Dans mon cas, j'appellerai cette page verification.php.

Je vous mets le code PHP et je vous explique après.

<?php
session_start();
if(!isset($_SESSION['pseudo']))
{
}
?>

D'abord, on commence par ouvrir la session, comme l'explique le tutoriel pour un membre simple dont j'ai donné le lien à la fin de la précédente sous-partie. Ensuite, je prends pour acquis que vous avez créé une session nommée pseudo. Je demande de vérifier si elle n'existe PAS. En effet, cela est plus simple pour la suite que si on regarde si elle existe.

Voici la suite à mettre entre accolades « { » :

<?php
echo 'Vous n\'êtes pas connecté au site. Vous ne pouvez donc pas venir sur cette page.';
exit;
?>

Premièrement, on affiche un message d'erreur, car si on en arrive là, c'est que la personne n'est PAS connectée. Ensuite, je mets la fonction exit, ce qui fait que la page cesse de se faire. Donc, vous n'avez pas besoin de mettre un else.

C'est déjà tout, mais je vais vous montrer la page complète ainsi que ce qu'il faut mettre sur chaque page à protéger pour que tout fonctionne convenablement (vous verrez, c'est TRÈS facile ;) ).

<?php
session_start();
if(!isset($_SESSION['pseudo']))
{
echo 'Vous n\'êtes pas connecté au site. Vous ne pouvez donc pas venir sur cette page.';
exit;
}
?>

Et le code à inscrire sur chaque page :

<?php
include("verification.php");
?>

Vous savez maintenant comment faire la validation d'un membre avant qu'il puisse se connecter. En cas de question ou de problème, vous pouvez me contacter. Par contre, je ne pense pas qu'il devrait y avoir de problème, car j'ai testé tout ce que j'ai écrit et cela a fonctionné.

Je vous souhaite donc bonne chance pour votre futur site !


Script pour la connexion