2013/11/12 久米
名前とパスワードを送り、結果をjsonでもらう。
post送信
<?php
//POSTデータ
$data = http_build_query(
array(
"name" => "test01",
"pass" => "771"
)
);
$opts = array(
"http" => array(
"method" => "POST",
"header" => "Content-type: application/x-www-form-urlencoded",
"content" => $data
)
);
$url = "http://localhost/web3/api/login.php";
print file_get_contents($url, false, stream_context_create($opts));
?> |
get送信
<?php |
jsonで受け取った後は適切にデザインする。
POSTを受け、DBを検索、挿入し、結果をjson形式で出力するスクリプト例
下記はプリペアードステートメントで作っている。
<?php
if (!isset($_REQUEST["name"])) {
printResult("NO_NAME","");
exit();
}
if (!isset($_REQUEST["pass"])) {
printResult("NO_PASS","");
exit();
}
$name = $_REQUEST["name"];
$pass = $_REQUEST["pass"];
$link = mysqli_connect("localhost", "loginapi", "771", "loginapi");
if (!$link) {/* 接続状況をチェック */
printResult(mysqli_connect_error(), "");
exit();
}
$stmt = mysqli_prepare($link, "SELECT name FROM users WHERE lower(name)=lower(?) AND pass=?");
mysqli_stmt_bind_param($stmt, 'ss', $name, $pass);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $hontono_name);
mysqli_stmt_fetch($stmt);
mysqli_stmt_close($stmt);
mysqli_close($link);
$rst = "";
if($hontono_name==null){
$rst = "NO_USER";
}else{
$rst = "OK";
}
printResult($rst, $hontono_name);
function printResult($r, $n) {
$arr["result"] = $r;
$arr["name"] = $n;
printJson($arr);
}
function printJson($a) {
$json = json_encode($a);
header('Content-Type: text/javascript; charset=utf-8');
print $json;
}
?> |
| result | 意味 |
| OK | 成功 |
| NO_NAME | 失敗:名前を入力してください |
| NO_PASS | 失敗:パスワードを入力してください |
| NO_USER | 失敗:名前かパスワードが間違えています |