很多站长朋友们都不太清楚如何验证登录php,今天小编就来给大家整理如何验证登录php,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 thinkphp 怎么做登录验证 2、 php如何验证过滤用户是否登录 3、 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如何验证过滤用户是否登录一、php可以通过Session,实现用户登录验证。
session习惯上被译为会话,它的设计是为了在一个访问期间在不同的页面间传输数据,以解决http协议无状态的问题。
session_register()函数的作用是注册新的变量,它会在全局变量中增加1个变量到目前的session之中,以后其他页面可以通过session_is_registered()函数检测该session变量是否已经注册。
二、通过session来检测用户登录信息,由两个文件组成,login.php为用户登录页面,checklogin.php用于检测账号、密码和是否登录成功。
具体参考代码如下:
login.php的代码如下:
<?php
session_start();//初始化session
if (isset($_SESSION['shili']))
{
header("Location:shili.php"); //重新定向到其他页面
exit();
}
?>
<script language="javascript">
function checklogin(){
if((login.username.value!="")(login.password.value!=""))
{
return true;//判断用户名和密码不为空,返回TRUE
}
else
{
alert ("昵称或密码不能为空!")
}
}
</script>
<style type="text/css">
.style1 { font-size: 13px; font-family: "黑体"; font-weight: normal; color: #0099FF; }
</style>
<div align="center">
<form name="login" method="post" action="checklogin.php" onSubmit="return checklogin()">
<table width="260" border="1" bgcolor="#D8EFFA">
<tr align="center">
<td height="30" colspan="2"><span class="style1">管理系统登录</span></td>
</tr>
<tr>
<td width="90" align="center" class="style1">管理员: </td>
<td width="170" height="20" align="left" valign="middle"><input name="username" type="text" id="username" size="20"></td>
</tr>
<tr>
<td align="center" class="style1">密码: </td>
<td height="20" align="left" valign="middle"><input name="password" type="password" id="password" size="20"></td>
</tr>
<tr>
<td align="center" class="style1"></td>
<td height="20" align="center"><input type="submit" name="Submit" value="登 录"></td>
</tr>
</table>
</form>
</div>
checklogin.php的代码如下:
<?php
session_start () ; //初始session
if (isset ($_SESSION['shili']))
{
header ("Location:shili.php") ; //重新定向到其他页面
exit ;
} //登录过的话立即结束
$shili_name=$_POST['username'] ; //获取参数
$password=$_POST['password'] ;
//验证管理员名称和密码是否正确,这里采用直接验证,没有连接数据库
if ($shili_name=="mr" and $password=="mrsoft")
{
session_register ("shili") ; //注册新的变量,保存当前会话的昵称
$shili = $shili_name ;
echo "<font color=red>登录成功!</font>" ;
header ("Location:shili.php") ; //登录成功重定向到管理页面
}
else
{
echo "<table width='100%' align=center><tr><td align=center>" ;
echo "账号或密码错误,或者不是管理员账号<br>" ;
echo "<font color=red>登录失败!</font><br><a href='login.php'>请重新输入</a>";
echo "</td></tr></table>" ;
}
?>
shili.php的代码如下:(实验简单验证)
<?php
echo "Welcome to My World!";
?>
//如果想要对某个页面限制浏览的用户,可以使用同样的方式,只要把如下的代码放在该页面的开头即可:
<?php
session_start () ;
if (!isset ($_SESSION['shili'])){
echo "<p align=center>" ;
echo "<font color=#ff0000 size=5><strong><big>" ;
echo "你没有登录,请<a href='denglu.php'>登录</a>!" ;
echo "</big></strong></font></p>" ;
exit () ;
}
?>
PHP登陆验证sql写错了
<?php
if($_POST["user_name"]==""){
echo "请输入用户名";
echo "<a href='denglu.php'>返回</a>";
}elseif($_POST["parsword"==""]){
echo "请输入密码";
echo "<a href='denglu.php'>返回</a>";
}else{
$link=mysql_connect("localhost","root","")or die("不能连接数据库");
mysql_select_db("userdb",$link)or die("选择错误");
$sql="select*from user_db where username = ".$_POST['username'].'and password = '$_POST['paddword'];
$result=mysql_query($sql,$link);
$news=mysql_fetch_assoc($result);
mysql_free_result($result);
if($news['user_name']==$_POST['user_name'] $news['parsword']==$_POST['parsword']){
echo "登陆成功";
echo "<a href='index.php'>登陆</a>";
}else{
echo "密码错误或用户名不正确";
echo "<a href='denglu.php'>返回</a>";
}
}
?>
关于如何验证登录php的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于如何验证登录php 如何验证登录时用户名和密码是加密传输给服务器的的详细内容...