【问题标题】:Getting an error: object not found error 404收到错误:找不到对象错误 404
【发布时间】:2018-12-09 05:19:37
【问题描述】:

我一直在使用 php 和 mysqli 开发管理登录页面。当我尝试使用本地主机时,出现此错误: 找不到对象! 在此服务器上找不到请求的 URL。如果您手动输入了 URL,请检查您的拼写并重试。

如果您认为这是服务器错误,请联系网站管理员。

错误 404 本地主机 Apache/2.4.29 (Win32) OpenSSL/1.1.0g PHP/7.2.0

我检查了路径,没有任何问题,所以我不知道为什么它不会显示。

她是我的登录信息:

localhost:10080/pinkys_pearls/storeadmin/admin_login.php

一切都在 htdocs 文件夹中(使用 Xampp),但仍然无法弄清楚。这是我正在使用的代码:

       <?php

session_start();

if(isset($_POST['submit'])) {

    include "../storescripts/connect_to_mysql.php";
    $con = mysqli_connect("$db_host","$db_username","$db_pass","$db_name");
    $username = mysqli_real_escape_string($con, $_POST['username']);
    $password = mysqli_real_escape_string($con, $_POST['password']);

    //Error handler
    //Check for empty fields
    if (empty($username) || empty($password)) {
        header("Location: ../admin_login.php?admin_login=empty");
        exit();
    } else {
        //Check if charactors are valid
        if (!preg_match("/^[a-zA-Z0-9]*$/", $username) || !preg_match("/^[a-zA-Z0-9]*$/", $password)) {
            header("Location: ../admin_login.php?admin_login=invalid");
        exit();
        } else {
            $sql = "SELECT * FROM admin WHERE username = '$username'' AND password = '$password'";
            $result = mysqli_query($con, $sql);
            $resultCheck = mysqli_num_rows($result);
            if ($resultCheck < 1) {
                header("Location: ../admin_login.php?admin_login=invalid");
                exit();
            } else {
                if ($row = mysqli_fetch_assoc($result)) {

                    $_SESSION['manager'] = $row['username'];
                    $_SESSION['manager_pwd'] = $row['password'];
                    header("Location: admin_index.php"); //relocate to index 
 page
                    exit();
                } else{
                    echo 'username and password invalid. Please try again';
                }
            }
        }
    }

} else{
    header("Location: ../admin_login.php");
    exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Admin Log In </title>
<link rel="stylesheet" href="../style.css" type="text/css" media="screen" />
</head>

<body>
<div align="center" id="mainWrapper">
  <div id="pageContent"><br />
    <div align="left" style="margin-left:24px;">
      <h2>Please Log In To Manage the Store</h2>
      <form id="form1" name="form1" method="POST" action="admin_login.php">
        User Name:<br />
          <input name="username" type="text" id="username" size="40" />
        <br /><br />
        Password:<br />
       <input name="password" type="password" id="password" size="40" />
       <br />
       <br />
       <br />

         <input type="submit" name="button" id="button" value="Log In" />

      </form>
      <p>&nbsp; </p>
    </div>
  <br />
  <br />
  <br />
  </div>
</div>
</body>
</html>

我已经为此进行了一百次寻找解决方案。谁能告诉我如何解决这个问题?

谢谢。

【问题讨论】:

    标签: php mysqli


    【解决方案1】:

    您提交的按钮名称是button

    <input type="submit" name="button" id="button" value="Log In" />
    

    所以你必须用button检查条件

    if(isset($_POST['button'])) {
         //code goes here
    }
    else{
         // here....  
    }
    

    type 属性指定要显示Read more&lt;input&gt; 元素的类型。 和 name 属性指定 &lt;input&gt; 元素 Read More 的名称。

    【讨论】:

    • 我按照你们说的做了,可以登录了。非常感谢!
    • @SamuelJaycox Plz,如果您从我的回答中找到解决方案,请接受此回答! *.com/help/someone-answers谢谢
    【解决方案2】:

    当然,当您运行此页面时,如果未设置 $_POST['submit'],它会将您重定向到 ../admin_login.php。因此,如果您收到此错误,则在您的服务器的适当位置找不到页面admin_login.php。不要在else 部分重定向,因为在您首次加载页面时永远不会设置$_POST['submit']

    这就是冲突。

    if(isset($_POST['submit'])) {
        //your code
    }else{ 
        header("Location: ../admin_login.php");
        exit();
    }
    

    【讨论】: