yii框架中邮箱激活(数字签名)

控制器:

//发送邮箱,激活账号
   public function actionEmail()
   {
        $email=Yii::$app->request->get(‘email‘);
        //数字签名
        $em_1=md5($email);

//邮箱发送
        $mail= Yii::$app->mailer->compose();   
        $mail->setTo($email);
        $mail->setSubject("激活邮箱");
        //发布可以带html标签的文本
        $mail->setHtmlBody("<a href=‘http://www.small2.com/backend/web/index.php?r=login/live&em_1=".$em_1."&email=".$email."‘>点击此链接</a>");  
        if($mail->send())  
            echo "success";  
        else  
            echo "false";   
        die(); //邮箱发送ok
   }
   //激活账号
   public function actionLive()
   {
      $email=Yii::$app->request->get(‘email‘);
      $em_1=Yii::$app->request->get(‘em_1‘);
      //echo $em_1;die;
      $em_2=md5($email);
      //echo $em_2;die;
      if($em_1==$em_2)
      {
          $res=Yii::$app->db;
          $data=$res->createCommand()->update("login",["status"=>1],["email"=>$email])->execute();
          if($data)
          {
            echo "<script>alert(‘激活成功,可登录‘);location.href=‘index.php?r=login/login‘</script>";
          }
          else
          {
             echo "<script>alert(‘激活失败‘);location.href=‘index.php?r=login/login‘</script>";
          }
      }
      else
      {
          echo "<script>alert(‘参数错误,重新激活‘);location.href=‘index.php?r=login/login‘</script>";
      } 
}

原理:(注册后原有默认原有状态status=0,激活后改为1,方可登陆。)

时间: 2024-10-25 17:28:52

yii框架中邮箱激活(数字签名)的相关文章

使用Yii框架中遇到的三个问题

以下由我们在信易网络公司开发项目的时候终结出的一些经验 1.main.php文件中欲引入全局变量的问题 还原一下此问题:在Yii框架中,main.php一般会作为整个应用的配置文件,保存Application的各种参数,直接return数组.在使用的过程中,因为main.php文件一定会被Yii提前加载,所以将一些全局性的操作也放在了此文件,加载一些类操作啥的没有什么问题,当有一次加了一个全局变量,并且在其它地方使用global获取全局变量时,发现无论我如何努力都得到的是NULL.各种尝试后,终

Yii框架中使用mongodb扩展

前提条件:安装了mongodb数据库 安装了mongo的php驱动 下载Yii的mongo扩展: 下载链接:http://pan.baidu.com/s/1rPtx0 官方下载链接:https://github.com/canni/YiiMongoDbSuite 得到文件:YiiMongoDbSuite.tar.gz 解包,并将该文件放至应用的/protected/extensions文件夹下面 确保文件夹名称为:YiiMongoDbSuite 配置应用 1 vi /protected/conf

YII框架中可以使用foreach遍历对象以及可以使用数组形式直接访问对象的原因

YII框架中可以使用foreach遍历对象以及可以使用数组形式直接访问对象的原因在YII框架的使用过程中,我们可以使用foreach直接遍历findAll等方法返回的对象的属性为什么呢?其实这与CModel实现的接口相关,接下来我们看下其实现的整个过程对于一个我们定义的model,它会继承虚类CActiveRecord,CActiveRecord类继承于CModel,如下所示: class special extends CActiveRecord { } abstract class CAct

Yii 框架中安装 memcache 及配置和测试

安装php_memcache.dll扩展 1.首先将php_memcache.dll文件放入E:\server\php\ext目录下 (php_memcache.dll下载地址:http://windows.php.net/downloads/pecl/releases/memcache/3.0.8/)   一定要根据自己的php版本以及Thread Safety来下载相应的php_memcache.dll,Thread Safety可以在   phpinfo()中查看,enabled表示ts版

YII框架中save()和insert()的用法差异

要了解YII框架中save()和insert()的用法差异,首先查看一下手册中关于两个方法的定义: http://www.yiichina.com/api/CActiveRecord#save-detail save() 方法 源码: framework/db/ar/CActiveRecord.php#784 保存当前的记录. 插入记录到数据表的一行, 如果它的isNewRecord属性为true(通常情况下使用的‘new’运算符来创建记录). 否则, 将被用于更新表中的相应行(通常情况下,使用

yii框架中关于控制器中filter过滤器和外部action的使用

在yii框架中,控制器的过滤器分为执行前和执行后,这里举例是在执行控制器前的过滤. 需要在components/文件夹下定义公共的TestAction.php文件,并且实现run()方法.这个action是各个控制器公用的. class TestController extends Controller { /** * 定义外部的action * @return array */ public function actions() { return array( 'testa' => array

Yii框架中使用PHPExcel导出Excel文件

最近在研究PHP的Yii框架,很喜欢,碰到导出Excel的问题,研究了一下,就有了下面的方法: 1.首先在config\main.php中添加对PHPExcel的引用,我的方式是这样: 1 2 3 4 5 6 7 8 // autoloading model and component classes     'import'=>array(                  'application.models.*',         'application.components.*',

Yii框架中如何使用Yii::t()实现文本信息翻译和文件翻译

1.设置本地化语言 在protected/config文件夹下的main.php中做如下设置: return array( 'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..', 'name'=>'My Web Application', 'sourceLanguage'=>'en_us', 'language'=>'zh_cn', 2.定义翻译文件 这里我使用的时通过PHP文件实现文本信息翻译(更多方法说明参考Yii框架官方

Yii框架中的SQL用法

Yii框架的SQL User::find()->all(); //返回所有用户数据: User::findOne($id); //返回 主键 id=1 的一条数据: User::find()->where(['name' => 'ttt'])->one(); //返回 ['name' => 'ttt'] 的一条数据: User::find()->where(['name' => 'ttt'])->all(); //返回 ['name' => 'ttt'