Помогите написать скрипт

Muntik

Постоялец
Регистрация
3 Июн 2008
Сообщения
491
Реакции
113
Доброго времени суток NWS.
Прошу помощи в написании скрипта ( не тупо взять и выложить готовое решение под мои нужды а именно попытаться донести что и как происходит)

Задача следующая :

Скрипт заходит на


проверяет залогинен он или нет, если нет то логинется.

Далее в заданной теме :



он постит сообщение, которое берет из файла

в идеале чтобы был файл config.php :
$User = "forunuser"; /Логин на форуме
$Pass = "userpass" / Пароль на форуме
$Id = "000000" /ID темы на форуме
$Msg = "Text" /Текс для форума

Вот прошу помощи в реализации такой задумки.
 
Сложно написать это с 0 на РНР. Есть такой программный продукт как Для просмотра ссылки Войди или Зарегистрируйся. Подобные задачи решает легко и непринужденно ;)
 
берешь курл

и http снифер

и все эти действия проделываешь и смотришь что и куда отправляется

какой-то конкретный вопрос - задавай. а пока не понятно чем тебе помогать
 
Всем спасибо ничего не работает )



Добавлено через 42 минуты
Что не так сделал ?
 
не так сделал ?
0) тег (PHP) ччч (/PHP) значительно повысит читабельность
1) последовательность действий неверная ( вначале нужно залогинится на сайт, а потом все остальное
А здесь же сперва берется содержимое какой-то страницы а потом идет попытка логина.
2)
PHP:
curl_setopt($curl,CURLOPT_POSTFIELDS,"add_post=$id &message=up");
здесь в строке с данными есть лишний пробел, как впрочем и в вырхнем посте.
ну и данные здесь лучше передавать не строкой а массивом напрямую, или если тсрокой то как результат работы ф-циии http_build_query
PHP:
curl_setopt($curl,CURLOPT_POSTFIELDS,"add_post=$id &message=up");  // не так 
$data = array( "add_post" => $id, "message"=>"up" );
curl_setopt($curl,CURLOPT_POSTFIELDS,$data); // а так 
curl_setopt($curl,CURLOPT_POSTFIELDS,http_build_query($data)); // или так
3) $pass&kodun=663b0d40370c0619c99842a23 e4ff620" - теоретически это хеш-значения должно генерироваться для каждой страницы свое, а здесь же используется какое-то константное
PHP:
curl_setopt($curl,CURLOPT_POSTFIELDS,"username=$lo gin&password=$pass&kodun=663b0d40370c0619c99842a23 e4ff620");
4)
PHP:
if( preg_match('/\<input type=\"hidden\" name=\"killspammers\" value=\"(.+?)\"\/\>/', $html, $out) ){
- здесь выдирается скрытое значение "killspammers" но оно не используется в коде.
--------------------
ЗЫ. если есть переменная killspammers то возможно на сайте присутствует какая-то "защита" от спама, на ДжаваСкрипте или еще что-то ... хотя по внешнему виду сайта это очень сомнительно
 
Форма логина (форма логина такая только на страницах тем, на главной же присваевается проверочное значение "kodun"


POST :

Как правильно будет выглядеть форма авторизации и как узнать авторизовался он или нет ?
 
ПОСТ запрос

Код:
username=aaaaa&password=bbbbb

узнать - обучно по тексту на странице, который отличается для залогиненого и незалогиненого юзера - имя пользователя, форма логина и т.п.
 
attachment.php


Получилось залогиниться подскажите как это реализовать в коде
 

Вложения

  • post.JPG
    post.JPG
    41,6 KB · Просмотры: 23
я же написал - найди в тексте страницы строку и проверяй ее наличие в том что возвращает курл
PHP:
//....
$html = curl_exec($curl)
if substr_count($html,'подстрока для проверки')
{
 echo ' логин выполнен';

}
 
Назад
Сверху