La vérification php formulaire de connexion à l'encontre de base de données mysql
Je suis en train de créer un uniquement les membres du site. J'ai réussi à reçu un formulaire d'enregistrement de l'écriture à une base de données MySql mais j'ai du mal à la vérification de la connexion de l'utilisateur à l'encontre de l'enregistrement de base de données.
Formulaire de connexion:
<form id="login" name="login" onsubmit="" action="scripts/login.inc.php" method="post">
<label class="label">Username:</label> <input type="text" name="user" id="user" onkeyup="return validateForm();" size="25" />
<span id="feedback_msg_user"></span><br />
<label class="label">Password:</label> <input type="password" name="pass" id="pass1" onblur="return validateForm();" size="25" />
<span id="feedback_msg_pass1"></span><br />
<input type="submit" name="loggedin" value="Log In" />
<input type="reset" />
</form>
Script De Processeur:
include('../includes/connect.inc.php');
$user = $_REQUEST['user'];
$pass = $_REQUEST['pass'];
if(isset($_POST['loggedin']))
{
if (empty ($user)) //if username field is empty echo below statement
{
echo "you must enter your unique username <br />";
}
if (empty ($_REQUEST['pass'])) //if password 1 field is empty echo below statement
{
echo "you must enter your password <br />";
}
}
else
{
$query = "SELECT * FROM user WHERE $user = username AND $pass = passowrd" ;
$result = mysqli_query($dbc,$query);
if ($result)
{
echo "query successfull wrote to DB";
header('location:../members.php');
}
else
{
echo"unscccessful login";
}
}
C'est jeter en arrière unsuccessful login
. Où vais-je tort? Toute aide serait appréciée.
- Un
FALSE
valeur dans$result
indique un échec de la requête. Dans votre cas, vous avez besoin de devis'$user'
et'$pass
'. Toujours test de l'échec: if (!$le résultat) echo mysql_error();` - Veuillez lire à propos des injections sql, votre code est très précaire....
- Votre code est vulnérable à une injection SQL. Au minimum, appel
mysqli_real_escape_string()
sur ces revendeurs à valeur ajoutée, mais le mieux serait d'utiliser MySQLi de déclarations préparées à l'avance, puisque vous êtes déjà à l'aide de MySQLi, de toute façon.
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin le nombre de lignes, et que votre requête est mal...
mysqli_real_escape_string
, nous pouvons maintenant;t désinfecter les données pour luimysqli_real_escape_string
si il est à l'aide depreg_match
lever une erreurheader(location: demo.php?login_failed=true)
et sur l'utilisation de pageif(isset(login_failed) && login_failed == 'true') {echo 'login failed';}
Je pense que votre requête devrait ressembler à ceci
Je pense que votre requête SQL doit être:
Je suggère de faire un chèque pour le nombre de lignes trouvées et vérifier pour voir ce que (le cas échéant) de MySQL erreur s'est produite.
Obtenir votre nombre de lignes à l'aide de: