未定义的变量:登录页面中的错误

时间:2014-05-22 03:51:59

标签: php

有没有办法在登录页面上修复未定义的变量?我无法通过参考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>

4 个答案:

答案 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