oakthunder
-
Modifié le 10 juil. 2022 à 13:24
oakthunder
Messages postés19Date d'inscriptiondimanche 10 juillet 2022StatutMembreDernière intervention26 mars 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());
}
?>
oakthunder
Messages postés19Date d'inscriptiondimanche 10 juillet 2022StatutMembreDernière intervention26 mars 20241 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.
yg_be
Messages postés22787Date d'inscriptionlundi 9 juin 2008StatutContributeurDernière intervention15 mai 20241 481 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
oakthunder
Messages postés19Date d'inscriptiondimanche 10 juillet 2022StatutMembreDernière intervention26 mars 20241
>
yg_be
Messages postés22787Date d'inscriptionlundi 9 juin 2008StatutContributeurDernière intervention15 mai 2024 15 juil. 2022 à 08:23
J'ai modifié la partie if ($res) en
if (!$res) {
printf("Errormessage: %s\n", $mysqli->error);
}
oakthunder
Messages postés19Date d'inscriptiondimanche 10 juillet 2022StatutMembreDernière intervention26 mars 20241 11 juil. 2022 à 12:56
J'ai partie pdo car c'était plus rapide à coder.
jordane45
Messages postés38178Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention16 mai 20244 667 Modifié le 11 juil. 2022 à 13:34
oui.. mais soit tu fais tout le code en PDO .. soit en MYSQLI .. mais pas les deux...