博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php post接口,登录功能
阅读量:5037 次
发布时间:2019-06-12

本文共 2179 字,大约阅读时间需要 7 分钟。

  • 登录功能同注册功能一样,都是使用 post 方法在执行 sql 语句时,同样要使用 "select * from 表名 where 键名 = 参数" 的查询方式,不同的是:
  1. 注册使用查询语句是为了判断注册用的字段值是否重复 ? 注册失败 : 注册成功;
  2. 登录使用查询语句是为了查询表中是否有那个字段的值 ? 登录成功 : 登录失败;

 

  • 另一个相同的地方是都用到了 mysql_num_rows($result) 的sql 语句,都用它来做一件事,那就是通过它来确定返回的值是否为 1,根据返回这个值,来进行判断是否成功:
  1. 注册时,使用 $row = mysql_num_rows($result); 如果 $row=1,手机号存在,注册失败;
  2. 登录时,使用 $row = mysql_num_rows($result); 如果 $row=1,手机号存在,登录成功;

这个接口同样分为 5 步走:

连接服务器;

$link = mysql_connect("localhost","root","root") or die ("连接服务器失败".mysql_error()); //防止中文乱码 mysql_query("SET NAMES UTF8");

 

连接数据库;

mysql_select_db("test",$link) or die("选择数据库失败".mysql_error());

 

执行sql语句;

//参数$tel = $_POST["tel"];$pwd = $_POST["pwd"];//根据条件查询$insert = "select * from t_user where user_phone = '$tel' and user_password = '$pwd'";$result = mysql_query($insert);

 

根据执行的结果,写两种不同的结果并以JSON方式返回;

//判断是否可以查询出要登录的手机号,还是使用 mysql_num_rows()返回的值是否为 1,就是1条数据,因此这个$row就是返回的一整条数据    $row = mysql_num_rows($result);    if($row == 1){        //定义一个数组        $array = array();        /*         * 如果等于1,说明查询成功,也就是登录成功,说明这个用户是存在的,就需要把对应的数据返回给一个数组         * 为什么要用 while 语句呢?因为登录一次只查询一条语句,while(){}语句,只执行一次        */        while($row = mysql_fetch_array($result)){            //把返回的数据从 $row 中取出存入 $array中,一般是要把所有的字段都储存在 数组中            $array["user_id"] = $row["user_id"];            $array["user_phone"] = $row["user_phone"];            $array["user_name"] = $row["user_name"];            $array["user_sex"] = $row["user_sex"];            $array["user_password"] = $row["user_password"];            $array["user_header"] = $row["user_header"];        }        //把上面的数组以 json 格式返回        $json = json_encode(array(            "resultCode"=>200,            "message"=>"登录成功!",            "data"=>$array        ));        echo($json);    }else{        $json = json_encode(array(            "resultCode"=>500,            "message"=>"登录失败!"        ));        echo($json);    }

 

关闭服务器;

mysql_close($link);

 

任何接口在让客户端使用时,都要进行测试,同样使用 Rest Client,参数同注册时一样:

 

唯一不同的是,登录需要返回查询的结果,也就是是否登录成功的消息需要返回给客户端:

 

 

有个问题不太明白,返回的 “message”为什么是"\u767b\u5f55\u6210\u529f\uff01"  ????

有知情的大侠能不能指点一下,非常感谢!

 巳找到解决办法:http://www.cnblogs.com/baiyygynui/p/6653869.html

转载于:https://www.cnblogs.com/baiyygynui/p/6653755.html

你可能感兴趣的文章
JDBC基础篇(MYSQL)——使用statement执行DQL语句(select)
查看>>
关于React中props与state的一知半解
查看>>
java中Hashtable和HashMap的区别(转)
查看>>
关闭数据库
查看>>
webStrom智能提示忽略首字母大小写问题
查看>>
层叠加的五条叠加法则(一)
查看>>
设计模式六大原则(5):迪米特法则
查看>>
对Feature的操作插入添加删除
查看>>
javascript String
查看>>
ecshop 系统信息在哪个页面
查看>>
【转】码云source tree 提交超过100m 为什么大文件推不上去
查看>>
Oracle数据库的增、删、改、查
查看>>
阿里市值超越亚马逊 马云开启下半场技术理想
查看>>
MySql执行分析
查看>>
git使用中的问题
查看>>
yaml文件 .yml
查看>>
linux字符集修改
查看>>
phpcms 添加自定义表单 留言
查看>>
mysql 优化
查看>>
读书笔记 ~ Nmap渗透测试指南
查看>>