PHP实现的注册,登录及查询用户资料功能API接口示例


Posted in PHP onJune 06, 2017

本文实例讲述了PHP实现的注册,登录及查询用户资料功能API接口。分享给大家供大家参考,具体如下:

服务端

<?php
require 'conn.php';
header('Content-Type:text/html;charset=utf-8');
$action = $_GET['action'];
switch ($action) {
  //注册会员
  case"adduserinfo";
    $username = lib_replace_end_tag(trim($_GET['username']));
    $password2 = lib_replace_end_tag(trim($_GET['userpassword']));
    $password = md5("$password2" . ALL_PS);
    $email = lib_replace_end_tag(trim($_GET['email']));
    if ($username == '' || $password2 == '' || $password == '') {
      $res = urlencode("参数有误");
      exit(json_encode($res)); //有空信息
    }
    $sql = "select username from `member` where username='$username'";
    $query = mysql_query($sql, $conn);
    $count = mysql_num_rows($query);
    if ($count > 0) {
      exit(json_encode(1)); //返回1表示注册失败
    } else {
      $addsql = "insert into `member` (username,password,email) values ('$username','$password','$email')";
      mysql_query($addsql);
      exit(json_encode(0)); //返回0表示注册成功
    }
    break;
  //查询用户信息
  case"selectuserinfo";
    $username = lib_replace_end_tag($_GET['username']);
    $sql = "select id,username,nickname,mobile from `member` where username='$username'";
    $query = mysql_query($sql, $conn);
    $row = mysql_fetch_array($query);
    foreach ($row as $key => $v) {
      $res[$key] = urlencode($v);
    }
    exit(json_encode($res));
    break;
  //会员登录
  case"userlogin";
    $username = lib_replace_end_tag($_GET['username']);
    $password2 = lib_replace_end_tag(trim($_GET['userpassword']));
    $password = md5("$password2" . ALL_PS);
    $sqluser = "select id,username,password from `member` where username='" . $username . "' and password='" . $password . "'";
    $queryuser = mysql_query($sqluser);
    $rowuser = mysql_fetch_array($queryuser);
    if ($rowuser && is_array($rowuser) && !empty($rowuser)) {
      if ($rowuser['username'] == $username && $rowuser['password'] == $password) {
        if ($rowuser['password'] == $password) {
          $res = urlencode("登录成功");
          exit(json_encode($res));
        } else {
          $res = urlencode("密码错误");
          exit(json_encode($res));
        }
      } else {
        $res = urlencode("用户名不存在");
        exit(json_encode($res));
      }
    } else {
      $res = urlencode("用户名密码错误");
      exit(json_encode($res));
    }
    /*
     * 0:表示登录成功,1:表示密码错误,2:用户名不存在,3:用户名密码错误
     */
    break;
  default:
    exit(json_encode(error));
}
?>

客户端例子:

<?php
header('Content-Type:text/html;charset=utf-8'); //避免输出乱码
function httpPost($url, $parms) {
  $url = $url . $parms;
  if (($ch = curl_init($url)) == false) {
    throw new Exception(sprintf("curl_init error for url %s.", $url));
  }
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 600);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  if (is_array($parms)) {
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data;'));
  }
  $postResult = @curl_exec($ch);
  $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  if ($postResult === false || $http_code != 200 || curl_errno($ch)) {
    $error = curl_error($ch);
    curl_close($ch);
    throw new Exception("HTTP POST FAILED:$error");
  } else {
    // $postResult=str_replace("\xEF\xBB\xBF", '', $postResult);
    switch (curl_getinfo($ch, CURLINFO_CONTENT_TYPE)) {
      case 'application/json':
        $postResult = json_decode($postResult);
        break;
    }
    curl_close($ch);
    return $postResult;
  }
}
$postUrl = "http://pujia.test.com/api/server.php";
$p=$_GET['p'];
if ($p =="selectuserinfo") {
  $username = $_GET['username'];
  $parms = "?action=selectuserinfo&username=" . $username . "";
} elseif ($p =="adduserinfo") {
  $username = $_GET['username'];
  $userpassword = $_GET['userpassword'];
  $parms = "?action=adduserinfo&username=" . $username . "&userpassword=" . $userpassword . "";
} elseif ($p =="userlogin") {
  $username = $_GET['username'];
  $userpassword = $_GET['userpassword'];
  $parms = "?action=userlogin&username=" . $username . "&userpassword=" . $userpassword . "";
}
$res = httpPost($postUrl, $parms); //$parms
$res = json_decode($res);
print_r(urldecode(json_encode($res)));
?>

