Formulaire d'inscription

Petit nouveau ! | 1 Messages

03 avr. 2021, 11:44

Bonjour,
Je ne comprends pas pourquoi la partie PHP de mon code ne fonctionne pas donc si quelqu'un peut m'aider
De plus j'aurai également besoin d'aide pour les conditions de caractères pour le nom d'utilisateur et le mot de passe svp (ce sont les deux lignes en commentaire)
Merci d'avance


Code : Tout sélectionner

<?php session_start(); include('../_database/connexionDB.php') if (isset($_SESSION['id'])){ header('Location: ../../index.php'); exit; } if(!empty($_POST)){ extract($_POST); $valid = true; if (isset($_POST['inscription'])){ $nom = htmlentities(trim($nom)); $prenom = htmlentities(trim($prenom)); $nom_utilisateur = htmlentities(trim($nom_utilisateur)); $mail = htmlentities(strtolower(trim($mail))); $confmail = htmlentities(strtolower(trim($confmail))); $mdp = trim($mdp); $confmdp = trim($confmdp); if(empty($nom)){ $valid = false; $er_nom = ("Veuillez saisir un nom"); } if(empty($prenom)){ $valid = false; $er_prenom = ("Veuillez saisir un prénom"); } if(empty($nom_utilisateur)){ $valid = false; $er_nom_utilisateur = ("Veuillez saisir un nom d'utilisateur"); // }elseif(!preg_match("", $nom_utilisateur)){ $valid = false; $er_nom_utilisateur = "Veuillez saisir un nom d'utilisateur valide"; }else{ $req_nom_utilisateur = $DB->query("SELECT nom_utilisateur FROM utilisateur WHERE nom_utilisateur = ?", array($nom_utilisateur)); $req_nom_utilisateur = $req_nom_utilisateur->fetch(); if ($req_nom_utilisateur['nom_utilisateur'] <> ""){ $valid = false; $er_nom_utilisateur = "Ce nom d'utilisateur est déjà utilisé pour un autre compte"; } } if(empty($mail)){ $valid = false; $er_mail = "Veuillez saisir une adresse e-mail"; }elseif(!preg_match("/^[a-z0-9\-_.]+@[a-z]+\.[a-z]{2,3}$/i", $mail)){ $valid = false; $er_mail = "Veuillez saisir une adresse e-mail valide"; }elseif($mail != $confmail){ $valid = false; $er_mail = "Vos adresses e-mail ne correspondent pas"; }else{ $req_mail = $DB->query("SELECT mail FROM utilisateur WHERE mail = ?", array($mail)); $req_mail = $req_mail->fetch(); if ($req_mail['mail'] <> ""){ $valid = false; $er_mail = "Cette adresse e-mail est déjà utilisée pour un autre compte"; } } if(empty($mdp)){ $valid = false; $er_mdp = "Veuillez saisir un mot de passe"; // }elseif(!preg_match("", $mdp)){ $valid = false; $er_mdp = "Veuillez saisir un mot de passe valide"; }elseif($mdp != $confmdp){ $valid = false; $er_mdp = "Vos mots de passe ne correspondent pas"; } } if($valid){ $mdp = crypt($mdp, "$6$rounds=5000$macleapersonnaliseretagardersecret$"); $token = bin2hex(random_bytes(12)); $DB->insert("INSERT INTO utilisateur (nom, prenom, nom_utilisateur, mail, mdp) VALUES (?, ?, ?, ?, ?)", array($nom, $prenom, $nom_utilisateur, $mail, $mdp)); $req = $DB->query("SELECT *  FROM utilisateur WHERE mail = ?", array($mail)); $req = $req->fetch(); $mail_to = $req['mail']; $header = "From: no-reply <[email protected]>\n"; $header .= "MIME-version: 1.0\n"; $header .= "Content-type: text/html; charset=utf-8\n"; $header .= "Content-Transfer-ncoding: 8bit"; $contenu = '<p>Bonjour ' . $req['nom'] . ',</p><br>  <p>Veuillez confirmer votre compte <a href="http://www.recettes-boyer.000webhostapp.com/pages/_espaces_membre/confirmation.php?id=' . $req['id'] . '&token=' . $token . '">Valider</a><p>'; mail($mail_to, 'Confirmation de votre compte', $contenu, $header); header('Location: ../../index.php'); exit; } } } ?> <!DOCTYPE html> <html> <head> <meta charset ="UTF-8"/> <link rel="stylesheet" type="text/css" href="../../css/css.css"/> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css"/> <title>Inscription</title> </head> <body> <header> <?php include("../_includes/header.php"); ?> </header> <h3>Inscription</h3> <form method="post"> <?php if (isset($er_nom)){ echo $er_nom; }?> <input type="text" placeholder="Votre nom" name="nom" value="<?php if(isset($nom)){ echo $nom; }?>" required> <?php if (isset($er_prenom)){ echo $er_prenom; }?> <input type="text" placeholder="Votre prénom" name="prenom" value="<?php if(isset($prenom)){ echo $prenom; }?>" required> <?php if (isset($er_nom_utilisateur)){ echo $er_nom_utilisateur; }?> <input type="text" placeholder="Votre nom d'utilisateur" name="nom_utilisateur" value="<?php if(isset($nom_utilisateur)){ echo $nom_utilisateur; }?>" required> <?php if (isset($er_mail)){ echo $er_mail; }?> <input type="email" placeholder="Adresse e-mail" name="mail" value="<?php if(isset($mail)){ echo $mail; }?>" required> <input type="email" placeholder="Confirmer l'adresse e-mail" name="confmail" required> <?php if (isset($er_mdp)){ echo $er_mdp; }?> <input type="password" placeholder="Mot de passe" name="mdp" value="<?php if(isset($mdp)){ echo $mdp; }?>" required> <input type="password" placeholder="Confirmer le mot de passe" name="confmdp" required> <button type="submit" name="inscription">S'inscrire</button> </form> <footer> <?php include("../_includes/footer.php"); ?> </footer> </body> </html>

Mammouth du PHP | 2703 Messages

03 avr. 2021, 15:11

Je ne comprends pas pourquoi la partie PHP de mon code ne fonctionne pas
trop vague comme description du problème. il faut mettre des echo partout pour identifier plus précisément ce qui bloque.