专注于高品质PHP技术等信息服务于一体 [STIEMAP] [RSS]

百度提供的广告:
PHP
当前位置:首页 > 技术文档 > PHP >  > 
PHP 通过邮件找回密码源码

  Thinkphp 发送邮件找回密码源码

  public function verify()
    {
        $type     =     isset($_GET['type'])?$_GET['type']:'gif';
        import("@.ORG.Image");
        Image::buildImageVerify(4,1,$type);
    }
   
    public function reset()
    {
        $username = $_GET['username'];
        $key = $_GET['key'];
        if(S($username) == $key)
        {
            $_SESSION[C('USER_NAME')] = $username;
            //可以修改密码了跳转
        }
        else
        {
            showMsg('此重置密码链接无效,请确认后在试!','/');
        }
    }
   
    public function getpasswd()
    {
       
        if(md5($_POST['verify'])    != $_SESSION['verify']) {
            showMsg('验证码错误!');
        }

        $username = dhtml($_POST['name']);
        $email = $_POST['email'];
        $model = M('Clubber');
        $map['user_name'] = $username;
        $clubber = $model->where($map)->find();
        if($clubber)
        {
            if($clubber['user_email'] == $email)
            {
                import("ORG.Net.Smtp");
                $host = $_SERVER['HTTP_HOST'];
                $key = md5(time());
                $reset_url = "http://$host/index.php/Rpwd/reset/username/$username/key/$key";
                $mail_body = "请点击以下链接重置密码,以便激活您的账号:<a href='$reset_url'>$reset_url</a>";
                $smtp = new smtp(C('MAIL_SMTP'),25,true,C('MAIL_USER'),C('MALL_PWD'),C('MAIL_USER'));
                $smtp->debug = true;
                if($smtp->sendmail($email, C('MAIL_USER'), '好开始','好开始-重置密码',$mail_body,'HTML'))
                {
                    S($username,$key);
                    $this->display('success');
                }
                else
                {
                    showMsg('服务器繁忙,请稍侯在试!');
                }
            }
            else
            {
                showMsg('请重新输入邮箱,邮箱不正确!');
            }
        }
        else
        {
            showMsg('此用户不存在!');
        }
    }