PHP检查函数

PHP检查函数,php,function,Php,Function,我有一个检查功能: function checkCandidateEmail($email) { $email = $_POST; if($email) { $candemail = (SQL); if(isset($candemail['email'])) { return TRUE; } else {

我有一个检查功能:

function checkCandidateEmail($email)
    {
         $email = $_POST;

        if($email)
        {
            $candemail = (SQL);
            if(isset($candemail['email']))
            {
              return TRUE;
            } else {
              return FALSE;
            }

            return $canEmailCheck;
        }
    }

我已经开始创建一个函数,但是我得到了空值。请下次详细说明您的问题。如果$\u POST与SQL查询或随SQL查询传递的参数一起传递,我不确定您试图比较什么。我认为是前者

function checkCandidateEmail($email)
    {
         $email = $_POST; // being immediately overwritten - redundant argument. 

        if($email) // Since $email isn't an optional argument, you'll get a PHP warning if it is missing, making this check confusing.
        {
            $candemail = (SQL); // Evaluating a constant? this will be bool 
            if(isset($candemail['email'])) // Since $candemail is a bool and not an array, this will never return true
            {
              return TRUE;
            } else {
              return FALSE;
            }  // this entire if/else block can be simplified to this: return (isset($candemail['email']));

            return $canEmailCheck; // this is an undefined variable and will never get returned anyway because of the above return statements.
        }
    }
如果来自该SQL表行的电子邮件等于提交的电子邮件,则返回TRUE。否则,返回FALSE。非常简单的版本。现在它还会检查用户是否提供了电子邮件:

function checkCandidateEmail()
    {
    if (!$_POST['email']) echo "Error, please provide an email";
    else
      {
      $candemail = (SQL);   // Return a row from a query
      return $candemail['email'] == $_POST['email'];
      }
    }

如果传递了参数,则将其与数据库进行比较。如果未通过,则将提交的$_POST['email']与数据库进行比较

function checkCandidateEmail($email=null)
    {
    $candemail = (SQL);   // Return a row from a query
    if (!$email) $email = $_POST['email'];
    return $candemail['email'] == $email;
    }
注意:在这两种情况下,您都必须根据您的数据库使用
SQL
替换正确的字符串和函数

function checkCandidateEmail($email=null)
    {
    $candemail = (SQL);   // Return a row from a query
    if (!$email) $email = $_POST['email'];
    return $candemail['email'] == $email;
    }

注意2:确保查询返回电子邮件,因为此简单代码不会检查两个字符串是否都为空。

什么是
(SQL)
?这是常数吗?我认为它们不能是数组。您接受$email作为已传递的参数,然后立即用$email=$\u POST;(POST数组)。这真的是你想做的吗?$\u POST实际上是否包含任何内容?如果启用$\u POST,则返回空值empty@Jess-$\u POST(除非您正在处理PHP超全局函数,$\u POST是一个数组,其中一个或多个元素可能包含电子邮件地址…但它显然不是您认为的那样如果($email)check不是完全疯狂的话--可以调用
checkcandidatemail(false)
检查候选邮件(“”
我想,但它被重新分配为
$\u POST
所以如果(!empty($\u POST))您可以
返回$candemail['email']==$email
,不需要
?:
:-PI只是想问一个关于类似案例的问题。我在写其他代码时意识到了这一点,回来后看到了你的评论。为了亲吻,我编辑了它。