PHPの学習中で、ログインを行うプログラムを作っていて、Ajaxでログインの処理を行おうと思っています。
発生している問題
JavaScriptからPHPにPOST送信すると、$_POST
が空になってしまいます。
file_get_contents('php://input')
でメッセージボディーを確認すると、一応データは送信されているようです。
#ソースコード
データは Javascript(Fetch API)
=> POST
=> PHP($_POST)
という流れで送信されます。
html
1<form id="inputbox" name="inputbox"> 2 <input type="text" name="name" placeholder="ユーザー名"> 3 <input type="password" name="pass" placeholder="パスワード"> 4 <button type="button" onclick="signin();">サインイン</button> 5 <!-- このボタンで送信 --> 6</form>
javascript
1function signin(){ 2 fetch(`./account.php`,{ 3 method:"POST", 4 body:`type=signup&name=${inputbox.name.value}&pass=${inputbox.pass.value}`, 5 headers:{ 6 "Content-Type": "application/www-form-urlencoded" 7 } 8 }).then(response => { 9 //処理が続く 10 }).catch(reject => { 11 }); 12}
php
1echo file_get_contents('php://input'); 2if(!isset($_POST['type'])){ //ここで$_POSTが空になっている 3 exit; 4} 5$type = $_POST['type'];
環境
XAMPP for Windows 8.0.8
PHP 4.0.8
Windows 10 Home 20H2
Microsoft Edge 92.0.902.62
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。