参数错误 - PHP,MySQLi登录表单

时间:2014-12-04 21:15:15

标签: php mysql mysqli

我已经看过一些类似的帖子,但我无法与他们相关,所以这里有:

使用PHP在表单中构建登录。我不熟悉MySQli,我知道我的一些代码有点混合。无论如何,我一直在:

  

mysqli_query()期望参数1为mysqli,给定字符串,第15行   mysqli_num_rows()正好需要1个参数,2个给定,第16行

你能否清楚地概述我哪里出错了?

除此之外,我知道我需要添加一些更好的安全性,但它只是想让它发挥作用,因为我已经尝试了很长时间。

非常感谢任何其他想法!

<?php
include "connect.php";
// Checking to see if the login form has been submitted

if (isset($_POST['username'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username = $username AND password = $password LIMIT 1";

$result=mysqli_query($sql); 
$num_rows = mysqli_num_rows($result);
$row=mysqli_fetch_assoc($result);

// If login information is correct
if ($num_rows == 1) {
    echo "You have successfully logged in.";
    exit();
} 
// If login information is invalid
else {
    echo "Invalid login information. Please return to the previous page.";
    exit();
}
}

?>


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<h1>Login</h1>
<form method="post" action="login.php">
Username: <input type="text" name="username" /><br /><br />
Password: <input type="password" name="password" /><br /><br />
<input type="submit" name="submit" value="Log In" />
</form>
</body>
</html>

感谢您一看。

3 个答案:

答案 0 :(得分:0)

当您使用mysqli时,无论何时进行查询,都必须传递连接。看看mysqli_connect()

答案 1 :(得分:0)

mysqli_query()需要两个参数:连接和查询。你错过了连接:

$result=mysqli_query($conn, $sql); 

我不知道你在connect.php中定义的位置和方式,但你需要先添加它,然后才能查询任何内容。

答案 2 :(得分:0)

mysqli_query期望第一个参数是连接资源

e.g。

$connection=mysqli_connect("localhost","root","") or die("Failed to connect with MySQL.");
mysqli_query($connection,"SQL HERE");

在你的情况下,

$result = mysqli_query($YOUR_CONNECTION_VARIABLE,$sql);