Problème d'inscription

Fermé
oakthunder - Modifié le 10 juil. 2022 à 13:24
oakthunder Messages postés 17 Date d'inscription dimanche 10 juillet 2022 Statut Membre Dernière intervention 18 janvier 2024 - 15 juil. 2022 à 08:23

J'ai créé un site chez x10hosting, mais j'ai un problème sur la  page d'inscription que je n'avais pas chez infinityfree sur mon ancien site. Une fois qu'on clique sur le bouton d'inscription le formulaire disparaît et la page reste vierge alors quelle devrait afficher un message qui indique que le compte a été créé ou si il y a eu une erreur. J'ai vérifié les identifiants, le mot de passe, le nom de de la bdd tout est correct. Voici le code des deux fichiers : register.php

<!DOCTYPE html>
<html>
<head>
	<title>Inscription</title>
	<link rel="stylesheet" href="style.css" />
</head>
<body>
<?php
require('config.php');
if (isset($_REQUEST['username'], $_REQUEST['email'], $_REQUEST['password'], $_REQUEST['prenom'], $_REQUEST['nom'])){
	// récupérer le nom d'utilisateur et supprimer les antislashes ajoutés par le formulaire
	$username = stripslashes($_REQUEST['username']);
	$username = mysqli_real_escape_string($conn, $username); 
	// récupérer l'email et supprimer les antislashes ajoutés par le formulaire
	$email = stripslashes($_REQUEST['email']);
	$email = mysqli_real_escape_string($conn, $email);
	// récupérer le mot de passe et supprimer les antislashes ajoutés par le formulaire
	$password = stripslashes($_REQUEST['password']);
	$password = mysqli_real_escape_string($conn, $password);
	// récupérer le prenom et supprimer les antislashes ajoutés par le formulaire
	$prenom = stripslashes($_REQUEST['prenom']);
	$prenom = mysqli_real_escape_string($conn, $prenom);
	// récupérer le nom et supprimer les antislashes ajoutés par le formulaire
	$nom = stripslashes($_REQUEST['nom']);
	$nom = mysqli_real_escape_string($conn, $nom); 
	//requéte SQL + mot de passe crypté
	$query = "INSERT into `users` (username, email, prenom, nom, password)
              VALUES ('$username', '$email', '$prenom', '$nom', '".hash('sha256', $password)."')";
	// Exécute la requête sur la base de données
    $res = mysqli_query($conn, $query);
    if($res){
       echo "<div class='sucess'>
             <h3>Vous êtes inscrit avec succès.</h3>
             <p>Cliquez ici pour vous <a href='login.php'>connecter</a></p>
			 </div>";
	}
} else {
?>
<form class="box" action="" method="post">
	<h1 class="box-title box-logo"><a href="https://monsite.com">monsite.com</a></h1>
    <h1 class="box-title">Inscription</h1>
	<h1 class="box-title">Veuillez entrer votre vrai prénom et votre vrai nom, sinon votre compte sera supprimé !!!</h1>
	<h1 class="box-title">Liste des pseudos existants, veuillez choisir un pseudo qui n'apparait pas dans cette la liste.</h1>
		<?php
		$host = 'hote';
		$dbname = 'nom de la bdd';
		$username = 'username';
		$password = 'mon mdp';
		try {
		// se connecter à mysql
		$pdo = new PDO("mysql:host=$host;dbname=$dbname","$username","$password");
		} catch (PDOException $exc) {
			echo $exc->getMessage();
			exit();
		}
		$req = $pdo->query("SELECT * FROM users");
		while($msg = $req->fetch()){
		?>
		<p align="center"><font color="#003cff"><b><?php echo $msg["username"] ?></font></p>
		<?php
		} ?>
	<input type="text" class="box-input" name="username" placeholder="Nom d'utilisateur" required />
	<input type="text" class="box-input" name="prenom" placeholder="Prénom" required />
	<input type="text" class="box-input" name="nom" placeholder="Nom de famille" required />
    <input type="text" class="box-input" name="email" placeholder="Email" required />
    <p><input type="password" class="box-input" id="password" name="password" placeholder="Mot de passe" required />
	<input type="checkbox" onclick="Afficher()"> Afficher le mot de passe</button></p>
	<script>
	function Afficher()
	{ 
	var input = document.getElementById("password"); 
	if (input.type === "password")
	{ 
	input.type = "text"; 
	} 
	else
	{ 
	input.type = "password"; 
	} 
	} 
	</script>
    <input type="submit" name="submit" value="S'inscrire" class="box-button" />
    <p class="box-register">Déjà inscrit ? <a href="login.php">Connectez-vous ici</a></p>	
</form>
<?php } ?>
</body>
</html>    

config.php

<?php
// Informations d'identification
define('DB_SERVER', 'hote');
define('DB_USERNAME', 'ussername');
define('DB_PASSWORD', 'mon mdp');
define('DB_NAME', 'nom de la bdd');
 
// Connexion а la base de donnйes MySQL 
$conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
 
// Vйrifier la connexion
if($conn === false){
    die("ERREUR : Impossible de se connecter. " . mysqli_connect_error());
}
?>
A voir également:

4 réponses

yg_be Messages postés 22486 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 février 2024 1 446
Modifié le 10 juil. 2022 à 15:26

bonjour,

tu n'as aucun "else" correspondant au "if($res)": tu n'auras donc, je pense, rien d'affiché pour cette situation.

0
oakthunder Messages postés 17 Date d'inscription dimanche 10 juillet 2022 Statut Membre Dernière intervention 18 janvier 2024
11 juil. 2022 à 08:19

J'ai rajouté un else echo "erreur" et une fois qu'on appuie sur le bouton erreur s'affiche mais je ne comprends pas pourquoi.

0
yg_be Messages postés 22486 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 février 2024 1 446
11 juil. 2022 à 09:03

Pour comprendre ce qui se passe, il est utile d'afficher (au moins provisoirement) ce que contient la variable $query, et, surtout, ce que retourne la fonction mysqli_error(), décrite ici: https://www.php.net/manual/fr/mysqli.error.php

0
oakthunder Messages postés 17 Date d'inscription dimanche 10 juillet 2022 Statut Membre Dernière intervention 18 janvier 2024 > yg_be Messages postés 22486 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 février 2024
15 juil. 2022 à 08:23

J'ai modifié la partie if ($res) en

if (!$res) {
   printf("Errormessage: %s\n", $mysqli->error);
}

et cela me renvoi Errormessage:

0
jordane45 Messages postés 38041 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 février 2024 4 622
11 juil. 2022 à 10:04

Bonjour

Et au passage... Pourquoi as tu une partie du code en mysqli et l'autre en pdo ???


.
Cordialement,
Jordane

0
oakthunder Messages postés 17 Date d'inscription dimanche 10 juillet 2022 Statut Membre Dernière intervention 18 janvier 2024
11 juil. 2022 à 12:56

J'ai partie pdo car c'était plus rapide à coder.

0
jordane45 Messages postés 38041 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 février 2024 4 622
Modifié le 11 juil. 2022 à 13:34

oui.. mais soit tu fais tout le code en PDO .. soit en MYSQLI .. mais pas les deux...

0