2012-01-10 58 views
1
<?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; 
} 
?> 

我就上线得到一个语法错误在哪里?>是..最后一行的PHP语法错误?

而且,只是随机侧面说明,任何人都可以教我如何插入到这一点我的代码?

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

它只是

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

或已宣告变量运行呢?

+0

[if!isset multiple OR conditions](http://stackoverflow.com/questions/8784584/if-isset-multiple-or-conditions) – 2012-01-10 02:29:33

+1

作为个人偏好这些是我考虑在下一行中写入开启和关闭支撑的优点,以便帮助我的眼睛追踪哪个开放支撑与哪个关闭支撑配对。 – ianace 2012-01-10 02:37:01

回答

5

您在第一个if区块中缺少末尾大括号}

+0

+1当你在文件的最后一行出现错误时,你几乎可以假设它在某处丢失了。可能每次我在文件的最后一行看到错误时,它都是一个缺失的} – Umbrella 2012-01-10 02:30:54

0

没有脚本的逻辑下,你有五个括号{四个闭括号}

0

你打开两个作用域(与{)围绕if (!isset($_POST['ign'], $_POST['email']))线,所以你需要关闭晃来晃去一个地方,你需要。

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'])中说,是错误的...发布更多的细节你需要什么,我会更新我的答案。