很多站长朋友们都不太清楚php登陆检测,今天小编就来给大家整理php登陆检测,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php如何验证过滤用户是否登录 2、 php简单的登陆验证用户名和密码怎么写 3、 如何用php做个登陆界面? 4、 ThinkPHP登录检测 5、 PHP如何判断用户是否登陆,防止同账号多登陆, 6、 求大神看看我php登陆检测哪里错了 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简单的登陆验证用户名和密码怎么写给你个实例参考一下php编写登陆验证用户名和密码吧。
登录页面
login.html 负责收集用户填写的登录信息
在CODE上查看代码片派生到我的代码片
<html>
<head>用户登录</head>
<form name="LoginForm" method="post" action="login.php" onSubmit="return InputCheck(this)">
<p>
<label for="username" class="label">用户名:</label>
<input id="username" name="username" type="text" class="input" />
<p/>
<p>
<label for="password" class="label">密 码:</label>
<input id="password" name="password" type="password" class="input" />
<p/>
<p>
<input type="submit" name="submit" value=" 确 定 " class="left" />
</p>
</form>
</html>
登录处理
login.PHP 负责处理用户登录与退出动作。
在CODE上查看代码片派生到我的代码片
<?php
//登录
if(!isset($_POST['submit'])){
exit('非法访问!');
}
$username = htmlspecialchars($_POST['username']);
$password = MD5($_POST['password']);
//包含数据库连接文件
include('conn.php');
//检测用户名及密码是否正确
$check_query = mysql_query("select userid from user_list where username='$username' and password='$password' limit 1");
if($result = mysql_fetch_array($check_query)){
//登录成功
session_start();
$_SESSION['username'] = $username;
$_SESSION['userid'] = $result['userid'];
echo $username,' 欢迎你!进入 <a href="my.php">用户中心</a><br />';
echo '点击此处 <a href="login.php?action=logout">注销</a> 登录!<br />';
exit;
} else {
exit('登录失败!点击此处 <a href="javascript:history.back(-1);">返回</a> 重试');
}
//注销登录
if($_GET['action'] == "logout"){
unset($_SESSION['userid']);
unset($_SESSION['username']);
echo '注销登录成功!点击此处 <a href="login.html">登录</a>';
exit;
}
?>
用户中心
my.php 是用户中心,作为用户登录检测。
在CODE上查看代码片派生到我的代码片
<?php
session_start();
//检测是否登录,若没登录则转向登录界面
if(!isset($_SESSION['userid'])){
header("Location:login.html");
exit();
}
//包含数据库连接文件
include('conn.php');
$userid = $_SESSION['userid'];
$username = $_SESSION['username'];
$user_query = mysql_query("select * from user_list where userid = '$userid' limit 1");
$row = mysql_fetch_array($user_query);
echo '用户信息:<br />';
echo '用户ID:',$userid,'<br />';
echo '用户名:',$username,'<br />';
echo '<a href="login.php?action=logout">注销</a> 登录<br />';
?>
conn.php,用于连接数据库
在CODE上查看代码片派生到我的代码片
<?php
$conn = mysql_connect("127.0.0.1","root","") or die("数据库链接错误".mysql_error());
mysql_select_db("info_db",$conn) or die("数据库访问错误".mysql_error());
mysql_query("set names gb2312");
?>
如何用php做个登陆界面?你可以做一个简单的例如你只有用户名和密码即可那么你先在数据库(以mysql为例)中建表例如叫做user 字段为 id name pass分别是编号、用户名、密码长度分别是int(8) a_t(自动编号) 主键,varchar(50) ,varchar(50) 你可以添加一个测试数据 例如 1,admin,admin//说明密码这里不说加密的问题,用明文实现 登录页面的代码:login.php用户登录
用户名:
密 码:
checklogin.php代码(检测登录): $name=$_POST[name];$pass=$_POST[password];session_start();//这个可以维持登录状态,可以参照session的使用\x0d\x0a//登录检查函数 function login_state($uid,$user_shell){ $sql="SELECT * FROM `user` WHERE `name`='$name'";\x0d\x0a $query=@mysql_query($sql) or die(mysql_error());\x0d\x0a $us=is_array($row=@mysql_fetch_array($query));\x0d\x0a $user_shell=$us ? $user_shell==$row[password]:FALSE;\x0d\x0a if($user_shell){ echo "alert('登录成功');";\x0d\x0a return $row;\x0d\x0a }else{\x0d\x0a echo "alert('您暂时不能浏览该页面,请先登录');location.href='login.php';";\x0d\x0a } }login_state($name,$password);?>\x0d\x0a希望可以帮到您,如果还有问题可以联系2458285853
ThinkPHP登录检测参考下我的登录处理
//定义处理后台登陆提交数据
public function login(){
if (!IS_POST) halt('页面不存在');
$username=I("username");
$pwd=I("password",'','md5');
//p($pwd);die;
//1.检查数据库中这个用户是否存在
$user=M('user')->where(array('username' => "$username"))->find();
//如果数据库中的用户不存在,或者存在但是密码不正确就报错。
if(!$user || $user['password']!=$pwd){
$this->error("用户名或密码错误!");
}
//如果上面条件都成立的话,每次登陆后更新下面数据
$data=array(
'id' => $user['id'],
'sign'=>$user['sign'],
'shenfz'=>$user['shenfz'],
'tel'=>$user['tel'],
'weixin'=>$user['weixin'],
'qq'=>$user['qq'],
'logintime' => time(),
'loginip' => get_client_ip()
);
//更新数据库数据
M('user')->where(array('id' =>$user['id']))->save($data);
if(in_array($user['zw'],array(1,2,3))){
$role=M('role_user')->where(array('user_id' => $user['id']))->getField('role_id',true);
}else{
$role=M('role_user')->where(array('user_id' => $user['id']))->getField('role_id');
}
//存取登陆session数据
session(C('USER_AUTH_KEY'),$user['id']);
session(username,$user['username']);
session(role,$role);
session(bm,$user['bm']);
session(tel,$user['tel']);
session(email,$user['email']);
session(zw,$user['zw']);
session(logintime,$date['logintime']);
session(loginip,$user['loginip']);
//存取session数据后跳转到后台用户列表页
if($user['username'] == C('RBAC_SUPERADMIN')){
session(C('ADMIN_AUTH_KEY'), true);
}
import('ORG.Util.RBAC');
RBAC::saveAccessList();
//插入用户操作日志
$content=$_SESSION['username'].date("Y-m-d H:i:s",time())."登入了日志任务系统";
$logs=array(
'userid' =>$_SESSION[C('USER_AUTH_KEY')],
'operate' =>time(),
'content' =>$content,
'status' =>0
);
//存取登录操作log信息
M('userlog')->add($logs);
//调整后台首页
$this->redirect('Admin/Index/index');
}
PHP如何判断用户是否登陆,防止同账号多登陆,大概逻辑是这样的,如果要达到一个账号登陆了,要把另一个客户端上的统一账号踢掉,那么你需要用记录用户头token,和设备唯一识别号到数据库。
当用户登陆的时候,检测和用户uid相关的token表,如果已经有token了,并且本次的设备唯一识别号和已经登陆的识别号不一样,那么清空原有token,也就是将原来登陆的账号踢下线。记录新的设备识别号的token即可。
php大致代码如下:
$currentDeviceUUID=getDeviceUUID();
$uid = getUserId();
$token = generateToken();
select * from tokenTable where uid="$uid";
update set token='' where uid="$uid";
insert into tokenTable (uid, token, deviceUUID) values("$uid", "$token", $currentDeviceUUID);
求大神看看我php登陆检测哪里错了你把这一串代码
$result=mysql_fetch_array($re);
if( !empty($result)) {
直接修改为:
if(mysql_fetch_array($re)){
其它的不变,然后保存,再关闭浏览器(重要!),重新打开浏览器,再测试。
若还有问题,可加我Hi。
关于php登陆检测的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。