PHP Form无法登录并移至下一页

时间:2018-07-01 23:57:58

标签: php mysql login phpmyadmin

我的网站遇到另一个无法解决的问题。

我正在尝试做到这一点,因此当管理员登录时,他将被带到管理页面,但是由于某些原因,当我在登录名中输入正确的详细信息并按下“提交”按钮时,它使我回到管理员再次登录页面。

这是我遇到的问题

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's 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>

3 个答案:

答案 0 :(得分:0)

您正在做:

name

尝试一下

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

请注意,我建议您尝试使用laravel之类的框架。

答案 1 :(得分:0)

首先,我将通过var_dump($ _ POST)进行调试,看看会得到什么。我敢打赌,由于您没有为输入值名称设置ID,因此无法正常工作。如果没有任何检查ISSET($ _ POST ['username'])的工作,因为您没有该名称的可变集,将永远无法工作。

var_dump($ _ POST)看看您得到了什么。如果没有,请在输入中添加ID =“用户名”

答案 2 :(得分:0)

尝试:-

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