Sagasaga
Premium
- Inscription
- 29 Novembre 2013
- Messages
- 795
- Réactions
- 277
- Points
- 4 211
Bonjour,
Je vous présente un petit formulaire d'inscription, très simple à comprend, qui permet de s'inscrire sur votre site en le sécurisant et sucrisant l'utilisateur qui s'inscrit.
Le mot de passe est crypté, pour garantir une sucirté à l'utilisateur. Avant de l'utiliser il faudra modifier 2 petit morceau qui sont :
-Les informations de connection à la DB
-Les informations qu'ont INSERT dans la DB (Dans le ficher singup.php).
Voilà utiliser le code comme bon vous semble !
Le code est retrouvable aussi sur GitHub
Voici le code :
db.php :
singup.php
Je vous présente un petit formulaire d'inscription, très simple à comprend, qui permet de s'inscrire sur votre site en le sécurisant et sucrisant l'utilisateur qui s'inscrit.
Le mot de passe est crypté, pour garantir une sucirté à l'utilisateur. Avant de l'utiliser il faudra modifier 2 petit morceau qui sont :
-Les informations de connection à la DB
-Les informations qu'ont INSERT dans la DB (Dans le ficher singup.php).
Voilà utiliser le code comme bon vous semble !
Le code est retrouvable aussi sur GitHub
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
Voici le code :
db.php :
PHP:
<?php
$pdo= new PDO('mysql:dbname=NAME;host=localhost', 'PSEUDO', 'PASSWORD');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
singup.php
PHP:
<?php
require_once 'db.php';
/**
* On vérifie que les champs obligatoires soient remplie
*/
if(!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password_confirm'])){
/**
* Sécurisation
*/
//On sécurise contre les failles
$pseudo = htmlspecialchars($_POST['pseudo']);
$email = htmlspecialchars($_POST['email']);
$password = htmlspecialchars($_POST['password']);
$password_confirm = htmlspecialchars($_POST['password_confirm']);
/**
* Vérification avec la DB
*/
//On selection l'utilisateur qui est égale au pseudo/email entré
$req = $pdo->query("SELECT pseudo,email FROM user WHERE (pseudo = '$pseudo' OR email = '$email')");
$exist = $req->fetchAll();
if(!empty($exist)){
$errors['exist'] = "Le pseudo ou l'email est déjà pris.";
}
/**
* Vérification Des Champs
*/
//On vérifie que le pseudo sois correcte
if(!preg_match('`^([a-zA-Z0-9-_]{4,36})$`', $pseudo)){
$errors['pseudo_carac'] = "Le pseudo ne correspond pas (Alphanumérique).";
if(strlen($pseudo) <= 4){
$errors['pseudo_court'] = "Le pseudo doit faire plus de 4 caractères.";
}
}
//On vérifie que l'email sois correcte
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors['email'] = "L'email ne correspond pas";
}
//On vérifie que les password sois correcte et identique
if($password == $password_confirm){
if(!preg_match('`^([a-zA-Z0-9-_]{4,36})$`', $password)){
$errors['password'] = "Le mot de passe ne correspond pas (Alphanumérique).";
if(strlen($password) <= 6){
$errors['password_court'] = "Le mot de passe doit faire plus de 6 caractères.";
}
}
}else{
$errors['password_noCorrespond'] = "Les mots de passe ne corresponde pas";
}
/**
* Enregistrement
*/
if(empty($errors)){
//On crypte $password
$password = password_hash($password, PASSWORD_BCRYPT);
//On insert l'utilisateur
$pdo->prepare("INSERT INTO table SET pseudo = ?, password = ?, email = ?, rang = 'member'")->execute([$pseudo, $password, $email]);
header('Location:PAGE.php');
exit();
}
}
?>
<div class="container">
<div style="col-lg-5">
<?php if(!empty($errors)): ?>
<div style="padding:20px; background-color:#f25444; color:#ebebeb; border-radius:2px; margin:10px 0;">
<h3 style="margin:0;">Un problème est survenu :</h3>
<ul>
<?php foreach ($errors as $error):?>
<li><?= $error; ?></li>
<?php endforeach;?>
</ul>
</div>
<?php endif; ?>
<form class="" method="post">
<div class="form-group">
<label for="">Login</label>
<input type="text" name="pseudo" placeholder="Pseudo" required>
</div>
<div class="form-group">
<label for="">Email</label>
<input type="email" name="email" placeholder="Email" required>
</div>
<div class="form-group">
<label for="">Mot de passe</label>
<input type="password" name="password" placeholder="Mot de passe" required>
</div>
<div class="form-group">
<label for="">Confirmez votre mot de passe</label>
<input type="password" name="password_confirm" placeholder="Mot de passe" required>
</div>
<div class="form-group">
<input type="submit" value="Inscription">
</div>
</form>
</div>
</div>