有没有办法在登录页面上修复未定义的变量?我无法通过参考php手册来解决它。我该怎么做才能修复($ error)。这是我在html页面顶部的登录脚本和未定义的变量代码:
<?php
include("dbconnect.php");
if (!isset($_SESSION)) {
session_start();
}
if(isset($_SESSION['loggedin']) && $_SESSION['loggedin']=='yes'){
// logged in
header("location: index.html");
exit();
}
/* check to see if user attempted logging in */
if($_GET["atmpt"] != NULL){
if($_GET["atmpt"] == 2){
// forgotten password
$error .= "Did you forget your password?<br>";
}
/* get username and password */
$username = $_POST["username"];
$password = $_POST["password"];
/* MySQL Injection prevention */
$username = mysqli_real_escape_string($mysqli, stripslashes($username));
$password = mysqli_real_escape_string($mysqli, stripslashes($password));
/* check for user in database */
$query = "SELECT * FROM member WHERE username = '$username' AND password = '$password'";
$result = mysqli_query($mysqli, $query);
$count = $result->num_rows;
if($count > 0){
//successfully logged in
$_SESSION['username']=$username;
$_SESSION['loggedin']='yes';
header("Location: index.html");
exit();
} else {
// Login Failed
$error .= "Wrong Username or Password";
$_SESSION['loggedin']='no';
$atmpt = 2;
}
} else {
$atmpt = 1;
}
?>
注意:未定义的变量:第111行/home/tz005/public_html/COMP1687/login.php中的错误
<span><?php echo($error) ?></span>
答案 0 :(得分:2)
有没有办法在登录页面上修复未定义的变量?
是。您的未定义变量为$error
,因此在脚本顶部为其指定一个默认值:
$error = '';
答案 1 :(得分:1)
试试这个
<?php
include("dbconnect.php");
if (!isset($_SESSION)) {
session_start();
}
if(isset($_SESSION['loggedin']) && $_SESSION['loggedin']=='yes'){
// logged in
header("location: index.html");
exit();
}
/* check to see if user attempted logging in */
if($_GET["atmpt"] != NULL){
if($_GET["atmpt"] == 2){
// forgotten password
$error = "Did you forget your password?<br>";
}
else
{
$error = "";
}
/* get username and password */
$username = $_POST["username"];
$password = $_POST["password"];
/* MySQL Injection prevention */
$username = mysqli_real_escape_string($mysqli, stripslashes($username));
$password = mysqli_real_escape_string($mysqli, stripslashes($password));
/* check for user in database */
$query = "SELECT * FROM member WHERE username = '$username' AND password = '$password'";
$result = mysqli_query($mysqli, $query);
$count = $result->num_rows;
if($count > 0){
//successfully logged in
$_SESSION['username']=$username;
$_SESSION['loggedin']='yes';
header("Location: index.html");
exit();
} else {
// Login Failed
$error .= "Wrong Username or Password";
$_SESSION['loggedin']='no';
$atmpt = 2;
}
} else {
$atmpt = 1;
}
?>
答案 2 :(得分:0)
您必须先初始化$ error。
将$error='';
置于$error .= "Did you forget your password?<br>";
现在尝试将错误的当前值与“#34”连接起来;您是否忘记了密码?&#34;并且因为现在有错误的当前值,因为它没有被初始化或之前被赋予另一个值,因此抛出和未定义的变量错误。
答案 3 :(得分:0)
我会 clear the cache 在终端中使用以下命令:
php artisan config:cache