if 语句不起作用 php

if statement not working php

我有 php,它由一个 if 语句和几个 elseif 语句组成。出于某种原因,我无法将 if 语句设为 return 真值并输出相应的消息。它与(我认为)$_POST 方法无关,因为所有 elseif 语句都使用它们的 $_POST 方法。如果在相应字段中未输入任何内容,我希望 if 语句 return 为真值。

if(!isset($_POST['phpro_username'],$_POST['phpro_password'], 
        $_POST['phpro_password1']))
{
    $message = 'Please enter a valid username and password';
}
/*check to make sure the form is the one 
 * from the browser*/
elseif ($_POST['form_token'] != $_SESSION['form_token'])
{
    $message = 'Invalid Form Submission';
}
elseif (strlen($_POST['phpro_username']) > 20 || 
        strlen($_POST['phpro_username']) < 4 ) 
{
    $message = 'Username Invalid';
}

在此之后还有一些其他的 elseif 语句,如果任何 elseif 语句不正确,那么我会得到正确的消息。它只是第一个不起作用的 if 语句。这是我发布变量的代码 (password/username)

<form id="signup_form" action="adduser_submit.php" method="post">
<fieldset>
<p class="loginfield" id="Username">
<label for="phpro_username">Create Username</label><br>
<input type="text" id="phpro_username" name="phpro_username" value="" maxlength="20" />
</p>

<p class="loginfield" id="Password">
<label for="phpro_password">Create Password</label><br>
<input type="text" id="phpro_password" name="phpro_password" value="" maxlength="20" />
</p>

<p class="loginfield" id="Re-enter Password">
    <label for="phpro_password1">Re-enter Password</label><br>
<input type="text" id="phpro_password1" name="phpro_password1" value="" maxlength="20" />
</p>

<p>
<input type="hidden" name="form_token" value="<?php echo $form_token; ?>" />

<div id="submit_button" >
<input type="submit" value="→ Sign Up" />
</div>
</p>

</fieldset>
</form>

提前致谢

我认为您的问题是 isset 不是您期望的那样。如果您发送包含空字段的表单,它们仍将设置在 $_POST.

您想检查它们是否 empty:

if(empty($_POST['phpro_username']) || empty($_POST['phpro_password']) || empty($_POST['phpro_password1'])) {
    //...
}