2014-10-19 28 views
0

首先,我爲我的問題的無意義性質表示歉意,我試圖在互聯網上搜索解決方案,到目前爲止運氣很差,因此我轉而尋找真棒人StackOverflow,因爲這通常會得到解決問題的速度非常快。無法從表單中獲取用戶名(使用「post」)

我想爲一個網站做一個非常簡單的登錄函數,它由一個HTML表單和一個php登錄腳本組成,問題在於用戶名(和密碼)似乎不會從表單傳遞到登錄腳本。從表單開始,它看起來像這樣:

<form name="loginForm" method="post" action="loginScript.php"> 
    <table style="position: absolute; top:55%; left:50%; transform: translate(-50%, -50%)"> 
     <tr> 
      <td>Brugernavn:</td><td><input name="edUsername" type="text" id="username" autofocus></td> 
     </tr> 
     <tr> 
      <td>Adgangskode:</td><td><input name="edPassword" type="password" id="password"><br></td> 
     </tr> 
     <tr> 
      <td style ="font-size: 10px;">Glemt din adgangskode?</td> 
      <td style="text-align: right;"><input name="Submit" type="submit" value="Log ind"></td> 
     </tr> 
    </table> 
</form> 

因此,inf ormation我需要在我的登錄腳本是用戶名和密碼數據。我嘗試使用filter_input()來獲取這些信息,因爲我讀到這比$ _POST []更安全。在登錄腳本,它看起來像這樣:

// Get username and password from post form 
$ed_user = filter_input(INPUT_POST, 'username'); 
$ed_pass = filter_input(INPUT_POST, 'password'); 
echo $ed_user; 

的「回聲」部分只是一個臨時線路,檢查是否有確實檢索到的用戶名。到目前爲止情況並非如此。所以我的問題是,我做錯了什麼?

+1

嘗試使用var_dump/print_r來查看$ _POST數組包含的內容。 (edUsername和edPassword) – JimL 2014-10-19 14:08:34

+0

嘗試獲取'edUsername'和'edPassword'。 – uKolka 2014-10-19 14:08:47

回答

4

改寫爲

$ed_user = filter_input(INPUT_POST, 'edUsername'); 
$ed_pass = filter_input(INPUT_POST, 'edPassword'); 

使用領域而不是ID的名稱。

+0

我也嘗試過,結果相同(似乎沒有通過)。你能告訴我表單域的「id」和「name」之間的區別嗎? – Noceo 2014-10-19 14:13:10

+0

@Noceo你正在使用錯誤的變量來訪問POST數據。 – uKolka 2014-10-19 14:15:15

+1

該id唯一標識文檔中的html元素。並可以用作css和jquery的參考。名稱主要用於表單中引用它們以便發佈並獲取操作。您甚至可以分配名稱,如'name []',以便能夠將來自不同字段的值作爲數組發送。 – Barry 2014-10-19 14:17:57

1

您的錯誤是您正在使用輸入的id屬性而不是name

// Get username and password from post form 
$ed_user = filter_input(INPUT_POST, 'edUsername'); 
$ed_pass = filter_input(INPUT_POST, 'edPassword'); 
echo $ed_user; 

或者您可以交換屬性,以便PHP代碼保持原樣。

至於idname屬性之間的差異檢查出another question

+0

我打算說$ _POST,但後來我查看了[PHP.NET](http://php.net/manual/en/function.filter-input.php)上的filter_input手冊,並且INPUT_POST正確 – Billy 2014-10-19 14:35:07

+0

啊,沒關係。我的錯。 – uKolka 2014-10-19 16:21:07

1

你名字錯了,下面檢查。

$ed_user = filter_input(INPUT_POST, 'edUsername'); 
$ed_pass = filter_input(INPUT_POST, 'edPassword'); 
+0

uKolka打敗了我。 – Billy 2014-10-19 14:12:21

+0

和巴里。 – Billy 2014-10-19 14:13:15