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速度全攻略
Oct 09 PHP
使用PHP下载CSS文件中的图片的代码
Sep 24 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
Nov 19 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
Jan 28 PHP
yii2超好用的日期组件和时间组件
May 05 PHP
PHP与Java对比学习日期时间函数
Jul 03 PHP
php 判断过去离现在几年的函数(实例代码)
Nov 15 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
Mar 14 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
May 12 PHP
PHP笛卡尔积实现算法示例
Jul 30 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
Mar 01 PHP
laravel 根据不同组织加载不同视图的实现
Oct 14 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
坏狼的PHP学习教程之第2天
2008/06/15 PHP
php内核解析:PHP中的哈希表
2014/01/30 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
2015/10/21 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
2017/07/04 PHP
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
javascript 常用功能总结
2012/03/18 Javascript
js正则表达式中test,exec,match方法的区别说明
2014/01/29 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
JavaScript ES6的新特性使用新方法定义Class
2016/06/28 Javascript
AngularJS入门教程之REST和定制服务详解
2016/08/19 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
angular中的http拦截器Interceptors的实现
2017/02/21 Javascript
Vue.js学习笔记之修饰符详解
2017/07/25 Javascript
vue.js计算属性computed用法实例分析
2018/07/06 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
微信小程序云函数使用mysql数据库过程详解
2019/08/07 Javascript
layui 弹出层值回传解决方式
2019/11/14 Javascript
跟老齐学Python之Python安装
2014/09/12 Python
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
Python标准库inspect的具体使用方法
2017/12/06 Python
Python JSON格式数据的提取和保存的实现
2019/03/22 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
pytorch之inception_v3的实现案例
2020/01/06 Python
python安装cx_Oracle和wxPython的方法
2020/09/14 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
2020/09/16 Python
python实现图片转字符画
2021/02/19 Python
Java的基础面试题附答案
2016/01/10 面试题
如何判断计算机可能已经中马
2013/03/22 面试题
软件工程师岗位职责
2013/11/16 职场文书
祖国在我心中演讲稿600字
2014/05/04 职场文书
推荐信格式范文
2014/05/09 职场文书
中专生自荐信
2014/06/25 职场文书
小学新教师个人总结
2015/02/05 职场文书
党员自我评价范文2015
2015/03/03 职场文书
2015年妇幼卫生工作总结
2015/05/23 职场文书
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
2022/04/24 Python