注:代码中的lib_replace_end_tag函数为自定义字符串过滤函数,具体可参考:浅析php过滤html字符串,防止SQL注入的方法

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 遍历XP文件夹下所有文件
Nov 27 PHP
探讨:parse url解析URL,返回其组成部分
Jun 14 PHP
php多功能图片处理类分享(php图片缩放类)
Mar 14 PHP
Linux下安装oracle客户端并配置php5.3
Oct 12 PHP
php使用unset()删除数组中某个单元(键)的方法
Feb 17 PHP
Laravel 5框架学习之子视图和表单复用
Apr 09 PHP
分享PHP函数实现数字与文字分页代码
Jul 28 PHP
PHP语法小结之基础和变量
Nov 22 PHP
php读取txt文件并将数据插入到数据库
Feb 23 PHP
PHP如何将XML转成数组
Apr 04 PHP
PHP中Socket连接及读写数据超时问题分析
Jul 19 PHP
PHP实现的redis主从数据库状态检测功能示例
Jul 20 PHP
PHP PDO操作MySQL基础教程
Jun 05 #PHP
PHP生成各种随机验证码的方法总结【附demo源码】
Jun 05 #PHP
Windows 下安装 swoole 图文教程(php)
Jun 05 #PHP
PHP手机号中间四位用星号*代替显示的实例
Jun 02 #PHP
总结一些PHP中好用但又容易忽略的小知识
Jun 02 #PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
Jun 02 #PHP
Yii2中简单的场景使用介绍
Jun 02 #PHP
You might like
PHP4实际应用经验篇(2)
2006/10/09 PHP
PHP完整的日历类(CLASS)
2006/11/27 PHP
PHP 实现缩略图
2021/03/09 PHP
javaScript Array(数组)相关方法简述
2009/07/25 Javascript
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
2011/12/26 Javascript
用原生JS对AJAX做简单封装的实例代码
2016/07/13 Javascript
JavaScript门道之标准库
2018/05/26 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
微信小程序使用npm支持踩坑
2018/11/07 Javascript
VueJS 取得 URL 参数值的方法
2019/07/19 Javascript
这15个Vue指令,让你的项目开发爽到爆
2019/10/11 Javascript
Vue双向绑定实现原理与方法详解
2020/05/07 Javascript
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
python实现redis三种cas事务操作
2017/12/19 Python
Python分支结构(switch)操作简介
2018/01/17 Python
查看django执行的sql语句及消耗时间的两种方法
2018/05/29 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
Python生命游戏实现原理及过程解析(附源代码)
2019/08/01 Python
python3实现单目标粒子群算法
2019/11/14 Python
Python求解正态分布置信区间教程
2019/11/20 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
python 删除系统中的文件(按时间,大小,扩展名)
2020/11/19 Python
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
2015/07/24 面试题
物流管理专业职业生涯规划书
2014/01/06 职场文书
大学生的创业计划书就该这么写
2014/01/30 职场文书
专科应届毕业生求职信
2014/06/04 职场文书
银行领导班子四风对照检查材料
2014/09/27 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
蓬莱阁导游词
2015/02/04 职场文书
老公出轨后的保证书
2015/05/08 职场文书
2015年董事长秘书工作总结
2015/07/23 职场文书
贷款担保书范本
2015/09/22 职场文书
服务器nginx权限被拒绝解决案例
2022/09/23 Servers
python index() 与 rindex() 方法的使用示例详解
2022/12/24 Python