thinkphp3.2 注册登录(ip地址、加盐加密)

<?php
namespace Home\Controller;
use Symfony\Component\Console\EventListener\ErrorListener;
use Think\Controller;
use Org\Net\IpLocation; //加载ip类
class LoginController extends Controller {

    //登录方法
    public function index(){

        if(IS_POST){
            $name = I('post.username');
            $password = I('post.pwd');
            $data['user_name'] = $name;
            $user = M('user')->where($data)->find();
            $salt = $user['salt'];
            $pwd = $user['password'];
            $user_id = $user['user_id'];
            $where['user_id'] = $user_id;
            $ip = get_client_ip();
            $location = new IpLocation('UTFWry.dat');
            $area = $location->getlocation($ip);

            $data['login_time'] = time();
            $data['last_time'] = $user['login_time'];
            $data['login_area'] = $area['country'].".".$area['area'];
            $data['last_area'] = $user['login_area'];
            $data['login_ip'] = $area['ip'];
            $data['last_ip'] = $user['login_ip'];

            if(sha1(MD5($password).$salt)==$pwd){
                M('user')->where($where)->save($data);
                session('user_name',$name);
                session('user_id',$user_id);
                $this->redirect('Index/index','',1,'登陆成功!');
            }else{
                redirect('index', 1, '登录失败,页面返回中...');
            }
        }else{

            $this->display();
        }

    }

    //注册方法
    public function register(){
        if(IS_POST){
            $name = I('post.username');
            $password = I('post.pwd');
            $password1 = I('post.pwd1');
            if($password!=$password1){
                echo "<script>alert('确认密码错误');</script>";
                redirect('register', 1, '页面跳转中...');
            }
            $ip = get_client_ip();
            $location = new IpLocation('UTFWry.dat');
            $area = $location->getlocation($ip);
            $salt = substr(MD5(time()),0,6);
            $pwd = sha1(MD5($password).$salt);
            $data['user_name'] = $name;
            $data['password'] = $pwd;
            $data['salt'] = $salt;
            $data['reg_time'] = time();
            $data['login_time'] = time();
            $data['login_ip'] = $area['ip'];//获取当前登录ip
            $data['login_area'] = $area['country'].".".$area['area'];//获取当前登录地区

            $user_id = M('user')->add($data);

            if($user_id){
                session('user_name',$name);
                session('user_id',$user_id);;
                $this->redirect('Index/index','',1,'注册成功!');
            }else{
                redirect('index', 1, '注册失败,页面返回中...');
            }
        }else{

            $this->display();
        }
    }

    //退出登录
    public function loginOut(){
        session('user_name',null);
        session('user_id',null);
        redirect('index', 1, '页面跳转中...');
    }
}
PS:在获取ip、地址时要注意把UTFWry.dat文件放入框架..\ThinkPHP\Library\Org\Net目录下
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值