|
|
|
|
<?
if (!$_POST['url'])
{
echo '
<FORM METHOD="POST">
Введите ссылку: <input type="text" name="url" size="20" value="">
<input type="submit" value="Начать регистрацию">
</FORM>
';
}
if ($_POST['url']) // Проверка на введение ссылки в главном поле регистрации
{
$url=str_replace("http://","",$url);
$url='http://'.$url;
if (!file_get_contents($url))
{
echo'
<form>
<input type="submit" size="20" value="<<Назад">
</form>
';
echo 'Некорректно введена ссылка!';
exit;
}
else {
echo'Ссылка существует';
/*********
далее следует обработка данных
********/
}
}
?>
|
Вот кусок кода, где необходимо проверить существует ли ссылка, вводимая в первом окне..
Необходимо, чтобы при некорректном вводе URL он не выводил ошибки типа:
Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: gethostbyname failed in z:\home\localhost\www\_vneshka\test0.php on line 16
Warning: file_get_contents(http://ghj) [function.file-get-contents]: failed to open stream: Invalid argument in z:\home\localhost\www\_vneshka\test0.php on line 16
То есть необходимо просто устранить эти строчки об ошибках, сам код рабочий..
заранее спасибо.. | |
|
|
|
|
|
|
|
для: Warmonger
(17.11.2006 в 20:15)
| | Вот. Такие дела решаються знаком "@" перед функцией:)
<?
if (!$_POST['url']) {
echo "<form method='post'>Введите ссылку:<input type='text' name='url' size='20' value='' /><input type='submit' value='Начать регистрацию' /></form>";
}
if ($_POST['url']) {
$url = trim($_POST['url']);
if ((empty($url)) || (!preg_match("#^(http://|www)[^\s]+$#i", $url)) || (!@file_get_contents($url))) {
echo "<form><input type='submit' size='20' value='<<Назад'></form>";
echo "Некорректно введена ссылка!";
exit();
} else {
echo "Ссылка существует";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Poison
(17.11.2006 в 22:53)
| | Большое спасибо, теперь все работает..
И все же я не вижу смысла вообще использовать функции trim() и preg_match() как это было в твоём примере :)
Поясняю почему я так думаю:
<?
$url=str_replace("http://","",$url);
$url='http://'.$url;
?>
|
Это я делал, для того чтобы было все равно пишет пользователь запрос "http://www.ya.ru" или он пишет "www.ya.ru" или же он вообще пишет "ya.ru" во всех случаях обработчик проверит нужную ссылку и не будет ругаться, а в твоём случае preg_match() указывает на то, что ссылка www.ya.ru - введена некорректно.. Но это ведь не так.. :)
Окончательный кусок кода совместного творчества такой:
<?
if ( empty($url) || (!@file_get_contents($url)))
{
echo'
<form>
<input type="submit" size="20" value="<<Назад">
</form>
';
echo 'Некорректно введена ссылка: '.$url;
exit;
}
else {
echo'Ссылка существует';
}
?>
|
как бы то ни было, свою проблему я решил, еще раз спасибо.. :) | |
|
|
|