Besoin d une correction pour la page d inscription
53pierre
Messages postés
32
Date d'inscription
Statut
Membre
Dernière intervention
-
53pierre Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
53pierre Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
bonjour
n'étant pas un spécialiste de php
j'essaye de me débrouiller
que pensez vous de ma page d'inscription
pouvez vous me dire ce que je dois modifier merci
la page de traitement
n'étant pas un spécialiste de php
j'essaye de me débrouiller
que pensez vous de ma page d'inscription
pouvez vous me dire ce que je dois modifier merci
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="NoS1gnal"/> <link href="https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/magnific-popup.min.css" rel="stylesheet" /> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"> <title>Connexion</title> </head> <body> <div class="login-form"> <?php if(isset($_GET['reg_err'])) { $err = htmlspecialchars($_GET['reg_err']); switch($err) { case 'success': ?> <div class="alert alert-success"> <strong>Succès</strong> inscription réussie ! </div> <?php break; case 'password': ?> <div class="alert alert-danger"> <strong>Erreur</strong> mot de passe différent </div> <?php break; case 'email': ?> <div class="alert alert-danger"> <strong>Erreur</strong> email non valide </div> <?php break; case 'email_length': ?> <div class="alert alert-danger"> <strong>Erreur</strong> email trop long </div> <?php break; case 'pseudo_length': ?> <div class="alert alert-danger"> <strong>Erreur</strong> pseudo trop long </div> <?php case 'already': ?> <div class="alert alert-danger"> <strong>Erreur</strong> compte deja existant </div> <?php } } ?> <form action="inscription_traitement.php" method="post"> <h2 class="text-center">Inscription</h2> <div class="form-group"> <input type="text" name="pseudo" class="form-control" placeholder="Pseudo" required="required" autocomplete="off"> </div> <div class="form-group"> <input type="email" name="email" class="form-control" placeholder="Email" required="required" autocomplete="off"> </div> <div class="form-group"> <input type="password" name="password" class="form-control" placeholder="Mot de passe" required="required" autocomplete="off"> </div> <div class="form-group"> <input type="password" name="password_retype" class="form-control" placeholder="Re-tapez le mot de passe" required="required" autocomplete="off"> </div> <div class="form-group"> <button type="submit" class="btn btn-primary btn-block">Inscription</button> </div> </form> </div> <style> .login-form { width: 340px; margin: 50px auto; } .login-form form { margin-bottom: 15px; background: #f7f7f7; box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3); padding: 30px; } .login-form h2 { margin: 0 0 15px; } .form-control, .btn { min-height: 38px; border-radius: 2px; } .btn { font-size: 15px; font-weight: bold; } </style> </body> </html>
la page de traitement
<?php require_once 'config.php'; if(!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password_retype'])) { $pseudo = htmlspecialchars($_POST['pseudo']); $email = htmlspecialchars($_POST['email']); $password = htmlspecialchars($_POST['password']); $password_retype = htmlspecialchars($_POST['password_retype']); $check = $bdd->prepare('SELECT pseudo, email, password FROM utilisateurs WHERE email = ?'); $check->execute(array($email)); $data = $check->fetch(); $row = $check->rowCount(); if($row == 0){ if(strlen($pseudo) <= 100){ if(strlen($email) <= 100){ if(filter_var($email, FILTER_VALIDATE_EMAIL)){ if($password == $password_retype){ $cost = ['cost' => 12]; $password = password_hash($password, PASSWORD_BCRYPT, $cost); $ip = $_SERVER['REMOTE_ADDR']; $insert = $bdd->prepare('INSERT INTO utilisateurs(pseudo, email, password, ip, token) VALUES(:pseudo, :email, :password, :ip, :token)'); $insert->execute(array( 'pseudo' => $pseudo, 'email' => $email, 'password' => $password, 'ip' => $ip, 'token' => bin2hex(openssl_random_pseudo_bytes(24)) )); header('Location:inscription.php?reg_err=success'); die(); }else{ header('Location: inscription.php?reg_err=password'); die();} }else{ header('Location: inscription.php?reg_err=email'); die();} }else{ header('Location: inscription.php?reg_err=email_length'); die();} }else{ header('Location: inscription.php?reg_err=pseudo_length'); die();} }else{ header('Location: inscription.php?reg_err=already'); die();} }
A voir également:
- Besoin d une correction pour la page d inscription
- Supprimer une page word - Guide
- Page d accueil - Guide
- Twitter inscription - Guide
- Imprimer tableau excel sur une page - Guide
- Paypal inscription - Guide
23 réponses
mdrrrrrrrr
et que penses tu de cette vérification
et que penses tu de cette vérification
if(!empty($_SESSION['id']) AND !empty($_SESSION['pseudo']) OR !empty($_COOKIE['passe']) AND !empty($_COOKIE['pseudo']))
ah bon donc pas de cookie pour plus de sécurité
encore merci
pour tout cela
il me reste une dernière chose a demander
il s'agit du mot de passe oublie
je dois ouvrir un nouveau topic
encore merci
pour tout cela
il me reste une dernière chose a demander
il s'agit du mot de passe oublie
je dois ouvrir un nouveau topic
Pour le mot de passe oublié il faut que
1 - tu génère un token que tu stock dans la BDD par exemple au niveau de la table de tes utilisateurs
2 - que tu envoies un mail à l'utilisateur avec un lien contenant ce token
3 - lorsqu'il ouvre ce lien, tu vérifie que le token correspond bien à celui qui est dans la table et si c'est le cas tu as fiche un formulaire lui permettant de modifier son mot de passe.
Ou sinon beaucoup plus simple tu ne cherches pas une page de confirmation et tu envoies de toi-même un nouveau mot de passe générer aléatoirement
1 - tu génère un token que tu stock dans la BDD par exemple au niveau de la table de tes utilisateurs
2 - que tu envoies un mail à l'utilisateur avec un lien contenant ce token
3 - lorsqu'il ouvre ce lien, tu vérifie que le token correspond bien à celui qui est dans la table et si c'est le cas tu as fiche un formulaire lui permettant de modifier son mot de passe.
Ou sinon beaucoup plus simple tu ne cherches pas une page de confirmation et tu envoies de toi-même un nouveau mot de passe générer aléatoirement
Mais de toute façon pourquoi te poser des questions vu que tu n'utilise pas les cookies ?
Les utiliser d'ailleurs, ouvrir est une faille de sécurité à ton site...