我想为我的网站登录并注册表格。每当我点击登录页面时,似乎我都有错误:
Undefined variable: mysqli and Fatal error: Call to a member function escape_string() on null
这是我的登录页面编码:
<?php
/* User login process, checks if user exists and password is correct */
// Escape email to protect against SQL injections
$email = $mysqli->escape_string($_POST['email']);
$result = $mysqli->query("SELECT * FROM login WHERE email='$email'");
if ( $result->num_rows == 0 ){ // User doesn't exist
$_SESSION['message'] = "User with that email doesn't exist!";
header("location: error.php");
}
else { // User exists
$user = $result->fetch_assoc();
if ( password_verify($_POST['password'], $user['password']) ) {
$_SESSION['email'] = $user['email'];
$_SESSION['first_name'] = $user['first_name'];
$_SESSION['last_name'] = $user['last_name'];
$_SESSION['active'] = $user['active'];
// This is how we'll know the user is logged in
$_SESSION['logged_in'] = true;
header("location: profile.php");
}
else {
$_SESSION['message'] = "You have entered wrong password, try again!";
header("location: error.php");
}
}
错误已开启:
$email = $mysqli->escape_string($_POST['email']);
需要一些帮助来发现此错误。
答案 0 :(得分:0)
问题是$ mysqli没有使用escape_string因为$ mysqli没有定义 顺便说一下,这是一种de declare $ mysqli
的方式$mysqli = mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}