|
Авторизация в вконтакте - Вопросы и ответы, обсуждения - Ваши вопросы по Web-программированию только в данном разделе |
05.08.2013, 16:58
|
#1
|
|
|
|
Разведчик
|
Регистрация: 27.07.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Авторизация в вконтакте
Есть ли сейчас рабочий скрипт авторизация в Вконтакте.
Пользовался вот этим, но сейчас не работает
PHP код:
$mail = $_POST['lovk'];
$pass = $_POST['pvk'];
$otvet=connect("http://login.vk.com/?act=login&email=".$mail."&pass=".$pass);
If(!preg_match("/hash=([a-z0-9]{1,32})/",$otvet,$hash)){
die("Не авторизованны");
}
$otvet=connect("http://vk.com/login.php?act=slogin&hash=".$hash[1]);
preg_match("/remixsid=(.*?);/",$otvet,$sid);
$cookie = "remixchk=5; remixsid=".$sid[1];
function connect($link,$cookie=null,$post=null){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
if($cookie !== null)
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
if($post !== null)
{
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
$otvet = curl_exec($ch);
curl_close($ch);
return $otvet;
}
|
|
|
05.08.2013, 17:18
|
#2
|
|
|
|
Пехотинец
|
Регистрация: 18.05.2013
Сообщений: 97
Популярность: 1374
Сказал(а) спасибо: 52
Поблагодарили 45 раз(а) в 31 сообщениях
|
Re: Авторизация в вконтакте
Пожалуйста, задавайте вопросы в определенный раздел.
Кури [Ссылки могут видеть только зарегистрированные пользователи. ] вконтакте.
Последний раз редактировалось ZFrost; 05.08.2013 в 17:23.
|
|
|
05.08.2013, 17:23
|
#3
|
|
|
|
Разведчик
|
Регистрация: 27.07.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Авторизация в вконтакте
C API я не могу так как мне нужно будет потом получить id и auth от тюряги
Последний раз редактировалось Heimdaller; 05.08.2013 в 17:41.
|
|
|
05.08.2013, 19:52
|
#4
|
|
|
|
Разведчик
|
Регистрация: 04.12.2012
Сообщений: 5
Популярность: 1105
Сказал(а) спасибо: 1
Поблагодарили 23 раз(а) в 19 сообщениях
|
Re: Авторизация в вконтакте
Вот, даю весь класс, load_cookie и save_cookie можно переписать и сохранять не в БД, а куда угодно, а можно и не сохранять
Код:
<?
class request{
public $cookie;
public $sc;
public function post($adr, $param, $add_heads){
preg_match("=://([^/]+)(.+)=", $adr, $adra);
$host = $adra[1];
$pag = $adra[2];
$s = fsockopen($host, 80, $er, $ert);
if(!$s) return $ert;
$length = strlen($param);
$heads = "POST $pag HTTP/1.1\r\nHost: $host\r\n".(($this->get_cookies($host) != "")? "Cookie:".$this->get_cookies($host)."\r\n" : "")."Connection: Close\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3\r\nContent-type: application/x-www-form-urlencoded\r\n".(isset($add_heads)? $add_heads: "")."Content-length: $length\r\n";
$heads .= "\r\n";
$heads .= $param;
$heads .= "\r\n";
fwrite($s, $heads);
$out = "";
while ($line = fgets($s, 1024)){
$out .= $line;
};
if(isset($this->cookie['id'])) $this->cook($out, $host);
fclose($s);
return $out;
}
public function get($url){
preg_match("=://([^/]+)(.+)=", $url, $adra);
$host = $adra[1];
$pag = $adra[2];
$s = fsockopen($host, 80);
$heads = "GET $pag HTTP/1.1\r\nHost: $host\r\n".((isset($this->cookie['id']))? "Cookie:".$this->get_cookies($host)."\r\n" : "")."Connection: Close\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0\r\nAccept: */*\r\nAccept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3\r\n\r\n";
fwrite($s, $heads);
$out = "";
while ($line = fgets($s, 1024)){
$out .= $line;
};
if(isset($this->cookie['id'])) $this->cook($out, $host);
fclose($s);
return $out;
}
private function cook($p, $host){
preg_match("/.+(\r\n){2}/s", $p, $headers);
preg_match_all("/Set-Cookie: ([^=]+)=([^;]*)/", $headers[0], $c, PREG_SET_ORDER);
foreach($c as $name => $value){
$this->sc[$host][$value[1]] = $value[2];
if($value[2] == "deleted"){
unset($this->sc[$host][$value[1]]);
};
};
}
public function load_cookie(){
$d = mysql_query("SELECT * FROM cookie WHERE id='".$this->cookie["id"]."'");
$d = mysql_fetch_assoc($d);
if($d["cookie"] != ""){
$this->sc = json_decode($d["cookie"], true);
}
}
public function save_cookie(){
mysql_query("UPDATE cookie SET cookie='".json_encode($this->sc)."' WHERE id='".$this->cookie["id"]."'");
}
public function get_cookies($host){
$an = "";
foreach($this->sc[$host] as $k => $n){
$an .= $k."=".$n.";";
};
return $an;
}
public function auth_vk($email, $pass){
$get_of_vk = $this->get("http://vk.com/");
if(!preg_match("/Location: \/feed/", $get_of_vk)){
preg_match("/ip_h=([0-9a-z]{18})\"/", $get_of_vk, $ip_h);
preg_match("/Location: ([^\s]+)/", $this->post("https://login.vk.com/?act=login", "act=login&role=al_frame&expire=&captcha_sid=&captcha_key=&_origin=http%3A%2F%2Fvk.com&ip_h=".$ip_h[1]."&email=".urlencode($email)."&pass=".urlencode($pass)), $hash_link);
$this->get($hash_link[1]);
};
}
}
?>
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 04:20.
|
|