人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascript→POST・GET送信→PHP内でのデータの受け取り方


javascriptで下記のようにopen()を使用し、POST送信したデータのPHP側での受け取り方

xmlhttp.open("POST","../login/logincheck.php",true);
xmlhttp.send("id="+encodeURI("saa")+"&password="+encodeURI("6"));

一応普通にPHP側では以下のように受け取ってみましたが、うまくうけとれていないようなのですが、どうしたらよいでしょうか?またGET送信の場合も教えてほしいです。

$id = $_POST['id'];
$keyword = $_POST['password'];

●質問者: wakannaidesu
●カテゴリ:ウェブ制作
✍キーワード:JavaScript keyword LOGiN open password
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● Mook
●27ポイント

的外れでしたらポイント不要です。


$id = $_POST['id'];

$keyword = $_POST['password'];

ではなく

$id = $_GET['id'];

$keyword = $_GET['password'];

ではないすか。


POST は Form 内で設定したものを受け取ります。

<form>
<input type="text" name="id" value="foobar">
</form>

$_POST['id'];

のような感じでしょうか。


2 ● Mook
●27ポイント

先の回答は、まったく勘違いしていたようです。

この件に関しては、知見がないので回答ポイントはお返しいたします。


検索した中にそれらしい話があったので、一応ご参考までに。

http://www.machu.jp/diary/20050512.html

中のリンクは、リンク切れになっていましたが、下記にあリました。

XMLHttpRequestのPOSTメソッドにおけるFirefoxとIEの挙動の違い


3 ● GEN111
●26ポイント

xmlhttp.open("POST","../login/logincheck.php",true);

の後に

xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") ;

を入れてみてください。

GET の場合は

xmlhttp.open("GET","../login/logincheck.php?id="+encodeURI("saa")+"&amp;password="+encodeURI("6"),true) ;
xmlhttp.send("") ;

のように URL の後ろにぶら下げて。

GET の場合 PHP の出力がブラウザのキャッシュに残るかもしれないので PHP の出力の前に

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: ".gmdate("D, d M Y H:i:s T", 0)) ; // 過去の日付
header("Date: ".gmdate("D, d M Y H:i:s T", time())) ; // 現在の日付

とでも入れておいてください。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