2012-06-06 45 views
0

我有一個文本框。它的名字就是例子。

<input type="text" name="example"/> 

我想檢查,任何數據來自示例或不是。 我試過如下使用代碼:

<?php 
if(empty($_POST["example"])) 
{ 
     echo "You need to enter any text to example box."; 
} 
?> 

但是這個代碼打印,當我進入頁面是第一。 我想看到打印的數據,只有當點擊提交。

回答

1
<?php 
if(isset($_POST['example']) && empty($_POST['example'])) 
{ 
     echo "You need to enter any text to example box."; 
} 
?> 
+0

小心,'0'和'「0」'被認爲是空的。你可能不想要那個。 –

3

支票

if(!isset($_POST["submitButtonName"])) 
{ 
    // validation logic here 
} 
+0

爲什麼要檢查「submitButtonName」?這是一個複製粘貼錯誤? –

+0

@JonathanM這是點擊提交按鈕時發生的情況。 –

+1

沒有證據顯示他正在使用提交按鈕。我在ciriusrob的回答上發表了同樣的論點。 –

0

它是一種更好的選擇使用:

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    if(empty($_POST["example"])) 
     { 
      echo "You need to enter any text to example box."; 
     } 
} 

這將檢查是否有在服務器上一個POST,然後你有你自己的條件。

+0

這將取消「O」或0的值。 –

0
if (!empty ($_POST)) 
{ 
    // Validation logic here 
    if ((!isset ($_POST ['example'])) || (empty ($_POST ["example"]))) 
    { 
     echo "You need to enter any text to example box."; 
    } 
} 
else 
{ 
    // No need to do any validation logic, the form hasn't been submitted yet. 
} 
+0

這將取消「O」或0的值。 –

+0

OP的代碼也將取消0的資格,除非他明確聲明他希望0通過,那麼I'將不得不採取他實施的行爲,並沒有表明是錯誤的。 – GordonM

-1

先檢查submit按鈕。

<input type="text" name="example" value="" /> 
<input type="submit" name="submit" value="submit" /> 

<?php 
    if (isset($_POST['submit'])) { 

     if (empty($_POST['example'])) { 
      echo "You need to enter any text to example box."; 
     } 
?> 
+1

可能沒有'submit'按鈕。 –

+0

@JonathanM。這是什麼意思「只有點擊提交,我纔想看到打印的數據」。 –

+1

他可能會通過一個看起來像一個按鈕,並使用Ajax的圖像提交。 –

3

isset是這裏的正確選擇 - empty僅用於檢查一個已知的變量,看它是否是「emptyish」。按照docs

下面的事情被認爲是空的:

"" (an empty string) 
0 (0 as an integer) 
0.0 (0 as a float) 
"0" (0 as a string) 
NULL 
FALSE 
array() (an empty array) 
var $var; (a variable declared, but without a value in a class) 

它並沒有說這是什麼如何對待沒有定義的數組成員。在文檔頁面上的意見給了我們從測試的一些見解:http://www.php.net/manual/en/function.empty.php#105722

注意檢查數組的一個子項的存在時 子項不存在,但父母不和是一個字符串將返回 假爲空。

issetdocs)被設計爲「確定是否一個變量被設定,並沒有空。」 - 你是什麼之後。因此,你的代碼最終看起來像這樣:

// check the length, too, to avoid zero-length strings 
if(!isset($_POST["example"]) || strlen(trim($_POST["example"])) < 1) { 
    echo "You need to enter any text to example box."; 
} else { 
    // handle form submission 
} 

文檔

PHP isset - http://php.net/manual/en/function.isset.php

PHP empty - http://www.php.net/manual/en/function.empty.php

更多閱讀 - http://virendrachandak.wordpress.com/2012/01/21/php-isset-vs-empty-vs-is_null/

+0

Ya,調整示例 –

+0

+1,這是正確的答案。 –

0

檢查首先是$ _POST變量,只有在提交頁面時它纔可用。

<?php 
    if(!empty($_POST)){ 
     if(isset($_POST['example']) && empty($_POST['example'])){ 
     echo "You need to enter any text to example box."; 
     }   
    } 
?> 
+0

錯誤的條件,它必須是'if(!empty($ _ POST))...' –

+0

謝謝,我錯過了它,而打字。 –

+0

這將取消「O」或0的值。 –