使用PHP验证类型密码输入

时间:2015-11-06 08:14:25

标签: php

您好我正在创建一个注册表单并使用PHP我想检查用户输入是否有效。我可以查看电子邮件,用户名,但我无法检查密码字段。

我的PHP代码:

<?php 

if(isset($_POST['registerButton'])){



if(isset($_POST['regEmail'])){
        $regEmail = $_POST['regEmail'];
    }
    else{
        $regEmailError = 'Please Fill in Email field';
    }

    if(isset($_POST['regUsername'])){
        $regUsername = $_POST['regUsername'];
    }
    else{
        $regUsernameError = 'Please Fill in Username field';
    }

    if(($_POST['regPassword']) and ($_POST['regPassword2'])){


        if( isset($_POST['regPassword']) == isset($_POST['regPassword2']) ){
            $regPassword = $_POST['regPassword'];
        }
        else{
            $regPasswordError = 'Passwords does not match!';
        }
    }
    else{
        $regPasswordError = 'Please Fill in Password fields';
    }
}

?>

我的HTML代码:

<input class="form-control " name="regEmail" type="email" placeholder="Email" required autofocus>

<input class="form-control " name="regUsername" type="text" placeholder="Username" required >

<input class="form-control " name"regPassword" type="password" placeholder="Password" required >

<input class="form-control " name="regPassword2" type="password" placeholder="Confirm Password" required>

我已经意识到如果我在下一行之前放置一个echo "Success";我可以看到打印但是如果我将echo "Success;放在下一行之后我就看不到输出所以我在这里做错了什么也弄不清楚,一切似乎对我来说都很好。非常感谢任何帮助。

if(($_POST['regPassword']) and ($_POST['regPassword2'])){

编辑:如果我将检查密码字段的完整if语句替换为:

if(isset($_POST['regPassword'])){
echo "Hello World";
}

它仍然没有显示任何内容..

编辑2:我刚解决了这个问题,问题是我错过了&#34; =&#34;在名称值

之后的HTML代码中

2 个答案:

答案 0 :(得分:1)

更改为:

if (isset($_POST['regPassword']) && isset($_POST['regPassword2'])) {
    if ($_POST['regPassword'] == $_POST['regPassword2'] ){
        $regPassword = $_POST['regPassword'];
    } else {
        $regPasswordError = 'Passwords does not match!';
    }
}

答案 1 :(得分:0)

您目前比较两个isset值,它们始终为true,因为它们在之前的条件中为真。 只需删除isset语句即可比较实际值

if(($_POST['regPassword']) and ($_POST['regPassword2'])){
    if($_POST['regPassword'] == $_POST['regPassword2']){
        $regPassword = $_POST['regPassword'];
    }
    else{
        $regPasswordError = 'Passwords does not match!';
    }
}
else{
    $regPasswordError = 'Please Fill in Password fields';
}

你还应该考虑一个带来复杂性的辅助函数

function httppost($name) {
   return isset($_POST[$name]) ? trim($_POST[$name]) : false;
}

这样你可以使用

$regPassword = httppost('regPassword');
$regPassword2 = httppost('regPassword2');
if($regPassword && $regPassword2){
    if($regPassword != $regPassword2){
        $regPasswordError = 'Passwords does not match!';
        $regPassword = false;
    }
} else {
    $regPasswordError = 'Please Fill in Password fields';
}