通过ajax前端后台交互/登录页和注册页前端后台交互详解/前端后台交互基础应用/几个后台函数的基础应用/php文件函数基础应用/php字符传函数基础应用/php数组函数基础应用

  前  言

 PHP 

    学习了好久的PHP,今天做一个可以后台交互的登录页和注册页,没做什么判断,简单的了解一下。

具体的内容分析如下:

① PHP中的数据传输-->>由注册页传输给注册页后台-->>注册页后台经过转码保存实例化的文件

② 在登录页输入账户密码,点击登录时,获得触发函数:获得由后台传输过来的true或者false---转换页面或者弹出输入错误。

     登录页后台获取保存账户密码的实例化文件,通过转码,if判断之后传输给前台登录页TURE或者FALSE。

总共总共8个文件:

  其中07_file与libs同一级别 代码植入请看具体内容。

代码注释里面有很详细的解析,如有需要请仔细阅读。(希望可以帮助到你)

1、  效果图

   
   

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>用户登录</title>
 6         <link rel="stylesheet" type="text/css" href="../../libs/bootstrap.css"/>
 7         <style type="text/css">
 8             body{
 9                 margin: 0px;
10                 padding: 0px;
11                 background-color: #CCCCCC;
12             }
13             .panel{
14                 width: 380px;
15                 height: 280px;
16                 position: absolute;
17                 left: 50%;
18                 margin-left: -190px;
19                 top: 50%;
20                 margin-top: -140px;
21             }
22             .form-horizontal{
23                 padding: 10px 20px;
24             }
25             .btns{
26                 display: flex;
27                 justify-content: center;
28             }
29         </style>
30     </head>
31
32     <!--简单的样式表-->
33     <body>
34         <div class="panel panel-primary">
35             <div class="panel-heading">
36                 <div class="panel-title">用户登录</div>
37             </div>
38             <div class="panel-body">
39                 <form class="form-horizontal">
40                     <div class="form-group">
41                         <label>用户名</label>
42                         <input type="text" class="form-control" name="userName"/>
43                     </div>
44                     <div class="form-group">
45                         <label>密码</label>
46                         <input type="password" class="form-control" name="pwd"/>
47                     </div>
48
49                     <div class="form-group btns">
50                         <input type="button" class="btn btn-primary" value="登录系统" id="submit"/>
51                         &nbsp;&nbsp;&nbsp;&nbsp;
52                         <a type="button" class="btn btn-success" href="reg.php"/>注册账号</a>
53                     </div>
54
55                 </form>
56             </div>
57         </div>
58     </body>
59
60     <script src="../../libs/jquery-3.1.1.js"></script>
61     <script type="text/javascript">
62         $(function(){
63             //↓定位id:submit事件绑定,click点击时候触犯function函数
64             $("#submit").on("click",function(){
65                 //↓创建一个变量str =  选取form表单,通过serialize()创建以标准 URL 编码表示的文本字符串
66                 var str = $("form").serialize();
67                 //↓打印出来看看是什么个样子的,传输给后台才好操作。
68                   console.log(str); //具体样子:userName=value&pwd=value
69                   /*通过ajax中的post方法,给后台doLogin.php传输数据,给变量str(url文件类型)添加名字“formData”,
70                    * 函数function是接受后台返回的默认值也就是echo输出的值*/
71                 $.post("doLogin.php",{"formData":str},function(data){
72                     //↓打印后台echo输出的值,查看类型
73                     //↑console.log(data);
74
75                     //↓判断函数如果返回的是true,则通过location打开新的页面,同是在页面后面加?name+你输入的用户名,用来给主页传值(主页获得用户名)
76                     if(data=="true"){
77                         location = "index.php?name="+$("input[name=‘userName‘]").val();
78                     //↓传回其他输出则弹出"用户名或密码错误!!!"窗口
79                     }else{
80                         alert("用户名或密码错误!!!");
81                     }
82                 });
83             });
84         });
85     </script>
86 </html>

