Получение ошибки: объект не найден ошибка 404 - PullRequest
0 голосов
/ 30 июня 2018

Я работал на странице входа администратора, используя php и mysqli. Когда я пытаюсь использовать свой локальный хост, я получаю эту ошибку: Объект не найден! Запрашиваемый URL не найден на этом сервере. Если вы ввели URL-адрес вручную, проверьте правильность написания и повторите попытку.

Если вы считаете, что это ошибка сервера, обратитесь к веб-мастеру.

Ошибка 404 локальный Apache / 2.4.29 (Win32) OpenSSL / 1.1.0g PHP / 7.2.0

Я проверил путь и ничего плохого, поэтому я не могу понять, почему он не появится.

Она - мой логин:

локальный: 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 голосов
/ 30 июня 2018

Вы отправляете имя кнопки button

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

Таким образом, вы должны проверить состояние с помощью button

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

Атрибут type указывает тип элемента <input> для отображения Подробнее . и атрибут name указывает имя элемента <input> Подробнее .

0 голосов
/ 30 июня 2018

Конечно, когда вы запустите эту страницу, она будет перенаправлять вас на ../admin_login.php, если $_POST['submit'] не задано. Так что, если вы получаете эту ошибку, страница admin_login.php не найдена в соответствующем месте на вашем сервере. Не перенаправляйте в раздел else, так как $_POST['submit'] никогда не будет установлен при первой загрузке страницы.

Вот конфликт.

if(isset($_POST['submit'])) {
    //your code
}else{ 
    header("Location: ../admin_login.php");
    exit();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...