PHP Form не авторизуется и переходит на следующую страницу

0

Я столкнулся с другой проблемой с моим сайтом, с которым я не могу обойтись.

Я пытаюсь сделать это, когда администратор войдет в систему, он будет отправлен на страницу администратора, но по какой-то причине, когда я ввожу правильные данные в журнал и нажмите кнопку отправки, он просто возвращает меня в журнал администратора снова.

Вот Гьязо моей проблемы

https://gyazo.com/34f133fea4b20ec285ee7ff491053145

<!DOCTYPE html>
<html lang="en" class="no-js">

<head>
  <meta charset="UTF-8">
  <title>Login</title>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js" type="text/javascript"></script>

<link href='https://fonts.googleapis.com/css?family=Ubuntu:400,700' rel='stylesheet' type='text/css'>
 <link rel="stylesheet" href="https://s3-us-west-2.amazonaws.com/s.cdpn.io/148866/reset.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css">


      <link rel="stylesheet" href="css/style.css">


</head>

<body>

  <body>
<main id="cd-main-content">
    <section id="cd-intro">


<h1>Admin Log In</h1>

        <header class="cd-header">

        <?php
require('db.php');
session_start();
// If form submitted, insert values into the database.
if (isset($_POST['username'])){
        // removes backslashes
    $adminusername = stripslashes($_REQUEST['adminusername']);
        //escapes special characters in a string
    $adminusername = mysqli_real_escape_string($con,$adminusername);
    $adminpassword = stripslashes($_REQUEST['adminpassword']);
    $adminpassword = mysqli_real_escape_string($con,$adminpassword);
    //Checking is user existing in the database or not
        $query = "SELECT * FROM 'admin' WHERE username='$adminusername'
and password='".md5($adminpassword)."'";
    $result = mysqli_query($con,$query) or die(mysql_error());
    $rows = mysqli_num_rows($result);
        if($rows==1){
        $_SESSION['username'] = $adminusername;
            // Redirect user to admin page /////////////////////////////////////////////////////////////////////
        header("Location: adminpage.php");
         }else{
    echo "<div class='form'>
<h3>Username/password is incorrect.</h3>
<br/>Click here to <a href='admin.php'>Login</a></div>";
    }
    }else{
?>
<div class="form">

<form action="" method="post" name="login">
<input type="text" name="adminusername" placeholder="Username" required />
<input type="password" name="adminpassword" placeholder="Password" required />
<input name="submit" type="submit" value="Login" />
</form>
</div>
<?php } ?>
            <a class="cd-menu-trigger" href="#main-nav">Menu<span></span></a>
        </header>
        <div class="cd-blurred-bg"></div>
    </section> <!-- cd-intro -->
</main>

<div class="cd-shadow-layer"></div>

<nav id="main-nav">
    <ul>
        <li><a href="#0"><span>Login</span></a></li>
        <li><a href="#0"><span>What On</span></a></li>
        <li><a href="#0"><span>Favourites</span></a></li>
        <li><a href="#0"><span>About</span></a></li>
        <li><a href="admin.php"><span>Admin</span></a></li>
    </ul>
    <a href="#0" class="cd-close-menu">Close<span></span></a>
</nav>
</body>
  <script src='js/jquery.min.js'></script>
<script  src="js/index.js"></script>
</body>
</html>
  • 0
    Не используйте полоски. «Не работает» - не полезная диагностика. Вы не можете изменить заголовки после вывода тела. Если бы ваши сообщения об ошибках / протоколирование были правильно настроены, php сказал бы вам это уже. Пожалуйста, прочитайте FAQ о MCVE
  • 0
    после отправки какое значение вы получите в нем $ adminusername ??????
Показать ещё 1 комментарий
Теги:
login
phpmyadmin

3 ответа

0

сначала я отлаживаю var_dump ($ _ POST) и вижу, что вы получаете. Я бы поспорил, что, поскольку у вас нет идентификатора, заданного для имени входного значения, он не работает. Если что-либо, проверяющее ISSET ($ _ POST ['username']), никогда не будет работать, потому что у вас нет набора для этого имени.

var_dump ($ _ POST) и посмотреть, что вы получаете. Если не добавить ID = 'имя пользователя' на вход

0

попробуй это :-

if (isset($_POST['submit'])){
  // rest of code...
}
0

Ты делаешь:

if (isset($_POST['username'])) {
     //...
}

Попробуй это

if (isset($_POST['adminusername'])) {
    //...
}

В качестве примечания, я предлагаю вам попробовать использовать фреймворк, например, laravel.

  • 0
    К сожалению, это не сработало, и из-за того, что это был мой первый семестр, нам сказали, что пока не следует использовать каркасную конструкцию, чтобы все казалось «простым».

Ещё вопросы

Сообщество Overcoder
Наверх
Меню