导读:很多朋友问到关于php如何实现用户认证的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!
本文目录一览:
1、怎么用php实现手机注册和手机验证
2、用php制作用户登录认证网页
3、thinkphp 怎么做登录验证
4、如何在PHP中进行身份认证
怎么用php实现手机注册和手机验证
简单的说,手机验证和手机注册是差不多的。
手机验证:
首先你在php代码中生成一串字符串,可以保存在session里面,然后在把这串字符串通过短信服务(这一步需要去买,找代理,前提你获得了用户的正确手机号码)发给用户,然后提供一个输入框给用户输入收到的验证码在和session中的比对。
手机注册:
前面的部分都是和上面一样,多出来的步骤就是验证成功后把信息存入用户数据库而已,最多在存入之前让用户再输入一点用户其他信息。
以上验证码可以扩展一下,比如有效时间,直接在session中设置有效时间,过期作废的限制就可以了。
用php制作用户登录认证网页
将用户名和密码提交到指定的页面,如checkform.php,然后在该页面中以传来的用户名和密码为条件,在数据库中查找,如果有记录的话,成功登陆,如果没有,就说明没有该用户,活着用户名错误
thinkphp 怎么做登录验证
登录无非就是验证用户名密码以及验证码是否正确,我们可以新建一个CommonAction的公共类,用来校验权限,其他所有类继承此类。该类内部写一个初始化方法,用于验证,这一讲先不详细讲解。继续说登录,由于登录是公开模块的方法,所以可以新建一个PublicAction类,用于公共的免验证方法,同时在配置文件中添加
'NOT_AUTH_MODULE'='Public',//默认不需要认证的模块
'USER_AUTH_GATEWAY'='/Public/login',//默认的认证网关
然后开始编写Public类,具体代码如下:
?php
classPublicActionextendsCommonAction{
//验证码显示
publicfunction verify(){
import("ORG.Util.Image");
Image::buildImageVerify(4,1,"png",100,28,"verify");
}
//验证是否账号密码
function checklogin(){
//此处多余可自行改为Model自动验证
if(empty($_POST['username'])){
$this-error('帐号错误!');
}elseif (empty($_POST['password'])){
$this-error('密码必须!');
}elseif (empty($_POST['verify'])){
$this-error('验证码必须!');
}
$map=array();
$map['username']=$_POST['username'];
$map['status']=array('gt',0);
if($_SESSION['verify']!= md5($_POST['verify'])){
$this-error('验证码错误!');
}
import('ORG.Util.RBAC');
//C('USER_AUTH_MODEL','User');
//验证账号密码
$authInfo=RBAC::authenticate($map);
if(empty($authInfo)){
$this-error('账号不存在或者被禁用!');
}else{
if($authInfo['password']!=md5($_POST['password'])){
$this-error('账号密码错误!');
}else{
$_SESSION[C('USER_AUTH_KEY')]=$authInfo['id'];//记录认证标记,必须有。其他信息根据情况取用。
$_SESSION['email']=$authInfo['email'];
$_SESSION['nickname']=$authInfo['nickname'];
$_SESSION['user']=$authInfo['username'];
$_SESSION['last_login_date']=$authInfo['last_login_date'];
$_SESSION['last_login_ip']=$authInfo['last_login_ip'];
//判断是否为超级管理员
if($authInfo['username']=='admin'){
$_SESSION[C('ADMIN_AUTH_KEY')]=true;
}
//以下操作为记录本次登录信息
$user=M('User');
$lastdate=date('Y-m-d H:i:s');
$data=array();
$data['id']=$authInfo['id'];
$data['last_login_date']=$lastdate;
$data['last_login_ip']=$_SERVER["REMOTE_ADDR"];
$user-save($data);
RBAC::saveAccessList();//用于检测用户权限的方法,并保存到Session中
$this-assign('jumpUrl',.'/Index/index');
$this-success('登录成功!');
}
}
}
//退出登录操作
function logout(){
if(!empty($_SESSION[C('USER_AUTH_KEY')])){
unset($_SESSION[C('USER_AUTH_KEY')]);
$_SESSION=array();
session_destroy();
$this-assign('jumpUrl',/Code.'/login');
$this-success('登出成功');
}else{
$this-error('已经登出了');
}
}
}
以上代码仅实现功能,没有做优化,有些验证的操作可以放到model,session也不用一 一赋值,用数组即可,我想已经入门的应该可以自己改的更好。
如何在PHP中进行身份认证
下面这段代码就可以:
?
if(!isset($PHP_AUTH_USER))
{
Header("WWW-Authenticate: Basic realm=请输入你的用户名和密码:");
Header("HTTP/1.0 401 Unauthorized");
echo "验证失败,你不能网络资源!";
exit;
}
else
{
if ($PHP_AUTH_USER!="username" or $PHP_AUTH_PW!="password")
{
Header("HTTP/1.0 401 Unauthorized");
echo "验证失败,你不能网络资源!";
exit;
}
}
?
结语:以上就是编程笔记为大家整理的关于php如何实现用户认证的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~