我有一個文本框。它的名字就是例子。
<input type="text" name="example"/>
我想檢查,任何數據來自示例或不是。 我試過如下使用代碼:
<?php
if(empty($_POST["example"]))
{
echo "You need to enter any text to example box.";
}
?>
但是這個代碼打印,當我進入頁面是第一。 我想看到打印的數據,只有當點擊提交。
我有一個文本框。它的名字就是例子。
<input type="text" name="example"/>
我想檢查,任何數據來自示例或不是。 我試過如下使用代碼:
<?php
if(empty($_POST["example"]))
{
echo "You need to enter any text to example box.";
}
?>
但是這個代碼打印,當我進入頁面是第一。 我想看到打印的數據,只有當點擊提交。
<?php
if(isset($_POST['example']) && empty($_POST['example']))
{
echo "You need to enter any text to example box.";
}
?>
支票
if(!isset($_POST["submitButtonName"]))
{
// validation logic here
}
爲什麼要檢查「submitButtonName」?這是一個複製粘貼錯誤? –
@JonathanM這是點擊提交按鈕時發生的情況。 –
沒有證據顯示他正在使用提交按鈕。我在ciriusrob的回答上發表了同樣的論點。 –
它是一種更好的選擇使用:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if(empty($_POST["example"]))
{
echo "You need to enter any text to example box.";
}
}
這將檢查是否有在服務器上一個POST
,然後你有你自己的條件。
這將取消「O」或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.
}
這將取消「O」或0的值。 –
OP的代碼也將取消0的資格,除非他明確聲明他希望0通過,那麼I'將不得不採取他實施的行爲,並沒有表明是錯誤的。 – GordonM
先檢查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.";
}
?>
可能沒有'submit'按鈕。 –
@JonathanM。這是什麼意思「只有點擊提交,我纔想看到打印的數據」。 –
他可能會通過一個看起來像一個按鈕,並使用Ajax的圖像提交。 –
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
注意檢查數組的一個子項的存在時 子項不存在,但父母不和是一個字符串將返回 假爲空。
而isset
(docs)被設計爲「確定是否一個變量被設定,並沒有空。」 - 你是什麼之後。因此,你的代碼最終看起來像這樣:
// 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/
Ya,調整示例 –
+1,這是正確的答案。 –
檢查首先是$ _POST變量,只有在提交頁面時它纔可用。
<?php
if(!empty($_POST)){
if(isset($_POST['example']) && empty($_POST['example'])){
echo "You need to enter any text to example box.";
}
}
?>
錯誤的條件,它必須是'if(!empty($ _ POST))...' –
謝謝,我錯過了它,而打字。 –
這將取消「O」或0的值。 –
小心,'0'和'「0」'被認爲是空的。你可能不想要那個。 –