2013-05-07 52 views
0

我有這樣的代碼:奇怪的空POST輸出PHP

<?php 
if (isset($_POST['username']) === true){ 
    echo 'Username is set'; 
    if ($_POST['username'] == ""){ 
     echo '<br> Username is empty'; 
    } else { 
     echo '<br>Username is not empty'; 
    } 
} 
if (isset($_POST['password']) === true){ 
    echo 'Password is set'; 
    if ($_POST['password'] == ""){ 
     echo '<br> Password is empty'; 
    } else { 
     echo '<br>Password is not empty'; 
    } 
} 
?> 

,我有形式:

<input type="text" name="username" placeholder="Username" id="username" onKeyUp="javascript:check_username();"> 
<input type="password" name="password" placeholder="Password" id="password" onKeyUp="javascript:check_password();"> 

功能被調用Ajax來檢查用戶名/密碼,並將其貫穿PHP文件後,這是輸出,當我離開輸入空:

用戶名設置 用戶名是空

密碼設置爲 密碼不爲空

爲什麼?

+1

的name屬性是什麼'的print_r($ _ POST)的;'顯示?編輯,只是看到:「這是我輸入空的時候的輸出」 - >是不是它應該這樣做呢?當你將它們留空時顯示「字段爲空」。 – RelevantUsername 2013-05-07 19:54:32

+0

print_r顯示:[object HTMLInputElement] – jevniky 2013-05-07 20:52:00

回答

0

當你在說「這是我輸入空的輸出時」是不是它應該這樣做呢?當你將它們留空時顯示「字段爲空」。

如果您所期望的代碼不顯示:

Username is set 

,因爲你要離開該字段爲空,你可能想知道,而值在現場設置與否,形式發送表單中每個字段的$ _POST ['field']值(除了具有disabled屬性的字段)。

嘗試使用print_r($_POST);或您的瀏覽器調試工具來顯示哪些值傳遞給此PHP頁面。

0

什麼密碼的值?你確定它的價值實際上是空的嗎?

你可以發佈圍繞輸入的代碼嗎?你沒有發佈整個表格;可能是因爲您沒有關閉<input>標籤,表單在提交之前會向該值添加一些明文。

0
if(!empty($_POST)) { 
foreach($_POST as $key => $val) 
{ 
    ${$key} = $ val; 
} 

if(empty($username)) { 
    echo "Username empty"; 
} else { 
    echo $username; 
} 

if(empty($password)) { 
    echo "Password empty"; 
} else { 
    echo $password; 
} 
} 

這樣做是什麼讓一個變量了表單的輸入域