Securite du membre
xsega
-
avion-f16 Messages postés 19252 Date d'inscription Statut Contributeur Dernière intervention -
avion-f16 Messages postés 19252 Date d'inscription Statut Contributeur Dernière intervention -
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
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
A voir également:
- Securite du membre
- Question de sécurité - Guide
- Votre appareil ne dispose pas des correctifs de qualité et de sécurité importants - Guide
- Mode securite - Guide
- Membre indisponible vinted - Guide
- Clé de sécurité windows 10 gratuit - Guide
2 réponses
bg62
Messages postés
23732
Date d'inscription
Statut
Modérateur
Dernière intervention
2 409
idem !!!
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 :
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é"; }