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

PHP checking empty fields passed by another page

我需要检查另一个页面传递的用户名和密码是否为空,但这不起作用,我不明白为什么。用户名和密码由另一个页面中的表单使用 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>";
    }

它直接跳转到第二条错误信息,'Fiels must be at least of 5 character!'。 为什么? 谢谢

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

但是当有人跳过输入时它是空的。所以你必须检查一下。您可以使用 is_null() 函数来做到这一点。

现在你可以:is_null($username)

你可以勾选empty()。您可以使用 header 位置而不是 javascript 重定向。

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