PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Описание: Как действовать после авторизации?
Поиск в теме | Версия для печати
Neirol
Отправлено: 27 Июля, 2009 - 15:49:42
Новичок
Покинул форум
Сообщений всего: 27
Дата рег-ции: Июнь 2009
Откуда: Россия, Москва
Помог: 0 раз(а)
Хочу получить исходник своей страницы вконтакте посредством PHP.
Использую cURL, вот, что есть:
PHP:
скопировать код в буфер обмена
<?PHP
$email = 'someEmail' ;
$password = 'somePass' ;
header ( 'Content-type:text/html; Charset=cp1251' ) ;
function curl( $get , $post = 0, $cookies = '' , $head = 1) {
curl_setopt ( $cl , CURLOPT_USERAGENT
, 'Opera/9.25 (Windows NT 6.0; U; ru)' ) ;
if ( $post ) {
}
return $line ;
}
$login = curl
( 'http://vkontakte.ru/login.php' , 'op=a_login_attempt&email=' . urlencode ( $email ) . '&pass=' . $password ) ;
$cookies = join ( ';' , $gets [ 1
] ) ;
if ( ! stripos ( $cookies , 'remixpass=' ) ) die ( 'Аккаунт не авторизован' ) ; else print "Аккаунт авторизован!" ;
?>
Если я указываю верные данные то он успешно авторизовывается, иначе - наоборот.
Но, как мне, имея $cookies или $login получить контент свой страницы?
-----Рожденные ползать - везде пролезет.
LightXXX
Отправлено: 27 Июля, 2009 - 23:33:53
Новичок
Покинул форум
Сообщений всего: 30
Дата рег-ции: Март 2009
Помог: 0 раз(а)
Немного проще по-моему, вот держи.
PHP:
скопировать код в буфер обмена
<?PHP
$uid = '{твой_id}' ;
$umail = '{мыло}' ;
$upasswd = '{пасс}' ;
$cookie = 'remixmid=' . $uid . '; remixemail=' . $umail . '; remixpass=' . md5 ( $upasswd ) . '; remixlang=3' ;
function myprofile( $url , $cookie ) {
return $zz ;
}
$url = 'http://vkontakte.ru/profile.php' ;
$enter = myprofile( $url , $cookie ) ;
echo $enter ;
?>
(Отредактировано автором: 27 Июля, 2009 - 23:34:15)
Neirol
Отправлено: 28 Июля, 2009 - 13:11:16
Новичок
Покинул форум
Сообщений всего: 27
Дата рег-ции: Июнь 2009
Откуда: Россия, Москва
Помог: 0 раз(а)
Действительно проще и работает! Спасибо огромное.
Сейчас попробую осуществить тоже самое, только без ID.
(Добавление)
Хотя в принципе это и не нужно.
Мой первый вариант работает без ID, и в нем достаточно того, что он определяет авторизован я или нет.
(Добавление)
Сделал все-таки класс, который требует только E-Mail и Пароль. Когда он конструктируется идет проверка, авторизован юзер или нет, если нет, то die.
И единственная его функция выводит содержимое страницы по относительному адресу, причем можно выбрать выводить ли шапку или нет.
Выкладывать я такое добро, естественно не буду =)
-----Рожденные ползать - везде пролезет.
Neirol
Отправлено: 30 Июля, 2009 - 12:32:39
Новичок
Покинул форум
Сообщений всего: 27
Дата рег-ции: Июнь 2009
Откуда: Россия, Москва
Помог: 0 раз(а)
Security error 3
Выдает вконтакте при попытке отправить сообщение через скрипт.
Вот класс:
PHP:
скопировать код в буфер обмена
<?PHP
class Vkontakte {
private $cookie ;
private $curl_handle ;
private $exec_handle ;
public $user_id ;
function __construct( $email , $password ) {
$this -> curl_handle = curl_init ( "http://vkontakte.ru/login.php" ) ;
curl_setopt ( $this -> curl_handle , CURLOPT_RETURNTRANSFER
, 1
) ; curl_setopt ( $this -> curl_handle , CURLOPT_FOLLOWLOCATION
, 0
) ; curl_setopt ( $this -> curl_handle , CURLOPT_USERAGENT
, "Opera/9.25 (Windows NT 6.0; U; ru)" ) ; curl_setopt ( $this -> curl_handle , CURLOPT_POSTFIELDS
, "op=a_login_attempt&email=" . urlencode ( $email ) . "&pass=" . $password ) ;
$this -> exec_handle = curl_exec ( $this -> curl_handle ) ;
preg_match_all ( "#Set-Cookie:\s([\S]+?);#i" , $this -> exec_handle , $gets ) ;
$cookies = join ( ";" , $gets [ 1
] ) ;
$this -> user_id = explode ( ";" , $cookies ) ; $this -> user_id = explode ( "=" , $this -> user_id [ 2
] ) ; $this -> user_id = $this -> user_id [ 1] ;
if ( ! stripos ( $cookies , "remixpass=" ) ) die ( "Пользователь не авторизован!" ) ;
$this -> cookie = "remixmid=" . $this -> user_id . "; remixemail=" . $email . "; remixpass=" . md5 ( $password ) . "; remixlang=3" ; }
function getPageContent( $relativeURL , $header = "0" ) {
$url = "http://vkontakte.ru/" . $relativeURL ;
curl_setopt ( $this -> curl_handle , CURLOPT_RETURNTRANSFER
, 1
) ; curl_setopt ( $this -> curl_handle , CURLOPT_HEADER
, $header ) ; curl_setopt ( $this -> curl_handle , CURLOPT_COOKIE
, $this -> cookie ) ;
$this -> exec_handle = curl_exec ( $this -> curl_handle ) ;
return $this -> exec_handle ;
}
function sendLetter( $letter , $uid ) {
$url = "http://vkontakte.ru/mail.php?act=write&to=" . $uid ;
$secure_data = $this -> getPageContent ( "mail.php?act=write&to=" . $uid ) ;
print $secure_data ;
$secure_val = preg_match ( '|name="secure" value="(.*)"|i' , $secure_data ) ; $chas_val = preg_match ( '|name="chas" value="(.*)"|i' , $secure_data ) ; $photo_val = preg_match ( '|name="photo" value="(.*)"|i' , $secure_data ) ;
curl_setopt ( $this -> curl_handle , CURLOPT_RETURNTRANSFER
, 1
) ; curl_setopt ( $this -> curl_handle , CURLOPT_FOLLOWLOCATION
, 0
) ; curl_setopt ( $this -> curl_handle , CURLOPT_USERAGENT
, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1" ) ; curl_setopt ( $this -> curl_handle , CURLOPT_COOKIE
, $this -> cookie ) ; curl_setopt ( $this -> curl_handle , CURLOPT_POSTFIELDS
, "title='Тест'&message=" . $letter . "&secure=" . $secure_val . "&chas=" . $chas_val . "&photo=" . $photo_val . "&to_id=" . $uid . "&to_reply=0&act=sent" ) ;
$this -> exec_handle = curl_exec ( $this -> curl_handle ) ;
return $this -> exec_handle ;
}
}
?>
А вот как я им пользуюсь:
PHP:
скопировать код в буфер обмена
<?PHP
require_once "curl.class.php" ;
$user = new Vkontakte( "" , "" ) ;
print $user -> sendLetter ( "Тестовое сообщение" , 17313857) ;
?>
Помогите пожалуйста!(Отредактировано автором: 30 Июля, 2009 - 13:12:21)
-----Рожденные ползать - везде пролезет.
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB