2016-03-07 76 views
2

編輯:我用if語句的var_dump($ _ POST)OUTSIDE

我試過多種解決方案,都沒有工作,所以這是我最後一次嘗試解決這個問題。我有一個用HTML編寫的表單,通過POST將數據發送到PHP腳本,無論出於何種原因,PHP腳本僅將$ _POST讀爲空。

這是我的PHP代碼:

if (isset($_POST['login'])) { 
    die('test'); 
} 

這是我的HTML形式:

<form action="api/login.php" method="post"> 
    <input type="text" name="login-email" placeholder="Email"> 
    <input type="password" name="login-password" placeholder="Password"> 
    <input type="checkbox" name="login-remember-me" checked> 
    <button name="login" type="submit">Login</button> 
</form> 

var_dump($_POST);回報:

陣列(0){}

file_get_contents('php://input');回報:

登錄電子郵件=用戶%40email.com &登錄密碼= 123123 &登錄記住,我=上&登錄=

就像我說的,我都想盡我在Google搜索這個問題數十次後遇到的解決方案。我正在使用IntelliJ IDEA 15.0.4在Windows 10 Enterprise x64上使用PHP 5.5.32 NTS。

編輯:做var_dump($ GLOBALS),我的輸入停留在[「HTTP_RAW_POST_DATA」],並沒有在其他地方結束。我也嘗試使用PHP 5.6.19 NTS而不是5.5.32,但仍未解決此問題。

+1

您也可以像下面那樣轉儲'$ GLOBALS':'var_dump($ GLOBALS);'來查看輸入結束的位置。 – Fin

+1

這可能聽起來很愚蠢,但你可能不會看'api/login.php',而是在不同的位置使用同名的文件...?嘗試改變你正在編輯的文件上的一些文本(並認爲是正確的),並看看它是否實際顯示... – webeno

+1

@JohnVegas檢查php.ini'post_max_size'值並確保它被設置爲有效值?即'8M' vs'8MB' –

回答

0

我找到了問題,但尚未解決問題。幸運的是,我不是這個問題持續存在的原因。似乎問題出在IntelliJ IDEA的內置網絡服務器中。希望這可以幫助別人找到解決方案。

1

我注意到你沒有value在你提交按鈕。試着把價值放在它上面。這就是爲什麼你的PHP代碼總是不在if語句內部,因爲$_POST['login']沒有設置。

根據您的帖子:

登錄電子郵件=用戶%40email.com &登錄密碼= 123123 &登錄記住,我=上&登錄=在

所以你PHP代碼:

if (isset($_POST['login'])) { //there is no value on $_POST['login] so it skips the statement. 
    var_dump($_POST); 
} 

但是,如果你把一個值就可以了,如樣品波紋管:

<form action="api/login.php" method="post"> 
    <input type="text" name="login-email" placeholder="Email"> 
    <input type="password" name="login-password" placeholder="Password"> 
    <input type="checkbox" name="login-remember-me" checked> 
    <button name="login" value="login" type="submit">Login</button> 
</form> 

它會產生這樣的:

登錄電子郵件=用戶%40email.com &登錄密碼= 123123 &登錄記住,我=上&登錄=登錄

然後你PHP將滿足條件。

if (isset($_POST['login'])) { 
    var_dump($_POST); 
} 

輸出:

陣列(4){[ 「登錄電子郵件」] =>串(4) 「試驗」[ 「登錄密碼」] =>串(4- )「test」[「login-remember-me」] => string(2)「on」[「login」] => string(5)「login」}

+0

這是我的假設,但我昨天已經測試過了:'$ _POST ['login']'也設置爲空值(測試PHP 5.6.18) – fusion3k