php防止重复登录具体代码,PHP session 防止重复登录的妙招
zhclass.phpcon = mysql_connect("localhost", "root", "root");
mysql_query("set names 'utf8'");
if (! $this->con) {
die('连接服务器失败: ' . mysql_error());
} else {
mysql_select_db("mytest", $this->con);
}
}
function logging($id, $mm) // 登录
{
$this->zh = $id;
$this->mm = $mm;
if (! $this->checkZh()) {
return false;
}
// 判断字段是否存在
$result = mysql_query("SELECT * FROM teacher WHERE id=$id");
if (mysql_num_rows($result) != 0) {
$row = mysql_fetch_array($result);
$m_mima = $row['mima'];
$name = $row['name'];
if ($mm == $m_mima) {
echo "登录成功";
return true;
} else {
echo "密码错误";
}
} else {
echo "登录失败";
}
return false;
}
function GetZhSession($zh)
{
if($this->checkZh2($zh)==false)
{
return null;
}
$result = mysql_query("SELECT * FROM teacher WHERE id=$zh");
if(mysql_num_rows($result)>0)
{
$row = mysql_fetch_array($result);
$session = $row['sec'];
return $session;
}else {
return null;
}
}
function SetZhSession($zh,$sec)
{
if($this->checkZh2($zh)==false)
{
return false;
}
if (mysql_query("UPDATE teacher SET sec='$sec' WHERE id=$zh")==false)
{
return false;
}
return true;
}
function _ChangeUserName($mid, $mm, $newName)
{
$this->zh = $mid;
$this->mm = $mm;
if (! $this->checkZh()) {
echo "账号不存在!";
return false;
}
if (! $this->logging($mid, $mm)) {
return false;
}
echo $newName . "," . $mm;
// 传过来的是字符串 但是数据库不识别 加上两个单引号转为字符串 '$newName'
$ret = mysql_query("UPDATE teacher SET name='$newName' WHERE id=$mid");
if (! $ret) {
echo " 无法修改用户昵称 ";
}
}
public function Reg($zh, $mima, $nichen)
{
$this->zh = $zh;
$this->mm = $mima;
if ($this->checkZh()) {
echo "账号已存在";
return;
}
if (mysql_query("INSERT INTO teacher (name,id,mima) VALUES ('$nichen',$zh,'$mima')") == false) {
echo "注册失败";
} else {
echo "注册成功";
}
}
public function __destruct() // 析构函数销毁数据库连接
{
mysql_close($this->con);
}
}
?>
index.phpGetZhSession($_SESSION["VVV"])==session_id())
{
echo "已经登录";
}else {
echo "登录过期!!!";
}
return ;
} else {
// 未登录
echo "log";
return ;
}
?>
denglu.phptype==0){
if( $pobj->logging($obj->id, $obj->pwd) ==true)
{
$_SESSION["VVV"] = $obj->id;
echo $_SESSION["VVV"];
$pobj->SetZhSession($obj->id,session_id() );
echo "登陆成功";
}
}else{
echo "未定义";
}
?>
~~~~~~~~~~~~~~~~~~~~使用xhr post登录~~~~~~~~~~~~~~~~~~~~~~~~~~~
使用post登录 ,确定登录后再执行其他post,防止异步获取多个sessionfunction logging()
{
var x = new XMLHttpRequest();
x.onreadystatechange =function()
{
if(x.readyState == 4) {
if(x.status == 200) {
console.log("The server replied with: " + x.responseText);
txt.text = x.responseText;
}
}
};
var xxx = new Object;
xxx.id="289672082";
xxx.pwd = '12345';
xxx.type=0;
var pcode= JSON.stringify(xxx);
x.open("POST","http://192.168.0.105/mycode/Test/denglu.php",true);
//post请求要自己设置请求头
x.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
x.send("code="+pcode);
}
如果用户没有登录尝试其他行为,在返回值中要求用户登录:function _PHP_TEST(async)
{
var x = new XMLHttpRequest();
x.onreadystatechange =function()
{
if(x.readyState == 4) {
if(x.status == 200) {
if(x.responseText=="log")
{
console.log("The server replied with: " + x.responseText);
console.log("需要登录");
logging();
}else{
console.log("The server replied with: " + x.responseText);
txt.text = x.responseText;
}
}
}
};
x.open("POST","http://192.168.0.105/mycode/Test/index.php",async);
//post请求要自己设置请求头
x.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
x.send(null);
}
~~~~~~~~~~~~~~~~使用Qt C++登录~~~~~~~~~~~~~~~~~~~~~~~~~~QmlClass::QmlClass(QObject *parent) : QObject(parent)
{
QByteArray data="";
m_netManger = new QNetworkAccessManager(this);
QNetworkRequest network_request;
//设置头信息
network_request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
network_request.setHeader(QNetworkRequest::ContentLengthHeader, data.length());
//设置url
network_request.setUrl(QUrl("http://localhost/mycode/Test/index.php"));
//发送请求 获取一些关键数据 前提是已近登录
QNetworkReply *reply2=m_netManger->post(network_request, data);
connect(reply2,&QNetworkReply::readyRead,this,[=](){
QString t =reply2->readAll();
if(t=="log" && t.length()>0)
{
qDebug()
}
qDebug()<
connect(reply2,&QNetworkReply::readyRead,this,[=](){
QString t =reply2->readAll();
qDebug()<
});
return true;
}
php防止重复登录具体代码,PHP session 防止重复登录的妙招相关推荐
- 命令行登录防止MySQL密码泄露的几个小妙招。
命令行登录防止MySQL密码泄露的几个小妙招. 明知山有虎偏向虎山行的方案: 1.可以通过如下环境变量强制Linux不记录敏感历史命令 在命令行执行HISTCONTROL=ignorespace后,再 ...
- 防止别人登录mysql_命令行登录防止MySQL密码泄露的几个小妙招。
命令行登录防止MySQL密码泄露的几个小妙招. 明知山有虎偏向虎山行的方案: 1.可以通过如下环境变量强制Linux不记录敏感历史命令 在命令行执行HISTCONTROL=ignorespace后,再 ...
- 用cmd登录mysql怎么避免看见密码_命令行登录防止MySQL密码泄露的几个小妙招。...
命令行登录防止MySQL密码泄露的几个小妙招. 明知山有虎偏向虎山行的方案: 1.可以通过如下环境变量强制Linux不记录敏感历史命令 在命令行执行HISTCONTROL=ignorespace后,再 ...
- php 单点登录实现代码,PHP简单实现单点登录功能示例
1.准备两个虚拟域名 127.0.0.1 www.openpoor.com 127.0.0.1 www.myspace.com 2.在openpoor的根目录下创建以下文件 index.PHP 1 ...
- element 登录_Python selenium自动化测试框架入门实战--登录测试案例
本文为Python自动化测试框架基础入门篇,主要帮助会写基本selenium测试代码又没有规划的同仁. 本文应用到POM模型.selenium.unittest框架.configparser配置文件. ...
- php java session共享_PHP通过session id 实现session共享和登录验证的代码
先说说,这个机制的用途吧,到现在为止战地知道这个机制有两个方面的用途: 首先,多服务器共享session问题,这个大家应该都能够理解的,当一个网站的用户量过大,就会使用服务器集群,例如专门有一个登录用 ...
- 写了一个 SSO 单点登录的代码示例给胖友!
发危~ " 摘要: 原创出处 http://www.iocoder.cn/Spring-Security/OAuth2-learning-sso/ 「芋道源码」欢迎转载,保留摘要,谢谢! 1 ...
- 【认证服务】验证码、社交登录、分布式session、单点登录
[认证服务]验证码.社交登录.分布式session.单点登录 目录 [认证服务]验证码.社交登录.分布式session.单点登录 认证服务 一.gulimall-auth-server 二.验证码注册 ...
- 折衷的方式实现php与ruby共享session实现单点登录
2019独角兽企业重金招聘Python工程师标准>>> 1.背景 前一阵部门要做一个内部讨论区,希望能和原有的gitlab集成在一起. discuz虽然成熟但是感觉不够高大上,找了几 ...
最新文章
- flex版的流程设计器
- mysql 5.x 安装_mysql 5.5.x zip直接解压版安装方法
- 遍历列表python_python列表的遍历与循环
- 听说你想去大厂看妹子,带你看看阿里软件测试岗四轮面试是怎么样的?
- sap知识-MPS和MRP的区别
- 博士生创新能力的培养点滴
- stm32之TIM-高级定时器应用实例一(详细)
- web网页版流程图插件-myflow.js-案例demo下载
- python零碎笔记整理1
- 随笔写一个简单的爬虫
- 如何主持计算机教师座谈会,计算机学院召开期中教学评价教师座谈会和学生座谈会...
- @程序员,你的 996,可能是给公司无能的管理背锅
- 分布式架构的核心要素和设计方法
- 林祖宁《ISO20000-12011 认证合格判定基础》
- Spring 菜鸟教程 IntrospectorCleanupListener
- Windows11安装安卓子系统WSA及安卓应用
- 扫描全能王文件上传不了服务器,如何将扫描全能王的文档轻松保存到坚果云?...
- c++实现LSTM,ADAM优化,预测大写数字
- Coroutine协成
- putty 显示鼠标