Home  >  Article  >  Backend Development  >  Analyze PHP API interface examples to implement registration, login and query user information functions

Analyze PHP API interface examples to implement registration, login and query user information functions

怪我咯
怪我咯Original
2017-06-16 10:54:512069browse

This article mainly introduces the registration, login and user information query function API interface implemented by PHP. It analyzes the PHP server-side user registration, login, query and curl login query function implementation skills in the form of specific examples. Friends who need it can Refer to the following

The example of this article describes the registration, login and user information query API interface implemented by PHP. Share it with everyone for your reference, the details are as follows:

Server

##

<?php
require &#39;conn.php&#39;;
header(&#39;Content-Type:text/html;charset=utf-8&#39;);
$action = $_GET[&#39;action&#39;];
switch ($action) {
  //注册会员
  case"adduserinfo";
    $username = lib_replace_end_tag(trim($_GET[&#39;username&#39;]));
    $password2 = lib_replace_end_tag(trim($_GET[&#39;userpassword&#39;]));
    $password = md5("$password2" . ALL_PS);
    $email = lib_replace_end_tag(trim($_GET[&#39;email&#39;]));
    if ($username == &#39;&#39; || $password2 == &#39;&#39; || $password == &#39;&#39;) {
      $res = urlencode("参数有误");
      exit(json_encode($res)); //有空信息
    }
    $sql = "select username from `member` where username=&#39;$username&#39;";
    $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 (&#39;$username&#39;,&#39;$password&#39;,&#39;$email&#39;)";
      mysql_query($addsql);
      exit(json_encode(0)); //返回0表示注册成功
    }
    break;
  //查询用户信息
  case"selectuserinfo";
    $username = lib_replace_end_tag($_GET[&#39;username&#39;]);
    $sql = "select id,username,nickname,mobile from `member` where username=&#39;$username&#39;";
    $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[&#39;username&#39;]);
    $password2 = lib_replace_end_tag(trim($_GET[&#39;userpassword&#39;]));
    $password = md5("$password2" . ALL_PS);
    $sqluser = "select id,username,password from `member` where username=&#39;" . $username . "&#39; and password=&#39;" . $password . "&#39;";
    $queryuser = mysql_query($sqluser);
    $rowuser = mysql_fetch_array($queryuser);
    if ($rowuser && is_array($rowuser) && !empty($rowuser)) {
      if ($rowuser[&#39;username&#39;] == $username && $rowuser[&#39;password&#39;] == $password) {
        if ($rowuser[&#39;password&#39;] == $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));
}
?>

Client example:

##
<?php
header(&#39;Content-Type:text/html;charset=utf-8&#39;); //避免输出乱码
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(&#39;Content-Type: multipart/form-data;&#39;));
  }
  $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", &#39;&#39;, $postResult);
    switch (curl_getinfo($ch, CURLINFO_CONTENT_TYPE)) {
      case &#39;application/json&#39;:
        $postResult = json_decode($postResult);
        break;
    }
    curl_close($ch);
    return $postResult;
  }
}
$postUrl = "http://pujia.test.com/api/server.php";
$p=$_GET[&#39;p&#39;];
if ($p =="selectuserinfo") {
  $username = $_GET[&#39;username&#39;];
  $parms = "?action=selectuserinfo&username=" . $username . "";
} elseif ($p =="adduserinfo") {
  $username = $_GET[&#39;username&#39;];
  $userpassword = $_GET[&#39;userpassword&#39;];
  $parms = "?action=adduserinfo&username=" . $username . "&userpassword=" . $userpassword . "";
} elseif ($p =="userlogin") {
  $username = $_GET[&#39;username&#39;];
  $userpassword = $_GET[&#39;userpassword&#39;];
  $parms = "?action=userlogin&username=" . $username . "&userpassword=" . $userpassword . "";
}
$res = httpPost($postUrl, $parms); //$parms
$res = json_decode($res);
print_r(urldecode(json_encode($res)));
?>

##Note:

lib_replace_end_tag# in the code ##The function is a custom string filtering function. For details, please refer to: A brief analysis of php filtering html strings and methods to prevent SQL injection

The above is the detailed content of Analyze PHP API interface examples to implement registration, login and query user information functions. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn