收到错误:找不到对象错误404

时间:2018-06-30 03:21:07

标签: php mysqli

我一直在使用php和mysqli管理登录页面。当我尝试使用本地主机时,出现以下错误: 找不到对象! 在此服务器上找不到请求的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>

我已经搜索了一百次以上了。有人可以告诉我如何解决该问题吗?

谢谢。

2 个答案:

答案 0 :(得分: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<input>元素的类型。 并且name属性指定<input>元素Read More的名称。

答案 1 :(得分:0)

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

这是冲突。

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