我正处于使用php创建登录表单的早期阶段。
这是我到目前为止所做的代码。我正在使用一个使用mysql函数的教程。但是我需要使用my_sqli。我想这可能是我遇到问题的地方。当我点击提交按钮时,它只刷新页面,我需要它显示'确定'。
这是包含在另一个页面上,所以它有其他包括我的数据库连接。这些都很好,并且工作正常。
<?php
if (isset($_POST['email'])&&isset($_POST['password'])) {
$email = $_POST['email'];
$password = $_POST['password'];
$password_hash = md5($password);
if (!empty($email)&&!empty($password)) {
$query = "SELECT 'userID' FROM registeredusers WHERE email='$email' AND password='$password_hash'";
if ($query_run = mysqli_query($query)) {
$query_run_rows = mysqli_num_rows($query_run);
if ($query_run_rows==0) {
echo 'Invalid email or password.';
} else {
echo 'OK.';
}
}
} else {
echo 'Please enter email and password';
}
}
?>
<form action="<?php echo $current_file ?>" method="POST">
<p>Email: <input type="email" name="email"></p>
<p>Password: <input type="password" name="password"></p>
<input type="submit" value="Log In">
</form>
答案 0 :(得分:1)
您的查询基本上没有正常运行。
mysqli_query应该有2个参数。第一个参数是连接到数据库,第二个参数是查询本身。所以,如果你在localhost服务器上就这样做
$connect=mysqli_connect('localhost','root','','database_name');
$query = "SELECT userID FROM registeredusers WHERE email='$email' AND password='$password_hash'";
if ($query_run = mysqli_query($connect,$query)) {
................................
...............................
}
这应该有效
答案 1 :(得分:0)
到目前为止,你可以改变一些事情。
mysqli_query()需要2个参数和可选的第三个参数。
mysqli_query(connection,query) <-- Probably 99% using this.
mysqli_query(connection,query, resultmode)
一个例子可能是:
$dbc = defined_elsewhere_database_connection;
$q = "SELECT 'userID' FROM registeredusers WHERE email='$email' AND password='$password_hash'";
$r = mysqli_query($dbc, $q);
现在处理结果:
if(mysqli_num_rows($r) ===1) {
$row = mysqli_fetch_array($r, MYSQLI_ASSOC);
validate $row with whatever;
} else {
echo 'invalid password/email';
}