Menu

Securite du membre

xsega - 28 juil. 2018 à 14:42 - Dernière réponse : avion-f16 18245 Messages postés dimanche 17 février 2008Date d'inscriptionContributeurStatut 15 août 2018 Dernière intervention
- 12 août 2018 à 23:07
bonjour
j ai creer une page d inscription mais seulement j aimerais faire a ce que plusieurs personnes n ont pas le meme nom dans la base de donnes voici mon code inscription.php
<?php

$bdd = new pdo('mysql:host=localhost;dbname=espace_membre', 'root', '');
if(isset($_POST['forminscription']))
{

$nom = htmlspecialchars($_POST['nom']);
$mail = htmlspecialchars($_POST['mail']);
$mail2 = htmlspecialchars($_POST['mail2']);
$mdp = sha1($_POST['mdp']);
$mdp2 = sha1($_POST['mdp2']);
if(!empty($_POST['nom']) AND !empty($_POST['mail']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']))
{
$nomlength = strlen($nom);
if($nomlength <= 250)
{
if($mail == $mail2)
{
if(filter_var($mail, FILTER_VALIDATE_EMAIL))
{
$reqmail = $bdd->prepare("SELECT * FROM membres WHERE mail = ?");
$reqmail->execute(array($mail));
$mailexist = $reqmail->rowCount();
if($mailexist == 0)
{
if($mdp == $mdp2)
{
$insertmbr = $bdd->prepare("INSERT INTO membres(Nom, mail, motdepasse) VALUES(?, ?, ?)");
$insertmbr->execute (array($nom, $mail, $mdp));
$erreur = "votre compte a bien été crée ! <a href=\"index.php\">Me connecter</a>";

}
else
{
$erreur = " Vos mots de passes ne sont pas identiques !";
}
}
else
{
$erreur = "Ce Nom est utilisée par une autre personne !";
}
}
else
{
$erreur = "Votre Adresse e-mail n'est pas valide!";
}
}
else
{
$erreur = "Vos adresses e-mails ne correspondent pas!";
}
}
else
{
$erreur = "Votre Nom ne doit pas dépasser 250 caracteres!";
}
}
else
{
$erreur = "Veuillez remplir tous les champs!";
}
}
?>
<html>
<head>
<title>Wotrom.com</title>
<meta charset="utf-8">
</head>
<body background="photo.png">
<div align="center">
<h2>Inscription</h2>
<br>
<form method="POST"action="">
<table>
<tr>
<td align="right">
<label for="NOM">NOM:</label>
</td>
<td align="right">
<input type="text" placeholder="Entrez votre Nom" id="nom" name="nom" face="Harlow Solid Italic" value="<?php if(isset($NOM)) { echo $NOM; } ?>" />
</td>
</tr>
<tr>
<td align="right">
<label for="Prénom">Prénom:</label>
</td>
<td align="right">
<input type="text" placeholder="Entrez votre Prénom" id="prénom" name="prénom" face="Harlow Solid Italic" value="<?php if(isset($Prénom)) { echo $Prénom; } ?>" />
</td>
</tr>
<tr>
<td align="right">
<label for="Mail">Mail:</label>
</td>
<td align="right">
<input type="email" placeholder="Entrez votre adresse e-mail" id="mail" name="mail" face="Harlow Solid Italic" value="<?php if(isset($Mail)) { echo $Mail; } ?>" />
</td>
</tr>
<tr>
<td align="right">
<label for="Mail">Confirmation du mail:</label>
</td>
<td align="right">
<input type="email" placeholder="Confirmez l'adresse e-mail" id="mail2" name="mail2" face="Harlow Solid Italic" value="<?php if(isset($Mail2)) { echo $Mail2; } ?>" />
</td>
</tr>
<tr>
<td align="right">
<label for="mdp">Mot de passe:</label>
</td>
<td align="right">
<input type="password" placeholder="Entrez le mot de passe" id="mdp" name="mdp" face="Harlow Solid Italic" />
</td>
</tr>
<tr>
<td align="right">
<label for="mdp2">Confirmez votre Mot de passe:</label>
</td>
<td align="right">
<input type="password" placeholder="Confirmez le mot de passe" id="mdp2" name="mdp2" face="Harlow Solid Italic" />
</td>
</tr>
<tr>
<td></td>
<td align="center">
</br>
<input type="submit" name="forminscription" value="Inscription">
<input type="reset" value="Annuler">
</td>
</tr>
</table>
</form>
<?php
if(isset($erreur))
{
echo '<font color="orange" face="sitka Small">' .$erreur.'</font>';
}
?>
</div>
</body>
</html>
svp aidez moi à résoudre mon probleme
Afficher la suite 

Votre réponse

3 réponses

M@teo2251 75 Messages postés mardi 30 août 2016Date d'inscription 9 août 2018 Dernière intervention - 28 juil. 2018 à 14:44
0
Merci
Peux-tu décrire ton problème car j'ai rien pu comprendre ?
bg62 22917 Messages postés samedi 22 octobre 2005Date d'inscriptionModérateurStatut 18 août 2018 Dernière intervention - 10 août 2018 à 16:31
idem !!!
Commenter la réponse de M@teo2251
avion-f16 18245 Messages postés dimanche 17 février 2008Date d'inscriptionContributeurStatut 15 août 2018 Dernière intervention - 12 août 2018 à 23:07
0
Merci
Salut,

Il suffit d'effectuer une recherche SQL pour compter le nombre d'entrées avec le nom fourni via le formulaire.

En fait tu fais déjà la même vérification pour l'adresse email, il suffit de reproduire la procédure pour le nom.

Pense à prêter attention au fait que le moteur de bases de données peut être sensible à la casse.
Lors de ta requête SQL, je te conseille donc de mettre $nom en minuscules et à effectuer la recherche sur les champs SQL "nom" aussi en minuscules.

Par exemple :
<?php
// ...
$reqnom = $bdd->prepare("SELECT * FROM membres WHERE LOWER(nom) = ?"); 
$reqnom->execute(array(strtolower($nom))); 
$nomexist = $reqnom->rowCount(); 

if($nomexist == 0) {
    // Suite du code (jusqu'au INSERT)
} else {
    $erreur = "Ce nom est déjà utilisé"; 
}
Commenter la réponse de avion-f16