最后一行的PHP语法错误?

时间:2012-01-10 02:23:44

标签: php syntax validation

<?php
if (!isset($_POST['ign'], $_POST['email'])) {
    if($_POST['ign'] && $_POST['email']){
    echo "Please fill out all of the fields!";
        die;
}

if (empty($_POST['ign']) || empty($_POST['email'])) { 
    echo ("Please enter all of the values!"); 
    die;
}

if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
    $email = $_POST['email'];
    echo ("Thanks, " . htmlentities($_POST['ign']) . ", you will recieve an email when the site is complete!");

}

else {
    echo "Your email was invalid!";
    die;
}
?>

我在最后一行收到语法错误?&gt;是..

另外,只是一个随机的旁注,任何人都可以教我如何将其插入到我的代码中吗?

$valid = (bool)preg_match('/^[a-zA-Z0-9]{1,30}$/', $_POST['username']);

只是

if ($valid == TRUE) {
////////
}

或者声明该变量已经在运行吗?

4 个答案:

答案 0 :(得分:5)

您在第一个}区块中缺少结束大括号if

答案 1 :(得分:0)

如果不遵循脚本的逻辑,则有五个开括号{和四个闭括号}

答案 2 :(得分:0)

您在{行周围打开两个范围(if (!isset($_POST['ign'], $_POST['email']))),因此您需要在需要的地方关闭悬空范围。

答案 3 :(得分:0)

您可以从上一个问题Validate Email Error获取代码,并添加用户名长度的测试,并检查用户名是否为字母数字,如下所示:

<?php
if (isset($_POST['ign'], $_POST['email'])) {//do the fields exist
    if($_POST['ign'] && $_POST['email']){ //do the fields contain data
        if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {//is the email address of valid form
            if(ctype_alnum($ign) && ($ign.length > 0) && ($ign.length <= 30)){//is ign alphanumeric and between 1 and 30 characters long
                echo ("Thanks, " . htmlentities($_POST['ign']) . ", you will recieve an email when the site is complete!");
            }
            else{
                echo ("Please enter a valid user name!");
            }
        }
        else{
            echo ("Please enter a valid email!");
        }
    }
    else {
        echo ("Please enter all of the values!");
    }
}
else {
    echo ("Error in form data!");
}
?>

注意:如果我假设$_POST['ign']是您在(bool)preg_match('/^[a-zA-Z0-9]{1,30}$/', $_POST['username'])行中的意思,那就错了...发布您需要的更多详细信息,我会更新我的答案。