iogin.php行内代码--登录页面

 1 <?php
 2
 3     header("Content-Type:text/html;charset=utf-8");
 4
 5     //↓定义str一个变量,通过post方法获得前台传输过来的数据。$_POST["fieldname"]
 6     $str = $_POST["formData"];
 7
 8     //↓打印从前台收到的数据,通过打印传输会前台,具体内容通过形参data表示
 9     //echo $str;
10     //↑打印$str时↓(下方)必须全部注释,输出的具体样子:userName=value&pwd=value
11
12 /*    php中的数组,先通过数组explode方法-把数据内容通过$分为数组,
13     ↓再定义第一个数组内容(用户名的value)为$userName。["userName=value","pwd=value"]*/
14     list($userName) = explode("&", $str);
15
16 /*    php中的数组,先通过数组explode方法-把数据内容通过$分为数组,
17     ↓再定义二个数组内容(用户名的value)为$userName。["userName=value","pwd=value"]*/
18     list(,$pwd) = explode("&", $str);
19
20     //定义一个变量users,通过php中的文件函数file_get_contents,读取01_lx文件下的user.txt文件内容中的字符串。
21     $users = file_get_contents("user.txt");//这一步就是从文件中读取账号,密码。
22     //↑具体的文件内容大概:userName=111&pwd=111&rePwd=111[;]userName=222&pwd=222&rePwd=222[;]
23     //↑通过上面的文件内容可以知道每个账号密码后面都有一个[;]
24
25     //↓定义一个变量userArr,通过explode函数把用变量users内容用[;]分为数组 ["userName=value","pwd=value"]
26     $userArr = explode("[;]", $users);
27
28     //通过foreach遍历整个$userArr数组
29     foreach ($userArr as $user) {
30
31         //每一组$user分别为userName=value(111)&pwd=value(111)&rePwd=value(111)
32         //↓每一组都分别再通过explode函数分为数组,定义变量$realName为第一个数组名。
33         list($realName) = explode("&", $user);//具体内容为$realName=userName=value(111)
34         //↓每一组都分别再通过explode函数分为数组,定义变量$realPwd为第二个数组名。
35         list(,$realPwd) = explode("&", $user);//具体内容为$realPwd=pwd=value(111)
36         //↓每一组都分别判断一次,当变量$userName==变量$realName同时满足变量$pwd==变量$realPwd
37         if($userName==$realName&&$pwd==$realPwd){
38         //php中的输出echo 内容为true
39             echo "true";
40             die();
41         }
42     }
43     //↓如果账户或密码没有输入则,返回false
44     echo "false";

