проверка страницы на содержания кода

Статус
Закрыто для дальнейших ответов.

vlastelin

Well-Known Member
Регистрация
29.12.2006
Сообщения
107
Наверное многие видели, в различных системах есть такие штуки: дается специальный код, рядом поле в котором надо ввести свой адрес сайта. Далее надо на своем сайте разместить тот код и нажимать кнопку "далее" в системе. И эта система проверяет введённый сайт на наличие этого кода и если он есть, то перенаправляет на следующую страницу, если нету, то пишет ошибку.

Как такое модно вообще сделать? Или может кто-то делал уже?
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
1. На первой странице выдаём код который надо вставить... форму для их сайта
2.
$str = get_content(Переменная из формы сайт)
Далее регулярные выражения, и по ним вывод одного или иного
 

vlastelin

Well-Known Member
Регистрация
29.12.2006
Сообщения
107
"$str = get_content(Переменная из формы сайт)" - это он откроет сайт, заданный в форме?
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
Немного ошибся
file_get_contents()
http://ru2.php.net/manual/ru/function.file-get-contents.php

Эта функция вернёт приобразованный браузером код страницы... То есть уже в виде HTML- кода
Не забывайте что она будет всё в одну строку, чтобы она была читабельна при выводе надо сделать
htmlspecialchars()
а затем
преобразовать все \n в <br>, но это не для вашего случая...
Вам хватит и просто копирования кода в переменную, а затем поиск по ней...
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
В вашем скрипте нет ничего сложного
Код:
$str = file_get_contents("http://www.yandex.ru/");
if(eregi("что искать(ваш код лучше передать в переменной)", $str))
{
   echo "ссылка присутствует на странице";
}
else
{
   echo "В доступе отказано, ссылки на странице не найдено";
}
 

vlastelin

Well-Known Member
Регистрация
29.12.2006
Сообщения
107
Вместо "http://www.yandex.ru/" просто надо переменную поставить, которая будет задаваться из поля?
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
Да вроде всё верно, лучше искать на странице, ссылку а не полный код )))
 

vlastelin

Well-Known Member
Регистрация
29.12.2006
Сообщения
107
Ну это понятно)

А мне к этот код поидее надо присвоить как функцию, т.е. обозначить её? Ну чтобы когда пользователь вводил в поле адрес, он являлся переменной и когда он уже жал на кнопку "далее", то происходила функция "on click = и тут уже название той php функции".
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
Нет Onclick это уже JavaScript
Просто когда он жмёт на Submit, идёт переход на страницу и там уже проверяются введённые данные!
Не забывайтее проверить поле с ссылкой на пустоту )))
 

vlastelin

Well-Known Member
Регистрация
29.12.2006
Сообщения
107
А как мне сделать чтобы на одной странице пользователь вводит адрес в поле и как сделать чтобы этот адрес сохранялся в памяти его, ну чтобы на второй странице он уже использовался? На JS я примерно представляю как сделать, а на php не очень :rolleyes:
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
страница index.html
Код:
<html>
<head>
</head>
<body>
<form method="POST" action="set.php">
Введите проверочный URL(без http://)
<input type="text" name="url">
<input type="submit" value="Next">
</form>
</body>
</html>
set.php
Код:
<?php
$set="www.ya.ru";
$content = file_get_contents("http://". $_POST['url'])
if(eregi($set, $content))
{
   echo "Ссылка присутствует";
}
else
{
   echo "Ссылка не найдена";
}

?>
Вроде так...
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
Работет? Оо!Кстати, то очень простая поверка, лучше сделать по регулярным выражениям!!!

Ещ могут быть казусы, твою ссылку запихнут в скрытый див, всё пойдёт на смарку, От этого врял ди застрахуешься, если только написать целый класс по проверке целосности ссылок и тому подобное
 

vlastelin

Well-Known Member
Регистрация
29.12.2006
Сообщения
107
На выходных потестирую) щас времени вообще просто нет =)
 

vlastelin

Well-Known Member
Регистрация
29.12.2006
Сообщения
107
Не, пишет ошибку:

Parse error: syntax error, unexpected T_IF in /usr/home/vshosts/hosts/...адрес к файлу тут.../www/test/set.php on line 4
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
; я забыл поставить после file_get_contents()
Сам бы мог понять )))
 

vlastelin

Well-Known Member
Регистрация
29.12.2006
Сообщения
107
Точно) Я стал смотреть просто на 4 строчку))
Спасибо! Работает!! :)
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
Пожайлуста! Писал код без проверки ))) как оказалось работает...

Но это простейшая защита!
Например можно вставить ссылку в <h1> и скрыть этот класс от вывода в браузер! Но в коде всё это будет...
Так что такая проверка расчитана только на совестных пользователей, или совсем тугадумов )))
 

iNfiUm

Active Member
Регистрация
12.01.2008
Сообщения
35
Пожайлуста! Писал код без проверки ))) как оказалось работает...

Но это простейшая защита!
Например можно вставить ссылку в <h1> и скрыть этот класс от вывода в браузер! Но в коде всё это будет...
Так что такая проверка расчитана только на совестных пользователей, или совсем тугадумов )))
Вот и написали еще один полезный скриптег :)

А правда, можно ли ка то сделать проверк, что бы $set не поместили в <noindex> или невидимый див <div> а так же не унесли этот див за пределы экрана?
 
Статус
Закрыто для дальнейших ответов.
Верх Низ