2012-03-12 74 views
-2

好吧,所以我正在上传图片的网站......现在我正在为网站注册工作。它几乎完全写在PHP。我遇到的问题是在次要if语句的else语句中(从开始的语句)...有一个问题,我似乎无法找到解决方案。PHP代码不显示它应该是什么

下面是它做什么:

  • 检查是否电子邮件是有效的(如果不是它增加了错误文本到$errors阵列
  • 检查,看它是否比我想要的是什么更长长度为。
  • 检查是否电子邮件已经在数据库中通过另一个PHP脚本文件中一个单独的功能存在。

如果这些错误的存在,那么它是应该通过脚本底部的foreach声明来显示它们。但是,我的问题是......它不显示错误。事实上......除了它上面的标题之外,它将屏幕留空。

<?php 

    if (isset($_POST['register_email'], $_POST['register_name'], $_POST['register_password'])) { 

     $register_email = $_POST['register_email']; 
     $register_name = $_POST['register_name']; 
     $register_password = $_POST['register_password']; 

     $errors = array(); 

     if (empty($register_email) || empty($register_name) || empty($register_password)) { // **||** means "or" 

      $errors[] = 'All fields are required'; 

     } else { 

      if (filter_var($register_email, FILTER_VALIDATE_EMAIL) == false) { 
       $errors[] = 'Email address not valid';  
      } 

      if (strlen($register_email) > 255 || strlen($register_name) > 35 || strlen($register_password) > 35) { 
       $errors[] = 'One or more fields contains too many characters'; 
      } 

      if (user_exits($register_email)) { 
       $errors[] = 'That email has already been registered'; 
      } 

     } 


     if (!empty($errors)) { //If errors do exist 
      foreach($errors as $error) { 
       echo $error, '<br />'; 
      } 
     } else { 
      //register our user 
     } 

    } 

    ?> 

现在,我已经测试,以确保它不与功能(在问候了if (empty($register_email)...)问题的一件事是,我已经做到了这一点

if (filter_var($register_email, FILTER_VALIDATE_EMAIL) == false) { 
        $errors[] = 'Email address not valid'; 
           echo 'Email address is not valid';   
       } else { 
          echo 'Email address is valid'; 

而且它没有正常工作,它回应了正确的结果,但是当我尝试通过foreach语句(我必须这样做来显示多个错误)时,它不起作用。

PS我已去过3个不同的网站语法检查和一切签出好吧。 }

+2

错误日志中的任何内容?另外,user_exits($ register_email)是否是一个错字?代码中的函数名是否正确('user_exits' vs'user_exists')? – marramgrass 2012-03-12 23:55:23

+0

@marramgrass确实回答了我的问题,我在这里发表了一条评论,说他已经做了,但一定没有通过。而且,我说这个问题现在已经封闭了,因为问题已经解决了。如果问题得到解答,我们应该允许关闭这个问题,这样人们就不会不必要地降低人们的声誉。谢谢您的帮助。 – 2012-03-14 15:47:52

回答

1

尝试

if(count($errors) > 0) 

我不知道是否为空()在任何情况下工作。

+0

'empty()'确实在每种情况下都有效。 – nickb 2012-03-13 00:22:09