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基础知识:函数基础知识
Dec 13 PHP
php jquery 实现新闻标签分类与无刷新分页
Dec 18 PHP
php 高性能书写
Dec 11 PHP
php强制下载类型的实现代码
Apr 21 PHP
php检查页面是否被百度收录
Oct 28 PHP
制作个性化的WordPress登陆界面的实例教程
May 21 PHP
thinkPHP5.0框架简单配置作用域的方法
Mar 17 PHP
php json相关函数用法示例
Mar 28 PHP
PHP递归删除多维数组中的某个值
Apr 17 PHP
实例介绍PHP中zip_open()函数用法
Feb 15 PHP
PHP如何使用cURL实现Get和Post请求
Jul 11 PHP
PHP如何防止用户重复提交表单
Dec 09 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
discuz安全提问算法
2007/06/06 PHP
php调用mysql数据 dbclass类
2011/05/07 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
PHP 前加at符合@的作用解析
2015/07/31 PHP
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
分析PHP中单双引号的误区和双引号小隐患
2016/07/19 PHP
js加解密 脚本解密
2008/02/22 Javascript
最近项目写了一些js,水平有待提高
2009/01/31 Javascript
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
根据出生日期自动取得星座的js代码
2010/07/20 Javascript
JavaScript创建对象的写法
2013/08/29 Javascript
JavaScript深度复制(deep clone)的实现方法
2016/02/19 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
第一篇初识bootstrap
2016/06/21 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
JavaScript中双符号的运算详解
2017/03/12 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
node+express框架中连接使用mysql(经验总结)
2018/11/10 Javascript
小程序点击图片实现png转jpg
2019/10/22 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
2020/07/30 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
python查看数据类型的方法
2019/10/12 Python
Selenium使用Chrome模拟手机浏览器方法解析
2020/04/10 Python
200行python代码实现贪吃蛇游戏
2020/04/24 Python
Python实现EM算法实例代码
2020/10/04 Python
深入浅出CSS3 background-clip,background-origin和border-image教程
2011/01/27 HTML / CSS
毕业生个人求职的自我评价
2013/10/28 职场文书
制药工程专业个人求职自荐信
2014/01/25 职场文书
眼镜促销方案
2014/03/15 职场文书
库房保管员岗位职责
2014/04/07 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
授权委托书
2015/01/28 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书