【问题标题】:Verify email with codeigniter使用 codeigniter 验证电子邮件
【发布时间】:2017-09-26 16:53:05
【问题描述】:

如何使用 codeigniter 验证电子邮件地址?刚翻了说明书,没找到。

对于电子邮件验证,我指的是您在社区论坛上注册时看到的完全相同的验证。

提前致谢!

【问题讨论】:

    标签: php codeigniter email-verification


    【解决方案1】:

    使用Email Class 发送电子邮件。该电子邮件可能包含带有“密钥”的链接,该链接是随机的和类似哈希的,例如 5dfg7898ssdf(我做了一个 :))。链接可以指向:example.com/verify/user/5dfg7898ssdf 然后在一个名为“verify”的codeigniter控制器中,放置这个函数(只是一些快速代码):

    function user($key = NULL)
    {
     if($key)
     {
      // Find key in database
      // If it exists, then mark
      // the corresponding user as "activated"
     }
    }
    

    【讨论】:

    • 这是我一直在做的事情。通过强制用户查看电子邮件来验证电子邮件是否存在!
    • 是的,我也会这样做。为该用户创建一个唯一的验证密钥,将其作为“用户”表中的字段存储在数据库中,并在您的“用户”控制器中创建一个名为“verify($key)”或类似名称的公共方法。然后在您的电子邮件中,将用户链接到:example.com/user/verify/520592u02492089
    • 向数据库写入唯一键是最好的方法,但如果由于某种原因您不想使用数据库字段,那么最好使用基于盐渍的 md5 哈希在用户的电子邮件或用户名上,而不是像 Matthew 似乎建议的那样使用静态密钥。
    • @Calle 我没有提到拥有“静态”密钥。它必须是动态的(它必须验证特定的电子邮件,而不仅仅是任何电子邮件)。
    • 好的,我已经完成了所有工作,但这里不起作用的是控制器将如何验证,功能用户被调用。我可以将链接发送给用户电子邮件,当他们单击它时,会出现链接,但是它将如何将控制权传递给我们的控制器功能。我想我们需要为它做路由。它对我来说就像这样工作。
    【解决方案2】:
    function verify($verificationText=NULL){    
    
    $noRecords = $this->HomeModel->verifyEmailAddress($verificationText);   
    
    if ($noRecords > 0){ 
        $error = array( 'success' => "Email Verified Successfully!");   
    }else{ 
        $error = array( 'error' => "Sorry Unable to Verify Your Email!");   
    } 
        $data['errormsg'] = $error; 
        $this->load->view('index.php', $data);  
    }
    

    【讨论】:

      猜你喜欢
      • 2017-11-28
      • 2020-08-08
      • 2012-11-03
      • 1970-01-01
      • 1970-01-01
      • 2013-01-08
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      相关资源
      最近更新 更多