php登陆信息验证,PHP:注册信息存储/登录信息验证基本原理

在网站用户经常需要注册新的账号以及对已经注册过的账号进行登录。

本文使用 php 实现基本功能并对基本原理进行讲解。

一. 注册(非 JSON)

1. HTML部分(register.html)

首先完成 HTML 页面的基本布局

Register_Page

Name:

Code:

这里采用 post 方式

action 的对象为将要创建的 registerHandler.php 文件

2. php 部分(registerHandler.php)

我们在 HTML 文件里得到了 user 和 pass 的两个值,并将他们传递给了.php 文件。

php 文件内利用字符串的拼接特性将这两个值拼接为一个字符串。

再将这个字符串写入指定的 txt 文件,注意 file 函数如果在没有找到指定 txt 文件的时候,会重新创建一个 txt 文件。这样信息就被保存在了指定的空间内。

代码如下:

// 获取 post 请求中包含的注册数据

$user = $_POST["user"];

$pass = $_POST["pass"];

// 组成一个有规则的字符串,等待写入文件

$str = "user = {$user};pass = {$pass}\n";

$f = fopen("file/user.txt", "a");

// 把本次获得的字符串写入到文档中

fwrite($f, $str);

// 关闭文件

fclose($f);

?>

二. 将用户信息以 Table 格式显示(非必须,只为看效果)

原理:

1. 将 php 文件嵌入到 HTML 文件内。

2. 使用 explode 函数,将$str = "user = {$user};pass = {$pass}\n";按照;拆分为user = {$user}和pass = {$pass}。再分别通过=拆分,分别获取$user和$pass。通过循环分别获取,并创建 table 标签,然后依次 echo 写入,达到目标。

用户名密码

// 1. 读取文件,获取信息数组

$arr = file("file/user.txt");

// print_r($arr);

echo "


"."下面是把 user.txt 的用户名和密码输出为表格";

foreach ($arr as $value) {

$userinfo = explode(";", $value);

?>

$username = explode("=", $userinfo[0])[1];

echo $username;

?>

$userpass = explode("=", $userinfo[1])[1];

echo $userpass;

?>

a9da08b63e82

生成包含用户名及密码的 Table 表格

三. 登录验证

原理:

1. 布局与注册相似,但是 action 指向另一个创建的 login.php 文件。

2. 在 login.php 文件中,获取到此次输入的 user 和 pass 值,以注册相同的格式拼接为字符串 $str。

3. 通过 file_get_contents() 函数将user.txt 文件以整个字符串的形式导出,定义为$f 。

4. 判断:若 $f 中包含 $str,那么代表我输入的这一段用户名和密码在数据库中是能找到的,即登陆成功。

5. 判断方法:explode 方法,若$f可以被$str拆分为含有两个或两个以上元素的数组,那么代表$f中包含 $str(在这里也可以使用 strpos 函数进行判断)。

代码如下:

header("Content-type:text/html;charset=utf-8");

$user = $_POST["user"];

$pass = $_POST["pass"];

$str = "user = {$user};pass = {$pass}\n";

$f = file_get_contents("file/user.txt");

$tmpArr = explode($str, $f);

if (count($tmpArr) > 1) echo "登陆成功!数据库有你的信息!";

else echo "登录失败!数据库里找不到你!";

?>

至此,我们完成了登录的判断,当然,方法不唯一。

四. 注册(JSON)

在这段代码里注册信息,我们使用了json_encode和json_decode方法将信息转化为 JSON 格式写入文档中,方便了操作和以后的使用。登录方法同以上。

JSON 的操作方式与非 JSON 类似,并没有本质的区别,不做赘述。

代码如下:

1. HTML部分(json_register.html)

Document

用户名:

密__码:

2. php 写入注册信息部分

if (count($_POST) != 0) {

$str = json_encode($_POST) . "\n";

$f = fopen("file/jason_user.txt", "a");

fwrite($f, $str);

fclose($f);

}

?>

3. Table 打印注册信息部分

Document
用户名密码

$arr = file("file/jason_user.txt");

foreach ($arr as $value) {

$userL = json_decode($value);

?>

$userName = $userL -> user;

echo $userName;

?>

$passName = $userL -> pass;

echo $passName;

?>

echo file_get_contents("file/jason_user.txt");

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值