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 | 失敗:名前かパスワードが間違えています |