• ベストアンサー

javascriptでポスト送信したデータの受け取り方

javascriptで下記のようにPOST送信したデータのPHP側での受け取り方 xmlhttp.open("POST","../login/logincheck.php",true); xmlhttp.send("id="+encodeURI("saa")+"&password="+encodeURI("6")); 一応普通にPHP側では以下のように受け取ってみましたが、うまくうけとれていないようなのですが、どうしたらよいでしょうか? $id = $_POST['id']; $keyword = $_POST['password'];

  • PHP
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

xmlhttp.open("POST","../login/logincheck.php",true); のあとに、 xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); する必要があります。 またマルチバイト文字をPOSTパラメータとして送る場合は、常にUTF-8になるので、受信側(logincheck.php)でコード変換が必要なことがあります。

関連するQ&A

  • javascript と php の、フォームを使わない送受信について

    初めて質問します。わかりにくいかも知れませんが、どうぞよろしくお願いします。 当方、HTTPXMLオブジェクト(?)を使ってHTTP通信を試みていますが、phpでのPOST受信が出来ず困っております。 以下、要約したソースコードを掲載します。 javascript側----------------- post_data = 'user_id='+ user_id +'&password=' + password; //user_id,password共にテキストフォームに入力された変数です (中略) httpObj.open('POST','hoge.php',true); httpObj.send(post_data); //これで送信し (中略) a = httpObj.responceText //で受け取っています。 ---------------------------------- php側----------------------------- $user_id = $_POST['user_id']; $password = $_POST['password']; ~DB接続処理~ print $res; //$resはjavascriptに送る文字列です ---------------------------------- と言うような感じなのですが、 javascript側の最後の a にはちゃんと $res の内容が格納され、表示もされることを確認しているのですが、 php側の$_POST['user_id']に何も入らずnullのままで、どうしたらいいのか途方に暮れています…。 蛇足かも知れませんが、念のためにHTML側のテキストフォーム部のソースだけを書いておきます。 <input type="text" id="user_id">ユーザ名 <input type="password" id="pass">パスワード <input type="button" id="login" value="log in"> <form>タグは使わず、ボタンがクリックされたときに、テキストフォームの内容を読み取ってphpに値を投げると言うイベントハンドラ的な動作をしています。 フォームの内容はjavascriptで取れていますが、如何せんphpへ投げたときにphpが受け取ってくれない…… 長文申し訳ございません。回答のほう、よろしければお願いします。

  • ajaxでのデータの送信の質問です

    ajaxでjavascriptからphpに2つの変数を送りたいのです。 xmlReq.open("GET","main.php?isbn=" + encodeURI(data1),true); xmlReq.send(null); 現在このようにデータを送っているのですがdata2の値も同時にmain.phpに送りたいのです。 当方初心者なので実例で示していただけると嬉しいです。 回答よろしくお願いいたします。

    • ベストアンサー
    • AJAX
  • POST送信かGET送信か

       ------------------------------------------ <SCRIPT language="JavaScript"><!-- function GoPage(url, id){ document.form.action = url; document.form.id.value = id; document.form.submit(true) } // --></script> <!--中略--> <input type="submit" name="submit" value="送信" onClick="javascript:GoPage("a.php", "1")">    ------------------------------------------    上記のような処理を書いた場合、 遷移先である a.php で id(値:1)を取得する時は POSTで受け取るのですか?それともGETでしょうか?   

  • ajaxでPHPにPOST送信して結果データをテキストファイルに書き込みたいのですがうまくいきません

    jQueryを使用しています。 <script language="Javascript"> function send(){// $.ajax({ type: "POST", url: "write.php",//write.phpに送信 date: {date: $("#text").val()},//「id="text"」なテキストエリアのvalue値を取得し「date」として送信。 }); } </script> <form name="chat" onsubmit="send();return false" method="POST" > <textarea id="text"></textarea><br> <input type="submit" value="送信"></input> </form> write.php <?php $textfile = fopen("text.txt", "a");//「text.txt」をオープン fputs($textfile, $_POST["date"]);//書き込む(これができません。ディレクトリーにファイルがなかった場合、ファイルは作成されます) fclose($textfile); ?> どのようにしたら、テキストエリアに入力された値を、テキストファイルに書き込むことができるのでしょうか? 色々、調べたのですがプログラムの書き方の間違いがどうしても分かりません。教えてください。

    • ベストアンサー
    • AJAX
  • Javascript の .send で POST できません。

    こんにちは。 Javascriptで[aaa=bbb&ccc=ddd]というデータをPOSTしてみたいと思って以下のコードを書いてみたのですが、うまく動作しません。 どこが間違っているのでしょうか? コメントもツッコミどころがあるかもしれませんが、ご指摘よろしくお願いいたします。 <html> <head> <script type="text/javascript"> <!-- var gActiveXObj = ""; function GetActiveXObject() {     if(window.ActiveXObject)     {         try//IEのActiveXObject         {             gActiveXObj = new ActiveXObject("Msxml2.XMLHTTP");         }catch(exception){//IEの古いバージョン             try             {                 gActiveXObj = new ActiveXObject("Microsoft.XMLHTTP");             }catch(exception2){                 return null;             }         }     } } function PostData() {     if(!gActiveXObj)     {         GetActiveXObject();         if(!gActiveXObj)         {             alert('ご利用のブラウザではActiveXオブジェクトが取得できません。IEを使ってみて下さい');             return null;             }     }     gActiveXObj.open('POST','test.php',true);//まだソケットはオープンしてない。メンバの設定してるだけ。     //パラメータは左から、メソッド、ファイル名、非同期通信を有効にするかどうか。          gActiveXObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");//ヘッダを設定     gActiveXObj.send( "aaa=bbb&ccc=ddd" );     if(gActiveXObj.status == 200)     {         //サーバから受信完了:readyState = 4 メソッドの成功 : status = 200         alert('POST成功');     }else{         alert('readyState: + 'gActiveXObj.readyState);         alert('status:' + gActiveXObj.status);     } } // --> </script> </head> <body> <a href="javascript:PostData()">実験</a> </body> </html>

  • javascriptのsubmitを使ってデータをpost送信したい。

    javascriptのsubmitを使ってデータをpost送信したい。 aaa.phpというファイルに複数のチェックボックスがあり、リンクをクリックしたときに チェックされた値のみをbbb.phpへ引き渡したいです。 自分なりに書いてみましたが、bbb.phpへは遷移するものの、データが表示されません。 document.form1.method部分をGETにすると、データは表示されますが、POSTにすると うまく引渡しができません。 的外れな書き方をしているかもしれませんが、どなたかご教授いただけませんでしょうか? よろしくお願いいたします。 【追記】 チェックボックスの数は固定ではなく変動があり、値も実際はランダムです。 デザインの都合上どうしてもaタグでしか記述が出来ません。 ------------------------------------------------------------------------------ 【aaa.php】 <script language="JavaScript"> <!-- function mailform() {  var i = 0;  var chkvalue = "";  var count = 0;  var chk = document.getElementsByName('no');  for(i=0; i<chk.length; i++) {   if (chk[i].checked == true) {    chkvalue += chk[i].value;    count++;   }  }  if(count == 0) {   alert("チェックされていません。");   return false;  } else {   document.form1.action = "./bbb.php";   document.form1.method="post";   document.form1.submit();  } } //--> </script> <a href="#" onClick="send()">bbb.phpへ遷移する</a> <form name="form1">  <input type="checkbox" name="no" value="1"><br />  <input type="checkbox" name="no" value="2"><br />  <input type="checkbox" name="no" value="3"><br />  <input type="checkbox" name="no" value="4"><br /> </form> 【bbb.php】 var_dump($_POST["no"]);

  • XDomainRequestによるPOST送信

    こんばんは。 クロスドメインかつIEに対応するためにXDomainRequestを使っているのですが、POST送信する方法で詰まっています。 サーバ側のPHPファイルに対してPOSTでデータを送信したいのですが、サーバ側では受信できていません。 (↑php側でログを残すことで、受信できていないことを確認しています) データ送信の形式はXMLHttpRequestと同じように、send(key=value)としていますが間違っているでしょうか。 私なりに調べてみましたが、send(null)としているサイトが多くパラメータを送信しているのが見つからなかったため、こちらで質問させて頂きました。 宜しくお願いします。 クライアント側のコードは、 if(window.XDomainRequest){ var xdr = new XDomainRequest(); xdr.onload = function(){ alert(xdr.responseText); } xdr.open("post", "サーバ側PHPファイル"); xdr.send("key=value"); //ここでデータ送信 } サーバ側PHPファイルは、 header("Access-Control-Allow-Origin:*"); header("Access-Control-Allow-Headers:Content-Type"); if($_POST['value']){ $result = "RESULT:".$_POST['value']; echo "'$result'"; }

  • PHPのセッションについて

    PHPのセッションについて 現在ログインフォームを作成しているのですが、 ログインフォームからIDとパスワードを送信して、合っていれば セッションを発行してロケーションで飛ばそうと思っているのですが、 初回時にIDとパスワードを入力して送信しても、セッションが引き継がれず 2回目以降だとセッションが引き継がれる症状に悩んでおります。 どなたかご教授ください。 宜しくお願いいたします。 【login.php】-------------------------------- <?php session_name("stock"); session_start(); $error_flag = 0; if(isset($_POST["login"])){ $id = htmlentities($_POST["id"],ENT_COMPAT); $password = trim(htmlentities($_POST["password"],ENT_COMPAT)); if($login_id == $id && $login_pass == $password){ $_SESSION["id"] = $id; $_SESSION["password"] = $password; header("Location:stock.php"); exit; }else{ $error_flag = 1; } } echo <<<EOD <form method="post" action="login.php" id="login"> <input type="text" name="id" id="id" > <input type="password" name="password" id="password"> <input type="submit" name="login" value="ログイン" /> </form> EOD; 【stock.php】--------------------------------- <?php session_name("stock"); session_start(); echo $_SESSION["id"]; echo $_SESSION["password"]; ?>

    • ベストアンサー
    • PHP
  • javascriptで困っています。教えてください

    以下のようにjavascriptの内容を書いた外部のテキストファイルを読み込んで、実行しようとしているのですが、うまくいきません。普通にjavascriptを読み込むのは分かっているのですが、このような方法ができないのでしょうか?よろしくお願いします。 <!doctype html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>無題ドキュメント</title> </head> <body> <div id="jsbox"></div> <script type="text/javascript"> var jsbox = document.getElementById("jsbox"); //非同期通信///////////////////////////////////////////// var xmlHttp; loadText(); function loadText(){ if (window.XMLHttpRequest){ xmlHttp = new XMLHttpRequest(); }else{ if (window.ActiveXObject){ xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }else{ xmlHttp = null; } } xmlHttp.onreadystatechange = checkStatus; xmlHttp.open("GET", "http://xxxxxxxxxxxx/js_test.txt", true); xmlHttp.send(null); } function checkStatus(){ if (xmlHttp.readyState == 4 && xmlHttp.status == 200){ var str = xmlHttp.responseText;alert(str); jsbox.innerHTML = str; test_js(); } } ///////////////////////////////////////////////////////////////// </script> </body> </html> テキストファイルをhttp://xxxxxxxxxxxx/js_test.txtに置き、テキストファイルの内容が <script type="text/javascript"> function test_js(){ alert("test"); } </script>

  • PHPで隠しデータをPOST送信する方法

    <form name="example" method="POST" action="example.php"> <input type="text" name="id" value="" /> <input type="password" name="pw" value="" /> <input type="submit" value="ログイン" /> </form> 上記のようなログインフォームがあるとします。 <input type="hidden" />のようにソースを見たらわかってしまう方法ではなく、 クライアント側で完全に見えないよう、id,pwの送信と同時にPHPで隠しデータをPOST送信する方法はございますでしょうか。 よろしくお願いいたします。

    • 締切済み
    • PHP