Bonjour, j'ai un petit problème avec mon formulaire de modification, par exemple quand je vais sur inspecter l'element et que je modifie la value="" de mon age par value="55555dsqd" et que je valide avec le bouton, il va me le mettre dans la bdd.
Comment faire pour empécher une attaque de se genre ?
Voici mon script :
<form method="post" action="parametres.php?a=profil">
<?php
$req = $bdd->prepare("SELECT pseudo, prenom, nom, email,description, affiche, age FROM membre, login WHERE membre.id_login = :idsession AND membre.id_login = login.id");
$req->execute(array('idsession' => $_SESSION['id']));
while($data = $req->fetch())
{
?>
<div class="parametresbloc">
<div class="parametrespseudo">
<label for="pseudo">Votre pseudo </label>
</div>
<input type="text"disabled="disabled" value="<?php echo $data['pseudo'];?>" name="pseudo" />
</div>
<div class="parametresbloc">
<div class="parametresprenom">
<label for="prenom">Votre prenom *</label>
</div>
<input type="text" name="prenom" value="<?php echo $data['prenom'];?>" required />
</div>
<div class="parametresbloc">
<div class="parametresnom">
<label for="nom">Votre nom *</label>
</div>
<input type="text" name="nom" value="<?php echo $data['nom'];?>" required />
</div>
<div class="parametresbloc">
<div class="parametresemail">
<label for="email">Votre email </label>
</div>
<input type="text" name="email" disabled="disabled" value="<?php echo $data['email'];?>" required />
</div>
<div class="parametresbloc">
<div class="parametresdescription">
<label for="description">Votre description *</label>
</div>
<textarea name="description"><?php echo $data['description'];?></textarea>
</div>
<div class="parametresbloc">
<div class="parametresage">
<label for="age">Votre âge *</label>
</div>
<select name="age">
<?php
for ($i=13; $i<=100; $i=$i+1)
{
?>
<option value="<?php echo $i;?>"><?php echo $i;?></option>
<?php
}
?>
</select>
</div>
<div class="parametresbloc">
<div class="parametressubmit">
<input type="submit" class="btnturcplus" name="btninfo" value="Modifier"/>
</div>
</div>
<?php
}
?>
</form>
<?php
if(isset($_POST['btninfo']))
{
$prenom = ucfirst(htmlspecialchars($_POST['prenom']));
$nom = ucfirst(htmlspecialchars($_POST['nom']));
$description = htmlspecialchars($_POST['description']);
$age = htmlspecialchars($_POST['age']);
if($prenom == true && $nom == true && $description == true && $age == true )
{
if(strlen($prenom) < 10 && strlen($prenom) > 2 && strlen($nom) < 10 && strlen($nom) > 2 && strlen($description) < 300)
{
if(preg_match('~[A-Z][a-z]*(-[A-Z][a-z]?)?~', $prenom))
{
if(preg_match('~[A-Z][a-z]*(-[A-Z][a-z]?)?~', $nom))
{
$stmt = $bdd->prepare('UPDATE membre SET prenom = :prenom, nom = :nom, description=:description, age = :age WHERE id_login=:idsession ');
$stmt->execute(array(
':idsession' => $_SESSION['id'],
':prenom' => $prenom,
':nom' => $nom,
':description' => $description,
':age' => $age,
));
echo "Vos modifications ont été effectuées avec succès!";
}
else
{
echo "Votre nom ne doit pas contenir de caractères spéciaux.";
}
}
else
{
echo "Votre prenom ne doit pas contenir de caractères spéciaux.";
}
}
else
{
echo "Veuillez respecter le format requis.";
}
}
else
{
echo "Veuillez remplir tous les champs.";
}
}
?>