1. 程式人生 > >PHP開發API介面及使用

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)));
?>