PHP проверяет, набрал ли пользователь что-то при вводе текста - PullRequest
3 голосов
/ 05 января 2012

У меня есть несколько простых текстовых вводов HTML.Я хотел бы проверить, что пользователь вводил что-то, а не только пробелы.Мой код ниже не работает.

HTML (в форме):

<input type='text' name='email' id='email' />

PHP (страница "действия" формы):

$email=mysql_real_escape_string(strtolower(trim($_POST['email'])));

    if (!$email || empty($email)){    // these are the checks that don't work
           echo "no email entered";
     }

Ответы [ 4 ]

10 голосов
/ 05 января 2012

Во-первых, вы должны использовать mysql_real_escape_string только при вводе данных внутри mysql. Не используйте его при проверке.

Мой типичный синтаксис ручной проверки таков:

if(!isset($_REQUEST['email']) || strlen(trim($_REQUEST['email'])) == 0){
    $errors[] = 'No email provided';
}

Затем после проверки используйте mysql_real_escape_string при вводе данных в mysql

mysql_query('UPDATE myusers SET email = "'.mysql_real_escape_string($_REQUEST['email']).'" WHERE id = "'.mysql_real_escape_string($_REQUEST['id']).'"');

Удачи

2 голосов
/ 05 января 2012

С макушки головы я бы попробовал

$email = trim($email);

if (!isset($email)){ 
    echo "no email entered";
}

или

if ($email == ''){ 
    echo "no email entered";
}
1 голос
/ 05 января 2012

попробуйте это:

if(preg_match('/[[:space:]]*/',$email){
    echo "no email entered";
}

таким образом вы также избегаете символов новой строки и вкладок .

0 голосов
/ 12 июля 2017

просто измените тип поля ввода с «текст» на «электронная почта» Он автоматически проверит, введен ли кто-либо действительный адрес электронной почты или нет.

...