Securite du membre

Fermé
xsega - 28 juil. 2018 à 14:42
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 - 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

2 réponses

Utilisateur anonyme
28 juil. 2018 à 14:44
Peux-tu décrire ton problème car j'ai rien pu comprendre ?
0
bg62 Messages postés 23598 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 19 mai 2024 2 365
10 août 2018 à 16:31
idem !!!
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 500
12 août 2018 à 23:07
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é"; 
}
0