J'ai un script d'inscription sur ma page, et il est traité comme ceci:PHP validation de formulaire ne fonctionne pas correctement
<?php
include "inc/config.php";
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email = $_POST['email'];
$pass = $_POST['pass'];
$conditions = $_POST['conditions'];
if($firstname==""||$lastname==""||$email==""||$pass==""||$conditions==""){
echo "
<p>Tiedoissa oli puutteita :(</p>
<ul>";
if($firstname == ""){
echo "<li>Etunimi puuttuu.</li>";
}
if($lastname == ""){
echo "<li>Sukunimi puuttuu. </li>";
}
if($email == ""){
echo "<li>Sähköposti puuttuu. </li>";
}
if($pass == ""){
echo "<li>Salasana puuttuu. </li>";
}
if($conditions == ""){
echo "<li>Luitko ehdot? </li>";
}
echo "</ul>";
return false;
}
$rq = "INSERT INTO Users (Firstname,Lastname,Email,Password) VALUES ($firstname,$lastname,$email,$pass)";
if(!mysqli_query($dblink,$rq)){
echo "Rekisteröityminen epäonnistui tuntemattomasta syystä! :(";
}
else{
echo "Rekisteröinti onnistui!<br>
Käyttäjätunnuksesi on <strong>$email</strong> ja salasanasi on <strong>$pass</strong>.<br>
Voit nyt kirjautua sisään.
";
}
?>
Je vais avoir du mal à trouver la bonne méthode de comparaison de la valeur de forme, comme je l'ai essayé ==
, ===
et NULL
sur la comparaison. Mais je reçois toujours tous les messages d'erreur, ou aucun d'entre eux. Qu'est-ce que je fais mal?
est ici le code html du formulaire:
<form class="form-horizontal span6" method="post" id="registrationform">
<div class="control-group">
<label class="control-label">Etunimi</label>
<div class="controls">
<input type="text" name="firstname">
</div>
</div>
<div class="control-group">
<label class="control-label">Sukunimi</label>
<div class="controls">
<input type="text" name="lastname">
</div>
</div>
<div class="control-group">
<label class="control-label">Sähköposti</label>
<div class="controls">
<input type="text" name="email">
</div>
</div>
<div class="control-group">
<label class="control-label">Salasana</label>
<div class="controls">
<input type="password" name="pass">
</div>
</div>
<div class="control-group">
<div class="controls">
<label class="checkbox">
<input type="checkbox" name="newsletter"> Tilaan uutiskirjeen
</label>
<label class="checkbox">
<input type="checkbox" name="conditions"> Hyväksyn ehdot
</label>
<button type="submit" class="btn btn-success" id="registerbtn">Rekisteröidy</button>
</div>
</div>
</form>
utilisez la fonction vide http://in3.php.net/manual/fr/fonction.empty.php pour comparer – Afsar
Pouvez-vous ajouter print_r ($ _ POST) en haut du script, recharger dans le navigateur et mettre à jour votre post avec ce qu'il affiche? Et quand vous dites que vous obtenez "tous les messages d'erreur" pouvez-vous préciser qui exactement? Parce qu'il semble peu probable que vous puissiez voir l'écho de vos déclarations d'écho, et ceux qui sont importants – Hans
Vous êtes vulnérable à l'injection SQL. Vous devez soit échapper à votre entrée, ou, puisque vous utilisez déjà mysqli, pourquoi ne pas utiliser des instructions préparées? –