Menu

Securite du membre

- - Dernière réponse : avion-f16
Messages postés
18259
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
16 janvier 2019
- 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

2 réponses

Messages postés
76
Date d'inscription
mardi 30 août 2016
Dernière intervention
21 janvier 2019
4
0
Merci
Peux-tu décrire ton problème car j'ai rien pu comprendre ?
bg62
Messages postés
23094
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
22 janvier 2019
3109 -
idem !!!
Commenter la réponse de M@teo2251
Messages postés
18259
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
16 janvier 2019
5009
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