PHP(!isset)会导致503错误吗?

时间:2018-06-19 04:08:53

标签: php html5 mysqli phpmyadmin

我正在开发一个涉及用户登录页面的小项目。我尝试使用会话变量来创建可以通过登录访问的特定用户页面。我遇到了两个问题:第一个是表单允许输入任何密码和用户名,即使它不正确。第二个问题是当我在个人用户页面上添加(!)到我的isset函数时,我收到503错误,它不会让我登录。如果我拿走(!),页面只是说我的" sess_user"变量未定义。

以下是登录的代码:

        <?php
    if(isset($_POST["submit"])) {
            if(!empty($_POST['username']) && !empty($_POST['password'])) {
              $user = $_POST['username'];
              $pass = $_POST['password'];
              $conn = new mysqli('localhost', 'root', '') or die (mysqli_error()); //Database connection
              $db = mysqli_select_db($conn, 'accounts') or die ("DB Error"); //Selecting particular database from PHPmyadmin
              //Selecting username & password from Database
              $query = mysqli_query($conn, "SELECT * FROM users WHERE username = '".$user."' AND password = '".$pass."'");
              $numrows = mysqli_num_rows($query);
              if($numrows !=0)
              {
                while($row = mysqli_fetch_assoc($query))
                {
                  $dbusername = $row['username'];
                  $dbpassword = $row['password'];
                }
                if($user == $dbusername && $pass == $dbpassword){
                  session_start();
                  $_SESSION['sess_user'] = $user;
                  //Redirect Browser
                  header("Location:personal.php");

                }
              }
              else{
                echo "Invalid Username or Password!";
              }
            }
    }


    ?>

以下是个人用户页面的代码:

    <?php
session_start();
if(!isset($_SESSION["sess_user"])){
  header("Location: confirm.php");
}else{
?>



<!DOCTYPE html>
<html>
<head>
  <title>Personal Page</title>
</head>
<h1>Welcome!</h1>
<p>Login Succesful</p>
<?=$_SESSION['sess_user'];?>!<a href="logout.php">Logout</a>
<body>
  </body>
</html>
<?php
}
 ?>

将(!)添加到isset时出错: enter image description here

没有(!)添加到isset的错误: enter image description here

注1:我知道任何人都可能指出的安全问题。这是我想要解决的问题。

注意2:忽略第二张照片上的黑色污迹。它保存个人信息,我不想经历更改文件路径的麻烦。

2 个答案:

答案 0 :(得分:1)

503 Service Unavailable错误是一个HTTP状态代码,表示该网站的服务器现在根本不可用。大多数情况下,它是因为服务器太忙或因为正在执行维护而发生的。 您可以轻松使用以下代码进行连接: -

$mysqli = new mysqli("localhost", "username", "password", "dbname");

<?php
    session_start();
    if(isset($_SESSION["sess_user])) {
?>
<!DOCTYPE html>   
<html>
    <head>
        <title>Personal Page</title>
    </head>
    <h1>Welcome!</h1>
    <p>Login Succesful</p>
    <a href="logout.php">Logout</a>
    <body>
    </body>
</html>

<?php
    } else {
        header("Location: confirm.php");
    }
?>

isset - 确定变量是否已设置且不为NULL

我认为isset与连接错误无关

答案 1 :(得分:0)

如果我的代码无法正常工作,我认为这不是问题。

<?php
$var1 = 'test';
if(!isset($var1)){
    echo 'There is a test';
}else{
    echo 'There is no test';
}
?>

您是否创建了confirm.php文件?