par
toss » 28 avr. 2013, 14:11
Bonjour, j'ai fait un petit script d'inscription (Pseudo et mot de passe, qui recupere les valeurs d'un formulaire) pour les enregistrer dans une BDD SQL.
Seul soucis, un meme pseudo pourra s'enregistrer plusieurs fois. J'ai utilisé la méthode COUNT de MySQL, mais ca n'a pas l'air de fonctionner et je tourne en rond...
J'ai indique ou est le probleme dans le script
Je copie le script:
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=madb', 'root', ''); // On se connecte à la base SQL
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
if(!isset($_POST['pseudo']) OR !isset($_POST['password1']) OR !isset($_POST['password2'])) // Ici je verifie que les champs sont tous remplis
{
header('Location: inscription.php'); // Si non, on est redirigé vers le formulaire
} else { // Si oui on verifie que les mdps sont identiques
if($_POST['password1'] === $_POST['password2'])
{
$username = $_POST['pseudo'];
$password = sha1($_POST['password1']);
// S'ils sont identique on verifie que le pseudo n'est pas pris (LE PROBLEME EST ICI)
$dn = mysql_num_rows(mysql_query('SELECT id FROM user_launcher WHERE username="'.$username.'"'));
if ($dn==1)
{
// Pseudo existe deja
header('Location: index.php');
} else {
// Pseudo n'existe pas, on l'enregistre
try
{
$sql = 'INSERT INTO user_launcher(username, password) VALUES (:username, :password)';
$req= $bdd->prepare($sql);
$req->execute(array(
'username' => $username,
'password' => $password,
)
);
$data = $req->fetch();
}
catch(Exception $e)
{
echo 'Erreur dans la base de données.';
}
header('Location: inscription_valide.php');
}
} else { // Si les 2 mots de passes ne correspondent pas, on est redirigé vers le formulaire
header('Location: formulaire.php');
}
}
?>
Bonjour, j'ai fait un petit script d'inscription (Pseudo et mot de passe, qui recupere les valeurs d'un formulaire) pour les enregistrer dans une BDD SQL.
Seul soucis, un meme pseudo pourra s'enregistrer plusieurs fois. J'ai utilisé la méthode COUNT de MySQL, mais ca n'a pas l'air de fonctionner et je tourne en rond...
J'ai indique ou est le probleme dans le script
Je copie le script:
[php]<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=madb', 'root', ''); // On se connecte à la base SQL
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
if(!isset($_POST['pseudo']) OR !isset($_POST['password1']) OR !isset($_POST['password2'])) // Ici je verifie que les champs sont tous remplis
{
header('Location: inscription.php'); // Si non, on est redirigé vers le formulaire
} else { // Si oui on verifie que les mdps sont identiques
if($_POST['password1'] === $_POST['password2'])
{
$username = $_POST['pseudo'];
$password = sha1($_POST['password1']);
// S'ils sont identique on verifie que le pseudo n'est pas pris (LE PROBLEME EST ICI)
$dn = mysql_num_rows(mysql_query('SELECT id FROM user_launcher WHERE username="'.$username.'"'));
if ($dn==1)
{
// Pseudo existe deja
header('Location: index.php');
} else {
// Pseudo n'existe pas, on l'enregistre
try
{
$sql = 'INSERT INTO user_launcher(username, password) VALUES (:username, :password)';
$req= $bdd->prepare($sql);
$req->execute(array(
'username' => $username,
'password' => $password,
)
);
$data = $req->fetch();
}
catch(Exception $e)
{
echo 'Erreur dans la base de données.';
}
header('Location: inscription_valide.php');
}
} else { // Si les 2 mots de passes ne correspondent pas, on est redirigé vers le formulaire
header('Location: formulaire.php');
}
}
?>[/php]