Maison > développement back-end > tutoriel php > Analyser des exemples d'interface API PHP pour implémenter les fonctions d'enregistrement, de connexion et de requête d'informations utilisateur

Analyser des exemples d'interface API PHP pour implémenter les fonctions d'enregistrement, de connexion et de requête d'informations utilisateur

怪我咯
Libérer: 2023-03-10 14:34:01
original
2107 Les gens l'ont consulté

Cet article présente principalement l'interface API d'enregistrement, de connexion et de requête d'informations utilisateur implémentée par PHP.Il analyse les compétences de mise en œuvre des fonctions d'enregistrement, de connexion, de requête et de connexion curl des utilisateurs côté serveur PHP sous la forme d'exemples spécifiques. besoin, c'est possible Pour référence,

L'exemple de cet article décrit l'interface API de requête d'enregistrement, de connexion et d'informations utilisateur implémentée par PHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Serveur

<?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));
}
?>
Copier après la connexion

Exemple client :

<?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)));
?>
Copier après la connexion

Remarque : La fonction est une fonction de filtrage de chaînes personnalisée Pour plus de détails, veuillez vous référer à : Une brève analyse des chaînes HTML de filtrage php et des méthodes pour empêcher l'injection SQLlib_replace_end_tag

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal