创建登录表单

时间:2014-12-04 21:23:36

标签: php html mysql login mysqli

我正处于使用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>

2 个答案:

答案 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';
}
相关问题