2013-12-02 3 views
1

Я хотел бы запустить запрос для ввода данных в базу данных, только если вы нажали кнопку, и если разные входы не пустые. Теперь случается, что если такой вход содержит пробел, запрос выполняется одинаково. Я использовал пустой, но не работает. Зачем?Выполнять запрос, только если строка НЕ ​​пуста

if(isset($_POST['myButton']) and !empty($Var) and !empty($Var2) and !empty($Var3)) { 
    $querySql = mysql_query("INSERT INTO my_table(my_field, field, field_c, field_data) VALUES ('$Var', '$Var2', '$Var3', NOW())"); 
} 
+0

Также рассмотрите проблемы с безопасностью, такие как SQL-инъекция ... – mcserep

+0

Хорошая ситуация для использования проверки JavaScript для избежания взаимодействия с сервером клиента для чего-то простого, как пробелы – gwillie

+0

Проверка полного стека всегда хороша, чтобы убедиться, что все правильно отформатировано. Просто не полагайтесь только на проверку JS, или ваш скрипт может стать уязвимым – mic

ответ

1

Использование trim():

$Var = !empty($Var) ? trim($Var) : $Var; 
$Var2 = !empty($Var2) ? trim($Var2) : $Var2; 
$Var3 = !empty($Var3) ? trim($Var3) : $Var3; 
if(isset($_POST['myButton']) and !empty($Var) and !empty($Var2) and !empty($Var3)) { 
    //Do query 
} 
0

trim() эти переменные первой, например:

$Var = trim($Var) 
1

Взгляните на empty

Это не пустое пространство пустоты. Таким образом, вы должны использовать trim для удаления пробелов перед передачей переменной в empty().

Смежные вопросы