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 相关文章推荐
风格模板初级不完全修改教程
Oct 09 PHP
NO3第三帝国留言簿制作过程
Oct 09 PHP
php的正则处理函数总结分析
Jun 20 PHP
解析smarty模板中类似for的功能实现
Jun 18 PHP
详解PHP实现异步调用的4种方法
Mar 14 PHP
php自定义函数实现汉字转换utf8编码的方法
Sep 29 PHP
使用php实现网站验证码功能【推荐】
Feb 09 PHP
PHP实现的分解质因数操作示例
Aug 01 PHP
PHP大文件分片上传的实现方法
Oct 28 PHP
Laravel 添加多语言提示信息的方法
Sep 29 PHP
解决laravel中日志权限莫名变成了root的问题
Oct 17 PHP
基于PHP实现发微博动态代码实例
Dec 11 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
把从SQL中取出的数据转化成XMl格式
2006/10/09 PHP
php你的验证码安全码?
2007/01/02 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
PHP上传图片类显示缩略图功能
2016/06/30 PHP
Yii中的relations数据关联查询及统计功能用法详解
2016/07/14 PHP
javascript 精粹笔记
2010/05/09 Javascript
js判断变量是否未定义的代码
2020/03/28 Javascript
BootStrap使用file-input插件上传图片的方法
2016/09/05 Javascript
原生js的ajax和解决跨域的jsonp(实例讲解)
2017/10/16 Javascript
微信小程序返回多级页面的实现方法
2017/10/27 Javascript
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
vue循环数组改变点击文字的颜色
2019/10/14 Javascript
Js代码中的span拼接问题解决
2019/11/22 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
design vue 表格开启列排序的操作
2020/10/28 Javascript
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
Python中的Classes和Metaclasses详解
2015/04/02 Python
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
python中scikit-learn机器代码实例
2018/08/05 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
2020/09/03 Python
浅析Python requests 模块
2020/10/09 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
2020/11/25 Python
HTML5在IE10、火狐下中文乱码问题的解决方法
2013/11/18 HTML / CSS
旅游专业职业生涯规划范文
2014/01/13 职场文书
护士实习求职信
2014/06/22 职场文书
教师个人年终总结
2015/02/11 职场文书
小学思品教学反思
2016/02/20 职场文书
Python list去重且保持原顺序不变的方法
2021/04/03 Python
Java面试题冲刺第十六天--消息队列
2021/08/07 面试题
详解Java七大阻塞队列之SynchronousQueue
2021/09/04 Java/Android
Python matplotlib绘制雷达图
2022/04/13 Python