0

我正在寻找一种方法来检查用户是否在登录脚本中输入了某些内容。我试过 if (!empty($_POST)) 了,但是这个方法失败了。由于我是 php 新手,我不确定要使用什么其他干净的方法。

<?php
    if ( !empty($post)){
    header("Location:login.php");
    echo"Invalid Username or Password";
    }
?>
<html>
    <head>
        <title>Administrator Login Page</title>
        <style type="text/css">
            @import "style.css";
        </style>
    </head>
    <body>
        <h1>Administrator Login Page</h1>
        </br></br></br></br></br></br></br>
        <form action="admin_verify.php" method="post">
            User Name:
            <input type="text" name="admin_name" />
            </br></br>
            Password:&nbsp;&nbsp;
            <input type="password" name="admin_password" />
            </br></br>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <input type="submit" value="Login"/>
            <input type="reset" value="Reset"/>
        </form>
    </body>
</html>
4

3 回答 3

2

你应该把这段代码放在admin_verify.phpnot inlogin.php

<?php
    if ( !empty($post)){
        header("Location:login.php");
        exit;        
    }
?>

更好的是,您应该检查所有输入或不输入的字段

if( !isset($_POST['admin_name'], $_POST['admin_password'] )) {
     header("Location:login.php");
     exit; 
}

如果您想将一些消息发送回登录页面,您可以在 get 参数中发送该消息或使用会话

header("Location:login.php?msg=Invalid Username or Password");
exit; 
于 2013-02-05T15:52:25.270 回答
0

您可能希望在此页面上检查用户名和密码,而不是简单地检查表格是否已填写。如果您想保留它login.php,请将内容保存$_POST$_SESSION.

<?php
if (!empty($_POST)){
    if (strlen($_POST["admin_name"]) > 0 && strlen($_POST["admin_password"]) > 0) {
        header("Location:login.php");
        exit;
    } else {
        $not_filled = true;
    }
}
?>
<html>
<head>
<title>Administrator Login Page</title>
<style type="text/css">
@import "style.css";
</style>
</head>
<body>
<h1>Administrator Login Page</h1>
</br></br></br></br></br></br></br>
<?php if ($not_filled) echo"Invalid Username or Password"; ?>
<form action="admin_verify.php" method="post">
User Name: <input type="text" name="admin_name" />
</br></br>
Password:&nbsp;&nbsp; <input type="password" name="admin_password" />
</br></br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <input type="submit" value="Login"/>
    <input type="reset" value="Reset"/>
</form>
</body>
</html>
于 2013-02-05T15:53:44.797 回答
0

尝试

if((isset($_POST['admin_name']) && isset($_POST['admin_password']))
{
   //INSTRUCTION
}
于 2013-02-05T15:55:20.600 回答