undefined variable
和mysqli_real_escape_string
这些是notice
和warning
:
注意:未定义的变量:第14行的C:\ xampp \ htdocs \ ngab \ login.php中的con
警告:mysqli_real_escape_string()要求参数1为mysqli,在第14行的C:\ xampp \ htdocs \ ngab \ login.php中给出null
注意:未定义的变量:第16行的C:\ xampp \ htdocs \ ngab \ login.php中的con
警告:mysqli_real_escape_string()要求参数1为mysqli,在第16行的C:\ xampp \ htdocs \ ngab \ login.php中给出null
注意:未定义的变量:第18行的C:\ xampp \ htdocs \ ngab \ login.php中的con
警告:mysqli_real_escape_string()要求参数1为mysqli,在第18行的C:\ xampp \ htdocs \ ngab \ login.php中给出null
注意:未定义的变量:第21行的C:\ xampp \ htdocs \ ngab \ login.php中的con
警告:mysqli_query()要求参数1为mysqli,在第21行的C:\ xampp \ htdocs \ ngab \ login.php中给出null
这些是我的代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Login</title>
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<?php
require('db.php');
session_start();
if (isset($_POST['username'])){
$user_ID = stripslashes($_REQUEST['user_ID']);
$user_ID = mysqli_real_escape_string($con,$user_ID);
$username = stripslashes($_REQUEST['username']);
$username = mysqli_real_escape_string($con,$username);
$password = stripslashes($_REQUEST['password']);
$password = mysqli_real_escape_string($con,$password);
$query = "SELECT * FROM `teacher_table` WHERE user_ID='$user_ID'
and username='$username' and password='".md5($password)."'";
$result = mysqli_query($con,$query) or die(mysql_error());
$rows = mysqli_num_rows($result);
if($rows==1){
$_SESSION['username'] = $username;
header("Location: home.php");
}else{
echo "<div class='form'>
<h3>User ID/username/password is incorrect.</h3>
<br/>Click here to <a href='login.php'>Login</a></div>";
}
}else{
?>
<div class="form">
<h1>Log In</h1>
<form action="" method="post" name="login">
<input type="text" name="user_ID" placeholder="User ID" required />
<input type="text" name="username" placeholder="Username" required />
<input type="password" name="password" placeholder="Password" required />
<input name="submit" type="submit" value="Login" />
</form>
<p>Not registered yet? <a href='registration.php'>Register Here</a></p>
</div>
<?php } ?>
</body>
</html>
这是db.php
:
<?php
$connect=mysql_connect("localhost","root","");
if(!$connect)
{
echo "Error".mysql_error();
}
$db=mysql_select_db("attendance_db");
if(!$db)
{
echo "Error".mysql_error();
}
?>
感谢。我想知道什么是错的以及如何解决它?
答案 0 :(得分:1)
您的行看起来像是从某些代码复制而另外一些代码
$user_ID = mysqli_real_escape_string($con,$user_ID);
$con
是您的数据库连接,现在$con
未定义NULL
而mysqli
无法理解。
您还在使用mysql_connect
,但这不正确。您无法使用mysqli
和mysql
它们是两个不同的东西。我会通过mysqli
了解mysql
因为mysql
将很快就会被使用。
Mysqli_connect();
$mysqli = new mysqli($host, $user, $pass, $db);
if($mysqli->connect_error) die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());
//this will connect to database with mysqli if not it will stop and post error
您的代码$result = mysqli_query($con,$query) or die(mysql_error());
$rows = mysqli_num_rows($result);
在mysql
和mysqli
请查看此处并选择1,但不要混用不同的MySQL API。
http://php.net/manual/en/book.mysqli.php(首选)
http://php.net/manual/en/book.mysql.php(自PHP 7起已弃用并删除)