的login.php
<?php
function login()
{
$con = mysqli_connect("localhost", "XXX", "XXX") or die('Could not connect to server');
mysqli_select_db('$con', "store") or die('Could not connect to database');
}
?>
validate.php
第10行 - 错误 - 注意:未定义的变量:C:\ wamp \ www \ store \ admin \ validate.php中的con
第10行 - 警告:mysqli_query()要求参数1为mysqli,在C:\ wamp \ www \ store \ admin \ validate.php中给出null
第12行 - 警告:mysqli_num_rows()期望参数1为mysqli_result,在C:\ wamp \ www \ store \ admin \ validate.php中给出null
<?php
session_start();
include ("../mylibrary/login.php");
login();
$userid = $_POST['userid'];
$password = $_POST['password'];
$query = "SELECT userid, name from admins where userid = '$userid' and password = PASSWORD('$password')";
$result = mysqli_query($con, $query); (**Line 10)
if (mysqli_num_rows($result) == 0)(**Line 12)
{
echo "<h5>Sorry, your account was not validated.</h5><br>\n";
echo "<a href=\"admin.php\">Try again</a><br>\n";
} else
{
$_SESSION['store_admin'] = $userid;
header("Location: admin.php");
}
?>
我试图找出问题所在。让我知道谢谢。
答案 0 :(得分:2)
见这个
mysqli_select_db('$con'
^ ^
变量不会用单引号解析。
删除它们或使用双"
引号。
注意:确保所有POST数组都包含值,并且您正在使用的表单确实使用POST方法,并且元素保存其各自的名称属性。
你也可以在这里打开SQL注入。
使用准备好的陈述。
参考文献:
另请考虑使用password_hash()
存储您的密码:
答案 1 :(得分:0)
您正在混合局部变量和全局变量。 登录功能以外无法使用$ con。
如果你将global $con;
添加为登录功能的第一行,它也可以在函数外部使用。
查看php手册:http://php.net/manual/en/language.variables.scope.php
PS:虽然它不是问题的根源,但请阅读弗雷德的答案。