PHP检查另一个页面传递的空字段

时间:2017-09-22 19:36:02

标签: php session-variables

我需要检查另一个页面传递的用户名和密码是否为空,但这不起作用,我无法理解原因。用户名和密码由另一个页面中的表单通过POST方法传递。

session_start();
if(!(isset($_SESSION['username'])) && !(isset($_SESSION['password']))){
        $_SESSION['username']=trim($_POST['username']); 
        $_SESSION['password']=$_POST['password'];
}

[...]

$username = $_SESSION['username'];
$password = $_SESSION['password'];
if($username=="" || $password=="")
{
    echo "<script> 
        alert('You need to fill all fields!'); 
        window.location.assign('reg.php');
        </script>";
}

感谢。

编辑。 现在有了这个:

if(is_null($username) || is_null($password))
{
    echo "<script> 
        alert('You need to fill all fields!'); 
        window.location.assign('reg.php');
        </script>";
}
else
{
    if(strlen($username)<5 || strlen($password)<5)
    {
        echo "<script> 
        alert('Fiels must be at least of 5 character!'); 
        window.location.assign('reg.php');
        </script>";
    }

它直接跳转到第二条错误消息,&#39; Fiels必须至少为5个字符!&#39;。 为什么? 感谢。

2 个答案:

答案 0 :(得分:2)

你可以检查空()。并且您可以使用标头位置而不是javascript重定向。

$username = $_SESSION['username'];
$password = $_SESSION['password'];
if(empty($username) || empty($password))
{
header("Location: reg.php");
}

答案 1 :(得分:1)

您现在正在检查用户名和密码是否为空。 $username = ""

但是当有人跳过输入时,它为空。所以你必须检查一下。您可以使用is_null()函数执行此操作。

现在你做:is_null($username)