2013-10-06 2 views
1

Я играю с проверками, и все происходит набухать, за исключением того, что мне не очень нравится фильтр FILTER_VALIDATE_URL PHP, или я не использую его правильно. Этот тип ввода будет проверять:Подтвердить URL-адрес без FILTER_VALIDATE_URL

www.mysite (не заметить нет .com)

Я хотел бы, чтобы это работало:

www.mysite.com

mysite.com

Вот код, я использую сейчас ..

if (empty($web)) { 
$webError = '<p class="error">Website Is Required</p>'; 
} 

else if (filter_var($web, FILTER_VALIDATE_URL) === FALSE) { 
$webError = '<p class="error">Please Enter A Valid URL</p>'; 
} 

ответ

0

Конечно же, только одного электронного будет показано сообщение rror, потому что вы каждый раз переопределяете строку. И вы приближаетесь ко всему этому. Для их хранения нужен какой-то контейнер ошибок. Затем, если у него есть ошибки, покажите их в разметке HTML. Ваш код может выглядеть так:

$errors = array(); 

if (empty($web)) { 
    array_push($errors, 'Website Is Required'); 

} elseif (filter_var($web, FILTER_VALIDATE_URL) === false) { 

    array_push($errors, 'Please Enter A Valid URL'); 
} 

?> 

<?php if (!empty($errors)) : ?> 
<?php foreach($errors as $error): ?> 

<p class="error"><?php echo $error; ?></p> 

<?php endforeach; ?> 
<?php endif; ?> 
+0

Это выглядит неплохо, если вы сделаете это. Мне это нравится уже, хотя ... потому что вы правы, я приближался к кучей отдельных переменных $ error, вместо того, чтобы делать это в массиве. – penweb

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