Besoin d'aide, création d'un espace membre

YpnoZ
Invité n'ayant pas de compte PHPfrance

20 déc. 2019, 21:45

Bonsoir,
Je suis débutant en PHP et je voulais créer pour mon site web un système de compte utilisateur. J'ai suivi un tuto :https://www.tutorialrepublic.com/php-tu ... system.php mais je voulais rajouter dans le fichier register.php une donnée "Mail" pour stocker... les mails ! (et oui =D> ). Je me suis donc inspiré du code pour l'username et j'ai fait ça :

Code : Tout sélectionner

if(empty(trim($_POST["email"]))){ $email_err = "Veuillez inscrire votre adresse mail !"; } else{ $sql = "SELECT id FROM users WHERE email = ?"; if($stmt = mysqli_prepare($link, $sql)){ // Bind variables to the prepared statement as parameters mysqli_stmt_bind_param($stmt, "s", $param_email); // Set parameters $param_email = trim($_POST["email"]); // Attempt to execute the prepared statement if(mysqli_stmt_execute($stmt)){ /* store result */ mysqli_stmt_store_result($stmt); if(mysqli_stmt_num_rows($stmt) == 1){ $email_err = "Cet email est déjà pris !"; } else{ $email = trim($_POST["email"]); } } else{ echo "Oops! Something went wrong. Please try again later."; } } mysqli_stmt_close($stmt); }
J'ai également modifier le code qui insert les données dans la BDD :

Code : Tout sélectionner

if(empty($username_err) && empty($password_err) && empty($confirm_password_err) && empty($email_err)){ // Prepare an insert statement $sql = "INSERT INTO users (username, password, email) VALUES (?, ?, ?)"; if($stmt = mysqli_prepare($link, $sql)){ // Bind variables to the prepared statement as parameters mysqli_stmt_bind_param($stmt, "ss", $param_username, $param_password, $param_email); // Set parameters $param_username = $username; $param_password = password_hash($password, PASSWORD_DEFAULT); // Creates a password hash $param_email = $email; // Attempt to execute the prepared statement if(mysqli_stmt_execute($stmt)){ // Redirect to login page header("location: login.php"); } else{ echo "Something went wrong. Please try again later."; //<--ICI } } // Close statement mysqli_stmt_close($stmt); }
Mais quand je teste : - Aucune donnée n'est inscrite dans la BDD
- J'obtient le message : (juste au dessus, dans le code, où c'est marqué "<-- ICI")

Je fais appelle à vous pour m'aider car comme je l'ai dit je débute et là je comprends pas ^^'

Merci d'avance,
𝒴𝓅𝓃𝑜𝒵#7796

Mammouth du PHP | 2703 Messages

20 déc. 2019, 21:54


YpnoZ
Invité n'ayant pas de compte PHPfrance

20 déc. 2019, 22:41

Je ne sais pas si je l'ai bien utilisé :

Code : Tout sélectionner

if (mysqli_connect_errno()) { printf("Échec de la connexion : %s\n", mysqli_connect_error()); exit(); } if(empty(trim($_POST["email"]))){ $email_err = "Veuillez inscrire votre adresse mail !"; } else{ $sql = "SELECT id FROM users WHERE email = ?"; if($stmt = mysqli_prepare($link, $sql)){ // Bind variables to the prepared statement as parameters mysqli_stmt_bind_param($stmt, "s", $param_email); // Set parameters $param_email = trim($_POST["email"]); // Attempt to execute the prepared statement if(mysqli_stmt_execute($stmt)){ /* store result */ mysqli_stmt_store_result($stmt); if(mysqli_stmt_num_rows($stmt) == 1){ $email_err = "Cet email est déjà pris !"; } else{ $email = trim($_POST["email"]); } } else{ echo "Oops! Something went wrong. Please try again later."; } } mysqli_stmt_close($stmt); }
Si oui : ça ne m'affiche rien :/
Si non : où le placer ?

Eléphanteau du PHP | 27 Messages

29 déc. 2019, 06:10

C'est normal qu'il y ait des points d'interrogations dans ton script PHP?

Where email = ?

Et dans la fonction INSERT, il te faut des nom de variables au lieu des points d'interrogation, non?

Je ne suis pas très calé en PHP, donc c'est juste un doute que j'ai