2012-05-01 5 views
0

http://pastebin.com/RE31BRSQНе работает: Давать пустое поле значение - PHP

Когда я делаю

if (empty($_POST['name'])) { 
    $name = 'anon'; 
} else { 
    $name = $_POST['name']; 
} 

имя всегда Анон, даже если кто-то входит символов в поле.

Кроме того,

if (empty($_POST['title'])) { 

} else { 
    $title = sha1($_POST['title']); 
} 

Как я могу сделать это так, есть ! вставлено Infront из ['title']?

+0

Что вы видите, когда вы делаете '$ _POST [«имя»]' ? – PeeHaa

+0

Я собирался сказать, мог ли мы увидеть код для самой формы? – Malovich

+0

попытайтесь отлаживать пост-массив, как этот print_r ($ _ POST); –

ответ

0

1.) Вы действительно уверены, что ваше поле ввода называется name? Я также хотел бы предложить использовать isset():

if (isset($_POST['name']) && !empty($_POST['name'])) 
{ 
    $name = $_POST['name']; 
} 
else 
{ 
    $name = 'anon'; 
} 

2.) Используйте оператор конкатенации (если вы хотите, чтобы предварять все названия с ! до того хеширования):

$title = sha1('!'.$_POST['title']); 
+0

Спасибо, мне кажется странным, что имя для меня раньше не работало. Благодаря! –

1

Не зависит от empty(). Он может развернуться и укусить вас. Обратите внимание, что такие вещи, как 0, являются considered «пустым», хотя любой здравомыслящий человек не будет.

Я не вижу ничего плохого в вашем первом образце, поэтому убедитесь, что поле «имя» вашей формы на самом деле называется «имя». Эти ключи чувствительны к регистру, поэтому $_POST['Name'] - это нечто совершенно отличное от $_POST['nAmE'].

Что касается второго примера, если вы имеете в виду ! как в «не» оператора, вы могли бы сделать это как

if (!empty($_POST['title'])) { 
    ... 
} 
Смежные вопросы