好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php登陆检测 php登录原理

很多站长朋友们都不太清楚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登陆检测的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php登陆检测 php登录原理的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did255289
更新时间:2023-10-09   阅读:64次

上一篇: php数据库的建立 php中数据库怎么设计

下一篇:php英国时区代码 英国时区缩写

最新资料更新

  • 1.无法下载file.php 无法下载filedownload
  • 2.php仿应用商店 php android 应用
  • 3.php获取监控视频 php采集视频地址
  • 4.node会取代php nodejs会被deno取代吗
  • 5.php在线做点兼职 php在线做点兼职是真的吗
  • 6.phpmkdir-1的简单介绍
  • 7.php保存用户信息 php登录成功保存session
  • 8.手机打开php乱码 php乱码怎么办
  • 9.vscode开发php vscode开发JAVA方便吗
  • 10.phpcurl解析失败 php在html中无法解析
  • 11.phpmp3播放 php播放器本地视频
  • 12.怎么写php需求 php市场需求
  • 13.phpwhere循环 php中的循环
  • 14.phpdelete的简单介绍
  • 15.学校php培训机构 php培训学校是什么意思
  • 16.php资源扫描教程 php识别二维码内容源码
  • 17.手机文件php怎么打开 手机php格式文件怎么打开
  • 18.php添加字体水印 php设置字体
  • 19.php表示数组元素 php数组实现
  • 20.php实现频率限制 php限制频繁访问

CopyRight:2016-{hedonghua:year}{hedonghua:sitegs} 备案ICP:湘ICP备09009000号-16 {hedonghua:sitejym}
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]