Multi pseudo

Fermé
loulou - 13 janv. 2022 à 08:19
 B2D2 - 28 janv. 2022 à 12:14
Bonjour, j'aimerai savoir comment créer un script php qui vérifie si un pseudo n'a pas été déjà enregistré dans la bdd.
Merci !!!
A voir également:

7 réponses

jordane45 Messages postés 38173 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 10 mai 2024 4 666
13 janv. 2022 à 10:50
Bonjour

Ta question est bien trop vague... Nous ne savons pas ce que tu as commencé à faire .. sur quel point précis tu bloques...

A minima, il faut se connecter à la bdd en pdo ou mysqli
Puis faire une requête dy type SELECT WHERE


0
Si vous voulez, le script complet est :
<!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'])){
// 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);
//requéte SQL + mot de passe crypté
$query = "INSERT into `users` (username, email, password)
VALUES ('$username', '$email', '".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://oakthunder.ddns.net/"></a></h1>
<h1 class="box-title">S'inscrire</h1>
<input type="text" class="box-input" name="username" placeholder="Nom d'utilisateur" required />
<input type="text" class="box-input" name="email" placeholder="Email" required />
<input type="password" class="box-input" name="password" placeholder="Mot de passe" required />
<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>

et config.php :
<?php
// Informations d'identification
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', 'mon mdp');
define('DB_NAME', 'registration');

// 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());
}
?>
0
jordane45 Messages postés 38173 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 10 mai 2024 4 666
13 janv. 2022 à 19:14
A l'avenir, merci d'utiliser les BALISES DE CODE pour poster ton code sur le forum.
Explications ( à lire entièrement !! ) disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ensuite... et bien.. as tu lu ma réponse ?
As tu essayé ?


0
J'ai déjà une connexion mysqli (config.php), j'aimerrai savoir comment utiliser SELECT WHERE.
0
jordane45 Messages postés 38173 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 10 mai 2024 4 666
14 janv. 2022 à 13:21
De la même façon que pour ton insert.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Je vois deux possibilités simples :
- ne pas autoriser les doublons pour le champ "pseudo" ; et dans ce cas, l'INSERT renverra une erreur qui pourra indiquer que le pseudo existe déjà ;
- avant de faire l'INSERT, tu fais un
SELECT id FROM utilisateurs WHERE pseudo=" $pseudo " ;
si cette requète renvoi un résultat, tu réaffiche le formulaire en précisant que le pseudo est déjà utilisé.
0
Pouvez-vous me montrer un script complet.
Merci !!!
0
Et bien juste avant de faire le INSERT, tu fais :

if (mysqli_query($conn,"SELECT * FROM `users` WHERE username='$username' ;")===1)
{
echo "Le nom $username est déjà utilisé, choisissez-en un autre";
// Réafficher le formulaire...
} else {
// On peut insérer car le nom n'est pas déjà utilisé
}
0
loulou > B2D2
28 janv. 2022 à 12:00
Comment réafficher le formulaire.
0
Ce que je fais habituellement, c'est que le fichier PHP qui affiche le formulaire se rappelle lui-même, pour faire les contrôles avant d'afficher quoi que ce soit, et s'il est validé, je change de page :

form.php :
<?php
if ( tous les tests pour valider ) {
header("Location:page_apres_validation.php");
}
?>
<html>
... tous le code HTML y compris le formulaire
</html>


Il y a aussi des techniques pour vérifier la validation avant de terminer le formulaire, mais ça demande l'exécution de javascript ou autre code côté navigateur, plus "hasardeux".
0