Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Открытие скриптом страницы и заполнение формы...
 
 автор: Игорь   (16.08.2004 в 00:33)   письмо автору
 
 

Подскажите плиз реализацию следующей задачи на пхп,
может кто-то сталкивался с таким:


скрипт запускается кроном на сервере и выполняет следующие действия:
открывает страницу http://1.ru (для примера), в поля логин и пароль,
вводит заданные значения и нажимает кнопку войти,
далее код следующей открывшейся страницы сдирает в переменную для дальнейшего анализа.

Помогите пожалуйста реализовать хотя бы по отдельным элементам что-ли,
пхп еще только изучаю :)

   
 
 автор: glsv (Дизайнер)   (16.08.2004 в 00:53)   письмо автору
 
   для: Игорь   (16.08.2004 в 00:33)
 

Очень смахивает на скрипт взлома...

Смотрите html-код страницы, имя скрипта, куда отсылаются данные из формы. И обращаетесь прямо по этому пути. Передаете нужные переменные (логин, пароль) прямо в скрипт, обрабатывающий форму. Ну и делаете что хотите.
На php это делается вот так.

В связи с возможными деструктивными действиями этого скрипта код приводить не будем.

   
 
 автор: Игорь   (16.08.2004 в 08:50)   письмо автору
 
   для: glsv (Дизайнер)   (16.08.2004 в 00:53)
 

Это не для взлома, а для автоматизации отслеживания изменений, нужно будет ежедневно смотреть определенные страницы, не вручную же это делать каждый день...

   
 
 автор: cheops   (16.08.2004 в 01:06)   письмо автору
 
   для: Игорь   (16.08.2004 в 00:33)
 

Я бы с другой стороны смотрел на задачу...
Клиент -> посылает запрос серверу -> получает HTML-форму с сервера
Клиент заполняет HTML-форму -> отправляет на сервер

Вы хотите реализовать так называемы интелектуального агента... У вас не будет возможности нажимать на кнопки средствами PHP (кнопки у клиента, а PHP на сервере), да и не нужно это... Вы можете загружать HTML-форму, но в случае, когда в качестве пользовательского агента выступает браузер - он автоматически формирует заголовки и отправляет их серверу, а нажатие на кнопку иницирует этот процес. Когда скрипт выполняется на сервере при помощи демона cron - вам придётся открыть сокет и все заголовки передать через него (это если метод POST). Если форма обрабатывается методом GET, данные можно передать через URL передав его методу fopen().

PS Немного сумбурно (очень хочется спать :), но вы можете задавать уточняющие вопросы...

   
 
 автор: Игорь   (16.08.2004 в 15:04)   письмо автору
 
   для: cheops   (16.08.2004 в 01:06)
 

Спасибо за ответ.
Если честно суть понял, но конкретно как это реализовать?
Подскажите, где можно почитать про сокеты и про заголовки, которые нужно будет передавать.

Есть у меня пара учебников по пхп, но там про это ни слова. :(

   
 
 автор: cheops   (16.08.2004 в 22:15)   письмо автору
 
   для: Игорь   (16.08.2004 в 15:04)
 

Задача разбивается на два этапа:
1) Сокеты, то через что передаём.
2) Протокол HTTP, то что мы передаём через сокеты.

1) Если не собираетесь писать собственный сервер, то с сокеты сильно ударятся не следует - достаточно информации из манула: открыть сокет, поместить в него, прочить из него, закрыть - как с файлами - никаких проблем тут у вас не будет.
2) Вообще всё что связано с Интернет описано в RFC-ах ("Комментарии на запросы") - там есть как информационные документы так и описание протоколов - начиная с 7 апреля 1969 года там опубликуются все стандарты и протоколы. Протокол HTTP описан в RFC2616 (просто в поисковике набирайте RFC2616.txt или RFC2616.pdf - они на каждом углу валяются). Единственная неприятность - они все на ангицком. Искать на русском практически бесполезно - мало охотников переводить - очень уж муторное чтиво (даже я было начал переводить, но плюнул - просто прочитал для себя и всё). Если у вас с ангицким всё в порядке читайте сразу и 2617. В книгах... пожалуй я знаю только одну книгу, которую сейчас можно ещё достать и где описан протокол HTTP: Б. Кришнамурти, Дж. Рексфорд. Web-протоколы. Теория и практика. HTTP/1.1, взаимодействие протоколов, кэширование, измерение трафика - тоже книга муторная, но честно рассмотрены все заголовки.

   
 
 автор: ddd   (02.08.2005 в 23:20)
 
   для: cheops   (16.08.2004 в 22:15)
 

asssssssssssssssssssssssssssssd

   
 
 автор: [CNS]brainPhP   (02.08.2005 в 23:31)
 
   для: ddd   (02.08.2005 в 23:20)
 

пжалуста:

<?


$host = 'www.pox.ru'; # хост сайта который хотим просмотреть (без http://)
$ct = '1'; # 0 - смотреть как html / 1 - смотреть как txt или скачивать файлы
$reqvest = ''; # сюда можешь вставить get запрос типа /index?name=zzzzz

################
# ЖЕЛАЮ УДАЧИ
################

if ($ct == 1) {
header('Content-Type: application/octet-stream', true);
}

if (empty($host)===false)
{
set_time_limit(0);
$port=80;
$max_connect=50;

error_reporting (E_ALL);

// create socket
$socket = socket_create(AF_INET,SOCK_STREAM,0);
// Подрубаемся к серверу
socket_connect($socket,$host,$port) or die ("Не могу подрубиться к серверу!!!");

if (empty($reqvest)===false) {
$ln = "GET http://".$host.$reqvest."\r\n";
$ln .= "HOST:".$host."\r\n";
$ln .= "Content-Type: application/octet-stream\r\n";
$ln .= "\r\n";

}
else {$ln="GET / HTTP/1.0\nHOST:$host\n\n";}
socket_write ($socket, $ln, strlen ($ln));

while ($out = socket_read ($socket,1000, PHP_BINARY_READ)) {
echo $out;
flush();
}


/*socket_close($socket);
exit();*/
}
else {echo "Пишите URL!!";}
?>

   
 
 автор: cheops   (03.08.2005 в 12:58)   письмо автору
 
   для: Игорь   (16.08.2004 в 00:33)
 

Раз уже поднята тема годичной давности, то приведу ссылку на тему с решением данной проблемы http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1879

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования