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

 更新时间:2017年06月06日 08:57:30   作者:程序加载中  
这篇文章主要介绍了PHP实现的注册,登录及查询用户资料功能API接口,结合具体实例形式分析了php服务器端用户注册、登陆、查询及curl登陆查询功能实现技巧,需要的朋友可以参考下

本文实例讲述了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+MySQL会员系统开发专题》、《php+mysql数据库操作入门教程》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》及《php常见数据库操作技巧汇总

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

相关文章

  • php实现支持中文的文件下载功能示例

    php实现支持中文的文件下载功能示例

    文件下载功能是我们在工作中经常遇到的一个需求,最近在工作中就又遇到了,下面这篇文章主要给大家介绍了关于php实现支持中文的文件下载功能,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2017-08-08
  • Apache2 httpd.conf 中文版

    Apache2 httpd.conf 中文版

    Apache2 httpd.conf 中文版...
    2006-12-12
  • PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)

    PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)

    这篇文章主要介绍了PHP入门教程之数组用法,结合大量实例总结分析了php关于数组的创建、打印、遍历、获取、排序、插入、删除等常见操作技巧,需要的朋友可以参考下
    2016-09-09
  • PHP+JS实现批量删除数据功能示例

    PHP+JS实现批量删除数据功能示例

    这篇文章主要介绍了PHP+JS实现批量删除数据功能,结合实例形式分析了php结合js控制页面元素的选中与提交,以及php操作mysql实现批量删除功能的相关实现技巧,末尾还附带了一个php数据库操作类,需要的朋友可以参考下
    2017-11-11
  • 浅谈PHP设计模式之对象池模式Pool

    浅谈PHP设计模式之对象池模式Pool

    对象池模式是一种提前准备了一组已经初始化了的对象『池』而不是按需创建或者销毁的创建型设计模式。对象池客户端会向对象池中请求一个对象,然后使用这个返回的对象执行相关操作。当客户端使用完毕,它将把这个特定类型的工厂对象返回给对象池,而不是销毁掉这个对象。
    2021-05-05
  • Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法

    Zend Studio for Eclipse的java.lang.NullPointerException错误的

    Zend Studio for Eclipse 6.x 可以算得上是最好的PHP的IDE了.
    2008-12-12
  • PHP 二维array转换json的实例讲解

    PHP 二维array转换json的实例讲解

    今天小编就为大家分享一篇PHP 二维array转换json的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • php性能优化分析工具XDebug 大型网站调试工具

    php性能优化分析工具XDebug 大型网站调试工具

    大型网站调试工具之一(php性能优化分析工具XDebug) ,开发php的朋友可以参考下。有助于解决php代码的多种问题。
    2011-05-05
  • php实现的简易扫雷游戏实例

    php实现的简易扫雷游戏实例

    这篇文章主要介绍了php实现的简易扫雷游戏,涉及php字符串及流程控制的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 简单的pgsql pdo php操作类实现代码

    简单的pgsql pdo php操作类实现代码

    这篇文章主要介绍了简单的pgsql pdo php操作类,需要的朋友可以参考下
    2016-08-08

最新评论