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加MYSQL服务器
Oct 09 PHP
PHP 数据结构 算法 三元组 Triplet
Jul 02 PHP
php自动加载机制的深入分析
Jun 08 PHP
php多个文件及图片上传实例详解
Nov 10 PHP
PHP中使用BigMap实例
Mar 30 PHP
php简单实现查询数据库返回json数据
Apr 16 PHP
php获取、检查类名、函数名、方法名的函数方法
Jun 25 PHP
PHP中常见的缓存技术实例分析
Sep 23 PHP
10款实用的PHP开源工具
Oct 23 PHP
详解PHP中的 input属性(隐藏 只读 限制)
Aug 14 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 PHP
如何在PHP环境中使用ProtoBuf数据格式
Jun 19 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 array_slice函数的使用以及参数详解
2008/08/30 PHP
PHP运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
ThinkPHP之用户注册登录留言完整实例
2014/07/22 PHP
汇总PHPmailer群发Gmail的常见问题
2016/02/24 PHP
浅谈PHP的反射机制
2016/12/15 PHP
js跳转页面方法总结
2014/01/29 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
浅谈JavaScript数据类型
2015/03/03 Javascript
jquery实现简单实用的打分程序实例
2015/07/23 Javascript
bootstrapValidator 重新启用提交按钮的方法
2017/02/20 Javascript
jQuery实现的背景颜色渐变动画效果示例
2017/03/24 jQuery
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
详解vue beforeEach 死循环问题解决方法
2020/02/25 Javascript
JavaScript JSON使用原理及注意事项
2020/07/30 Javascript
python list转dict示例分享
2014/01/28 Python
Python迭代用法实例教程
2014/09/08 Python
Python多线程同步Lock、RLock、Semaphore、Event实例
2014/11/21 Python
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
python字符串,数值计算
2016/10/05 Python
Python程序中设置HTTP代理
2016/11/06 Python
多版本Python共存的配置方法
2017/05/22 Python
python内置数据类型之列表操作
2018/11/12 Python
Python进阶之自定义对象实现切片功能
2019/01/07 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
python 中关于pycharm选择运行环境的问题
2020/10/31 Python
美国嘻哈文化生活方式品牌:GLD
2018/04/15 全球购物
Puma印度官网:德国运动品牌
2019/10/06 全球购物
大学生农村教师实习自我鉴定
2013/09/21 职场文书
创建卫生先进单位实施方案
2014/03/10 职场文书
金融系应届毕业生求职信
2014/05/26 职场文书
公司贷款承诺书
2014/05/30 职场文书
暑假安全教育广播稿
2014/09/10 职场文书
学生抄作业检讨书(2篇)
2014/10/17 职场文书
同意落户证明
2015/06/19 职场文书
vue使用refs获取嵌套组件中的值过程
2022/03/31 Vue.js