我想設置一個變量值,如果表單沒有提交(值來自哪裏)。下面我有:設置變量值如果爲空(PHP)
if (empty($order)) {
$order = 'ORDER BY product_name DESC';
}
else { $order=$_POST['order']; }
這總是將值設置爲'ORDER BY product_name DESC'並忽略窗體。可能只是一個小問題,但我無法挑選出來。
任何想法?
謝謝!
我想設置一個變量值,如果表單沒有提交(值來自哪裏)。下面我有:設置變量值如果爲空(PHP)
if (empty($order)) {
$order = 'ORDER BY product_name DESC';
}
else { $order=$_POST['order']; }
這總是將值設置爲'ORDER BY product_name DESC'並忽略窗體。可能只是一個小問題,但我無法挑選出來。
任何想法?
謝謝!
使用isset
if (isset($order) && empty($order)) {
$order = 'ORDER BY product_name DESC';
}else {
$order=$_POST['order'];
}
這是因爲$順序總是空的。所以去找出爲什麼$ order永遠不會被設置或者具有null或空字符串的值。或者使用isset($ order)。
嘗試使用isset
:
if (isset($_POST['order'])) {
$order = 'ORDER BY product_name DESC';
} else {
$order=$_POST['order'];
}
你檢查$訂單是空的或設置,當你想檢查是否$ _ POST [「秩序」]有一個值。但是,您不應該直接使用提交的值,但至少應驗證它是您期望的值。否則,你會讓你的應用程序打開SQL注入。
$order = false;
if (empty($_POST['order']))
{
// validate if $_POST['order'] has a valid value and set $order
}
if (!$order)
{
// set a default order instead, as there either wasn't a POST-value or an invalid value.
}
$order = isset($_POST['order']) ? $_POST['order'] : 'ORDER BY product_name DESC';
'$ order'顯然總是空的。在嘗試使用它之前,你確定它已被設置嗎?同樣,你的代碼是不安全的,因爲它對sql注入是開放的。 –
可愛[SQL注入攻擊](http://bobby-tables.com)漏洞... –
使用準備好的語句來屏蔽SQL注入的應用程序。 – user3033490