用PHP和Ajax进行前后台数据交互——以用户登录为例

摘要:
很多网站中都有用户登录系统,要完成用户的注册和登陆,就一定要用到前后台的数据交互。在这里以简单的用户注册和登陆为例介绍一下前后台交互的大致流程。$str=$_POST["formData"]."[;]";2、这里我们先将数据写入一个txt文件,返回新增字段的长度,后期可以将数据保存到数据库。if{echo"true";}else{echo"false";}这样我们就完成了一个简单的前后台数据交互。

很多网站中都有用户登录系统,要完成用户的注册和登陆,就一定要用到前后台的数据交互。在这里以简单的用户注册和登陆为例介绍一下前后台交互的大致流程。

首先,我们来做一个简单的登陆界面。

用PHP和Ajax进行前后台数据交互——以用户登录为例第1张

这里为了方便我使用了bootstrap插件

<form class="form-horizontal">
    <div class="form-group">
        <label>用户名</label>
        <input type="text"class="form-control"name="userName"/>
    </div>
    <div class="form-group">
        <label>密码</label>
        <input type="password"class="form-control"name="pwd"/>
    </div>
    <div class="form-group btns">
        <input type="button"class="btn btn-primary"value="登录系统"id="submit"/>
        &nbsp;&nbsp;&nbsp;&nbsp;
        <a type="button"class="btn btn-success"href="reg.php"/>注册账号</a>
    </div>
</form>

先做一个注册的功能,点击注册账号跳转到注册的页面。注册的页面跟登录页面类似,点击返回登陆能回到登录页。

用PHP和Ajax进行前后台数据交互——以用户登录为例第2张

给几个input添加name

<input type="text"class="form-control"name="userName"/>
<input type="password"class="form-control"name="pwd" />
<input type="password"class="form-control"name="rePwd" />
<input type="button"class="btn btn-primary"value="确定注册"id="submit"/>

接下来开始写JS代码,点击注册按钮,触发click事件。

1、我们把form表单传递的信息通过serialize()将转为字符串。

2、通过post()将数据提交给后台处理,第一个参数为提交的文件,第二个参数是传递的数据,这里我们写为对象的形式。

$(function(){
    $("#submit").on("click",function(){
        var str = $("form").serialize();
        $.post("doReg.php",{"formData":str},function(data){
            if(data=="true"){
                alert("注册成功!即将跳转登陆页!");
                location = "login.php";
            }else{
                alert("注册失败!因为啥我不知道!");
            }
        });
    });
});

然后我们转到后台脚本

1、将接收的数据以"[;]"分隔,便于我们到时候分隔字符串。

$str = $_POST["formData"]."[;]";

2、这里我们先将数据写入一个txt文件,返回新增字段的长度,后期可以将数据保存到数据库。

$num = file_put_contents("user.txt", $str,FILE_APPEND);

3、 然后给前台发送一个数据,当$num>0说明文件写入了内容。

if($num>0){
    echo "true";
}else{
    echo "false";
}

这样我们就完成了一个简单的前后台数据交互。

完成注册以后我们可以回到登陆页面。

登陆页面的JS代码也是类似的

$(function(){
    $("#submit").on("click",function(){
        var str = $("form").serialize();
        $.post("doLogin.php",{"formData":str},function(data){
            if(data=="true"){
                location = "index.php?name="+$("input[name='userName']").val();
            }else{
                alert("用户名或密码错误!!!");
            }
        });
    });
});

接下来我们来进行后台操作

1、首先取到前台发来的数据

$str = $_POST["formData"];

2、然后将接收到的数据按照"&"符号进行分隔,因为我们存入的数据都是中间以&分隔,最后以[;]结尾

用PHP和Ajax进行前后台数据交互——以用户登录为例第3张

list()的用法是可以将分隔之后的各段的字符串分别赋予不同的变量。

list($userName) = explode("&", $str);
list(,$pwd) = explode("&", $str);

3、然后我们要取到存数据的文件

$users = file_get_contents("user.txt");

4、然后将每个用户区分,这次我们用[;]分隔

$userArr = explode("[;]", $users);

5、然后输入的登陆信息是不是跟我们文件里注册的用户信息一致,一致说明输入的信息正确,就可以结束脚本并给前台传回true

foreach ($userArr as $user) {
    list($realName) = explode("&", $user);
    list(,$realPwd) = explode("&", $user);
    if($userName==$realName&&$pwd==$realPwd){
        echo "true";
        die();
    }
}
echo "false";

然后在前台判断如果传回的是true就可以跳转页面了。

免责声明:文章转载自《用PHP和Ajax进行前后台数据交互——以用户登录为例》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JDK1.7中关于AutoCloseable接口的使用ftp协议及常用命令下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

PHP curl参数详解(转)

curl_setopt (PHP 4 >= 4.0.2) curl_setopt -- 为CURL调用设置一个选项 描述 bool curl_setopt (int ch, string option, mixed value) curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。...

【转】PHP实现系统编程(四)--- 本地套接字(Unix Domain Socket)

原文:http://blog.csdn.net/zhang197093/article/details/78143687?locationNum=6&fps=1 ---------------------------------------------------------------------------------------------...

phpPgAdmin-5.1安装配置

phpPgAdmin-5.1安装配置 官方网站:http://phppgadmin.sourceforge.net/doku.php参考文档:https://raw.githubusercontent.com/phppgadmin/phppgadmin/master/INSTALLhttp://www.postgresql.org/docs/9.0/s...

如何让您的php也支持pthreads多线程

  我们常常会碰到这样一种情况,开发环境在windows下开发,而生产环境确是linux。windows下能正常运行,上传到linux后却无法好好地玩耍了。然后开始了一轮尼玛式的疯狂的查找原因,最后发现是服务器环境问题。这时只能默默地爆一句shit。最近在用php多线程开发一个小功能也碰到类似的问题,在此记录一下。   1、查找资料发现php5.3或以上,...

天网计划 php skymvc框架

简介:这是天网计划 php skymvc框架的详细页面,介绍了和php,有关的知识、技巧、经验,和一些php源码等。 frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=339493' scrolling='no'>skymvc是一款轻量、简单的phpmvc框架,借鉴了各大...

php基础篇之一

1.PHP是什么 官方文档:超文本预处理器 2.PHP能够做一些什么? PHP主要应用在一下领域: (1)服务器端脚本,需要:PHP解析器,PHP服务器,PHP浏览器。 (2)命令行脚本,只需要PHP解析器,但是依赖于cron(Linux/Unix环境)和task scheduler(Windows环境)。 (3)编写桌面应用程序,依赖于PHP-GTK扩展...