本文实例讲述了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("xEFxBBxBF", "", $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程序设计有所帮助。