doLogin行内代码--登录页面后台

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>用户注册</title>
 6         <link rel="stylesheet" type="text/css" href="../../libs/bootstrap.css"/>
 7         <style type="text/css">
 8             body{
 9                 margin: 0px;
10                 padding: 0px;
11                 background-color: #CCCCCC;
12             }
13             .panel{
14                 width: 380px;
15                 height: 350px;
16                 position: absolute;
17                 left: 50%;
18                 margin-left: -190px;
19                 top: 50%;
20                 margin-top: -175px;
21             }
22             .form-horizontal{
23                 padding: 10px 20px;
24             }
25             .btns{
26                 display: flex;
27                 justify-content: center;
28             }
29         </style>
30     </head>
31
32
33     <body>
34         <div class="panel panel-primary">
35             <div class="panel-heading">
36                 <div class="panel-title">用户注册</div>
37             </div>
38             <div class="panel-body">
39                 <form class="form-horizontal">
40                     <div class="form-group">
41                         <label>用户名</label>
42                         <input type="text" class="form-control" name="userName"/>
43                     </div>
44                     <div class="form-group">
45                         <label>密码</label>
46                         <input type="password" class="form-control" name="pwd" />
47                     </div>
48                     <div class="form-group">
49                         <label>确认密码</label>
50                         <input type="password" class="form-control" name="rePwd" />
51                     </div>
52
53                     <div class="form-group btns">
54                         <input type="button" class="btn btn-primary" value="确定注册" id="submit"/>
55                         &nbsp;&nbsp;&nbsp;&nbsp;
56                         <a type="button" class="btn btn-success" href="login.php"/>返回登录</a>
57                     </div>
58
59                 </form>
60             </div>
61         </div>
62     </body>
63
64     <script src="../../libs/jquery-3.1.1.js"></script>
65     //↑jquery插入代码
66     <script type="text/javascript">
67         $(function(){
68             //↓捕捉idsubmit绑定click事件,function为发生事件时的函数。
69             $("#submit").on("click",function(){
70                 //↓创建一个变量str,选取form表单,通过serialize()创建以标准 URL 编码表示的文本字符串
71                 var str = $("form").serialize();
72                 //↓打印出来看看是什么个样子的,传输给后台才好操作。
73                 console.log(str);
74
75                 /*↓通过ajax中的post方法,给后台doReg.php传输数据,给变量str(url文件类型)添加名字“formData”,
76                       函数function是接受后台返回的默认值也就是echo输出的值*/
77                 $.post("doReg.php",{"formData":str},function(data){
78                     //↓打印后台echo输出的值,查看类型
79                     //↑console.log(data);
80
81                     //↓判断函数如果返回的是true,则弹窗提示创建成功,通过location跳转到login.php(登录页面)。
82                     if(data=="true"){
83                         alert("注册成功!即将跳转登陆页!");
84                         location = "login.php";
85                     //返回其他值,则弹窗提示    "注册失败!因为啥我不知道!"
86                     }else{
87                         alert("注册失败!因为啥我不知道!");
88                     }
89                 });
90             });
91         });
92     </script>
93 </html>

reg行内代码--注册页面

 1 <?php
 2
 3     header("Content-Type:text/html;charset=utf-8");
 4
 5     /*↓定义str一个变量,通过post方法获得前台传输过来的数据,
 6             并且在每个数据后方加入一个[;]——>用以分隔每个新数据*/
 7     $str = $_POST["formData"]."[;]";
 8
 9     //定义一个变量$num,通过php中的文件函数file_put_contents把每个str数据追加到01_lx文件下面的"user.txt"文件中。
10     $num = file_put_contents("user.txt", $str,FILE_APPEND);//user.txt文件没有的话会创建新的user.txt文件
11     //↑FILE_APPEND是追加到文件中,保证每个数据都会追加到"user.txt"文件中。
12
13     //↓简单的判断,不做过多的阐述。
14     if($num>0){
15         //输出语句,内容为后台返回前台$.post中的function的形参。
16         echo "true";
17     }else{
18         //输出语句,内容为后台返回前台$.post中的function的形参。
19         echo "false";
20     }

doReg--注册页面后台

use.txt由文件doReg.php自动在文件夹01_lx中生成。

 1 <!DOCTYPE html>
 2 <html lang="zh">
 3 <head>
 4     <meta charset="UTF-8" />
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 6     <meta http-equiv="X-UA-Compatible" content="ie=edge" />
 7     <title>Document</title>
 8 </head>
 9 <body>
10     欢迎您,<span style=‘color:red;‘><?php echo $_GET["name"]; ?></span><br>
11     我是主页!
12
13 </body>
14 </html>

index.php--主页代码

时间: 2024-11-03 21:49:54

通过ajax前端后台交互/登录页和注册页前端后台交互详解/前端后台交互基础应用/几个后台函数的基础应用/php文件函数基础应用/php字符传函数基础应用/php数组函数基础应用的相关文章

移动端返回上一页,刚需!document.referrer 详解

返回上一页,在PC端我们可以使用:history.go(-1)或者history.back(),可以正常返回第一层.这样,我们不需要上一页的 url 具体是什么,只要使用 history 一般都没啥问题. 但是在移动端,如果想要返回上一页.比如从A页面跳到B页面,如果B页面想返回A页面,为了防止不会跳错,必须要有一个 <  按钮,给它加 history.go(-1) ,返回上一层. <a href="javascript:history.go(-1)" class=&quo

vue2.0生命周期详解(前端网备份)

