[Partage] Système d'inscription

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 :
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>
 
D

deleted517474

Merci à toi ! Mais partagera tu aussi les fichiers pour un système de connexion (avec espace membres) ? :)
 

Sagasaga

Premium
Inscription
29 Novembre 2013
Messages
795
Réactions
277
Points
4 211
Merci, ta pas des screen?
Tu veut des screen de ? (C'est Sans CSS, mais ici il y en a)
Voici la page
0a471c3e1388d9a141aaa065fa49168f.png

Voici ce que sa renvoi sur la DB
0c54ac0bf940ba4786c498d64e48146c.png

Le système de connexion et déconnexion est fait je vous poste sa demain !
Merci, ta pas des screen?
De rien ;) !
 
Haut