带token的多用户登录(注册直接粗暴解决)
注册 解决 登录 直接 Token 多用户 粗暴
2023-06-13 09:13:56 时间
作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主
文章目录
前言
带token的多用户登录功能实现 用户名+密码 cyg 123456 liwen 123456
2.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="2.php" method="POST">
用户名:<input type="text" name="username">
密码:<input type="password" name="password">
<input type="submit" value="提交">
</form>
</body>
</html>
<?php
//用户输入的(表单传过来的)
$username=$_POST['username'];
$password=$_POST['password'];
if(!$username||!$password)
{
echo exit();
}
//=========================
$link=mysqli_connect('localhost','root','root','a');
//然后是指定php链接数据库的字符集
mysqli_set_charset($link,'utf8');
$token = md5(mt_rand(100000,999999).'#$@%!^*'.time());
//查询然后判断数据库中的用户名username+密码password是不是与表单传过来的$username+$password相匹配.
$sql="select * from token where username='{$username}' and password='{$password}'";
$query=mysqli_query($link,$sql);//运行sql
$result=mysqli_query($link,"UPDATE token set stoken='{$token}' WHERE username='{$username}' and password='{$password}'");//运行sql
$result=mysqli_fetch_array($query);
if($result)
{
echo $token;
}
3.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="3.php" method="POST">
只要提交token就能登录啦:<input type="text" name="token">
<input type="submit" value="提交">
</form>
</body>
</html>
<?php
$link=mysqli_connect('localhost','root','root','a');
//然后是指定php链接数据库的字符集
mysqli_set_charset($link,'utf8');
$tokenaa=$_POST['token'];
if(!$tokenaa)
{
echo exit();
}
$sql="select id,username from token where stoken='{$tokenaa}'";
$aa=mysqli_query($link,$sql);
$result=mysqli_fetch_array($aa);
if($result)
{
echo "登录成功".$result['username'];
}
else
{
echo "登录失败";
}
sql
-- phpMyAdmin SQL Dump
-- version 4.8.5
-- https://www.phpmyadmin.net/
--
-- 主机: localhost
-- 生成日期: 2022-10-08 15:17:42
-- 服务器版本: 5.7.26
-- PHP 版本: 7.3.4
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- 数据库: `a`
--
-- --------------------------------------------------------
--
-- 表的结构 `token`
--
CREATE TABLE `token` (
`id` int(11) NOT NULL,
`username` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`password` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`stoken` text COLLATE utf8_unicode_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- 转存表中的数据 `token`
--
INSERT INTO `token` (`id`, `username`, `password`, `stoken`) VALUES
(1, 'cyg', '123456', '3de253c36e4bb3e2a1068d2e46fcb537'),
(2, 'liwen', '123456', '04a916677b626f3e6d58714d9536d692');
--
-- 转储表的索引
--
--
-- 表的索引 `token`
--
ALTER TABLE `token`
ADD PRIMARY KEY (`id`);
--
-- 在导出的表使用AUTO_INCREMENT
--
--
-- 使用表AUTO_INCREMENT `token`
--
ALTER TABLE `token`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
效果
相关文章
- 2022年8月注册谷歌账号登录遇到手机号无法验证,折腾了好几天终于成功解决
- android广播注册方式_安卓广播接收器
- 2022最新注册谷歌账号的方法| 注册谷歌Gmail卡在最后一步“此电话号码无法用于进行验证”已解决!
- 最新注册谷歌账号手机号不能验证的有效跳过手机号验证方法,2022已成功解决谷歌账号注册验证!
- SpringCloud(二) - Eureka注册中心,feign远程调用,hystrix降级和熔断
- 2023国内ChatGPT注册教程(解决没有手机号问题)亲测成功注册!
- 14250锂电池WERCS是什么认证,深圳哪里做WERCSmart注册最好?
- 美国EPA认证是什么意思,EPA注册中e-PMN注册和软件定义问题解析授权官员
- WERCS是什么认证,WERCSmart套装产品注册怎么办理做好?
- 谷歌注册账号手机号码电话无法用于验证2023年解决方法
- ChatGPT注册小白教程(包含ChatGPT验证手机号)两分钟完成注册!
- 2023年超详细ChatGPT注册教程(完整版),解决国外邮箱问题,国外手机验证问题!
- MySQL如何实现注册功能(mysql如何注册)
- 的解决办法解决mssql无需注册类的方案(mssql没有注册类)
- Ajax注册MySQL极速轻量注册引擎(ajax注册mysql)
- destoon整合ucenter后注册页面不跳转的解决方法