这篇大佬用图文分析详解vue2.0里面的生命周期<script src="https://cdn.bootcss.com/vue/2.4.2/vue.js"></script>;页面中渲染的优先值:所以综合排名优先级:render函数选项 > template选项 > outer HTML. https://segmentfault.com/a/1190000011381906 下面这个链接的console更清晰https://www.cnblogs

JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)

这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被当作是不同的域. 下表给出了相对 http://store.company.com/dir/page.html 同源检测的结果: 要解决跨域的问题,我们可以使用以下几种方法: 1.通过jsonp跨域[解决ajax跨域] 在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的

【转】JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)

这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被当作是不同的域. 下表给出了相对http://store.company.com/dir/page.html 同源检测的结果: 要解决跨域的问题,我们可以使用以下几种方法: 1.通过jsonp跨域 在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的.但是,在页面上引入不

详解前端模块化工具-Webpack

React自发布以来吸引了越来越多的开发者,React开发和模块管理的主流工具webpack也被大家所熟知.那么webpack有哪些优势,可以成为最主流的React开发工具呢? Webpack是什么 CommonJS和AMD是用于JavaScript模块管理的两大规范,前者定义的是模块的同步加载,主要用于NodeJS:而后者则是异步加载,通过requirejs等工具适用于前端.随着npm成为主流的JavaScript组件发布平台,越来越多的前端项目也依赖于npm上的项目,或者自身就会发布到npm

Android 详解第三方介质交互之NFC,并且实现读你的交通卡,酒店房卡,学生证!

转载请注明出处王亟亟的大牛之路 最近一段时间都在自己学习啊,看看东西敲敲代码什么的,熟悉业务逻辑啊之类的,因为刚跳槽,外加又不怎么忙,所以就还算时间蛮多的,自己利用呗,昨天被老大问有没有做过NFC..脑子一愣,并没有然后说,OH好的,我看一下.(据说是之后改的一些东西里面会运用到NFC) 废话不多开始正题: 写内容之前先介绍下NFC(如果想直接看代码的,请忽略这部分) NFC是一个短范围无线技术集合,通常需要4厘米或更短的距离才能初始化连接.(你把卡什么的往手机背部贴实了就能很快的识别) NDE

下拉插件 (带搜索) Bootstrap-select 从后台获取数据填充到select的 option中 用法详解

今天收到了客户的需求,要求在新增停车场ID的时候要从数据库查出来对应的停车场名称然后显示在界面上.保存的时候按照停车场ID进行保存. 自己首先把后台的部分写完了,测试了接口数据.成功的拿到了ajax数据. 接下来,自己用了select下拉标签和js函数进行填充后台传过来的数据. 经过自己的不断百度和参考别人的博客,试了很多次终于成功的调试出了想要的结果. 特来博客记录一下,也分享一下开心的心情. (一)首先引入样式和JS文件 样式文件和JS下载放到本地最好,因为放到本地自己可以修改一些东西. 在

详解前端变量提升

在非严格模式下,JavaScript中存在变量提升的特点. 1. 原因 JavaScript的工作原理是先编译再执行,在编译过程中,解释器会把所有声明“移动”到所在作用域的最上面,而赋值或其他逻辑会留在原地,这就是变量提升. 例如 foo(); function foo(){ console.log(a); // undefined var a = 2; } 在编译后将被理解为下面的形式 function foo(){ var a; console.log(a); // undefined a

C++学习45 流成员函数put输出单个字符 cin输入流详解 get()函数读入一个字符

在程序中一般用cout和插入运算符“<<”实现输出,cout流在内存中有相应的缓冲区.有时用户还有特殊的输出要求,例如只输出一个字符.ostream类除了提供上面介绍过的用于格式控制的成员函数外,还提供了专用于输出单个字符的成员函数put.如:    cout.put('a');调用该函数的结果是在屏幕上显示一个字符a.put函数的参数可以是字符或字符的ASCII代码(也可以是一个整型表达式).如    cout.put(65 + 32);也显示字符a,因为97是字符a的ASCII代码. 可以