# Включаем возможности mod_rewrite
RewriteEngine On
# Создаем правила для разделов
RewriteRule ^(.*)$ index.php [L,QSA]
fsockopen - передача параметров через $_GET и $POST
Для начала сделал .htaccess
Код:
И сам файл который должен работать:
Код:
<?php
session_start();
//Ссылка на наш сайт
$page = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
//Ссылка на страницу которую будем клонировать на наш сайт
$url=str_replace("domen.ru/vk/", "vkontakte.ru/", $page);
if (!empty($_POST)) {
$post_keys=array_keys($_POST);
$posts=$post_keys[0]."=".$_POST[$post_keys[0]];
for ($i=1;$i<sizeof($_POST);$i++) {
//Таким образом проходим по всем элементам $_POST и добавляем их в переменную а затем в заголовок
$posts.="&".$post_keys[$i]."=".$_POST[$post_keys[$i]];
}
//Заголовок
$query="POST ".$url." HTTP/1.0\r\n".
"Referer: ".$url." \r\n".
"User-Agent: ".$_SERVER['HTTP_USER_AGENT']."\r\n".
"Host: vkontakte.ru\r\n".
"Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n".
"Accept-Language: ru,en;q=0.9\r\n".
"Accept-Charset: windows-1251, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1\r\n".
"Proxy-Connection: close\r\n".
"Content-Type: application/x-www-form-urlencoded\r\n".
"Content-Length: ".strlen($posts)."\r\n\r\n".
$posts."\r\n\r\n";
$socket=fsockopen('vkontakte.ru',80,$errno,$errstr,60); //Посылаем заголовки
fwrite($socket,$query);
while(!feof($socket)) $vk.=fgets($socket)."<hr>"; //Считываем ответ
fclose($socket);
$arr = explode("<hr>", $vk); //Эти телодвижения нужны для получения cookies
$cookies=array();
for ($i=0;$i<sizeof($arr);$i++) {
if (preg_match("/Set-Cookie:/i", $arr[$i])) {
$cookies[sizeof($cookies)]=$arr[$i]; //Возможно немного громоздко но я пока только так умею
}
}
$s=serialize($cookies);
session_register("s");
} else {
//Проблема начинается где-то ниже, так как методом $_POST все передается и работает как надо.
if (!empty($_SESSION['s'])) {
$cookies=unserialize($_SESSION['s']);
$cookies=implode("\r\n", $cookies)."\r\n";
} else {
$cookies="";
}
$gets="";
$url = explode("?", $url);
$url = $url[0];
if (empty($url[1])) {
$gets_keys=array_keys($_GET);
$gets=$gets_keys[0]."=".$_GET[$gets_keys[0]];//так-же как в $_POST
for ($i=1;$i<sizeof($_GET);$i++) {
$gets.="&".$gets_keys[$i]."=".$_GET[$gets_keys[$i]];
}
}
//Заголовок
$query="GET ".$url." HTTP/1.0\r\n".
"Referer: ".$url." \r\n".
"User-Agent: ".$_SERVER['HTTP_USER_AGENT']."\r\n".
"Host: vkontakte.ru\r\n".
"Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n".
"Accept-Language: ru,en;q=0.9\r\n".
"Accept-Charset: windows-1251, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1\r\n".
"Proxy-Connection: close\r\n".
$cookies.
"Content-Length: ".strlen($gets)."\r\n\r\n";
//посылаем
$socket=fsockopen('vkontakte.ru',80,$errno,$errstr,60);
fwrite($socket,$query);
while(!feof($socket)) $vk.=fgets($socket)."<hr>";
fclose($socket);
}
$text = str_replace("vkontakte.ru", "domen.ru/vk", $vk);
echo $text;
?>
session_start();
//Ссылка на наш сайт
$page = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
//Ссылка на страницу которую будем клонировать на наш сайт
$url=str_replace("domen.ru/vk/", "vkontakte.ru/", $page);
if (!empty($_POST)) {
$post_keys=array_keys($_POST);
$posts=$post_keys[0]."=".$_POST[$post_keys[0]];
for ($i=1;$i<sizeof($_POST);$i++) {
//Таким образом проходим по всем элементам $_POST и добавляем их в переменную а затем в заголовок
$posts.="&".$post_keys[$i]."=".$_POST[$post_keys[$i]];
}
//Заголовок
$query="POST ".$url." HTTP/1.0\r\n".
"Referer: ".$url." \r\n".
"User-Agent: ".$_SERVER['HTTP_USER_AGENT']."\r\n".
"Host: vkontakte.ru\r\n".
"Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n".
"Accept-Language: ru,en;q=0.9\r\n".
"Accept-Charset: windows-1251, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1\r\n".
"Proxy-Connection: close\r\n".
"Content-Type: application/x-www-form-urlencoded\r\n".
"Content-Length: ".strlen($posts)."\r\n\r\n".
$posts."\r\n\r\n";
$socket=fsockopen('vkontakte.ru',80,$errno,$errstr,60); //Посылаем заголовки
fwrite($socket,$query);
while(!feof($socket)) $vk.=fgets($socket)."<hr>"; //Считываем ответ
fclose($socket);
$arr = explode("<hr>", $vk); //Эти телодвижения нужны для получения cookies
$cookies=array();
for ($i=0;$i<sizeof($arr);$i++) {
if (preg_match("/Set-Cookie:/i", $arr[$i])) {
$cookies[sizeof($cookies)]=$arr[$i]; //Возможно немного громоздко но я пока только так умею
}
}
$s=serialize($cookies);
session_register("s");
} else {
//Проблема начинается где-то ниже, так как методом $_POST все передается и работает как надо.
if (!empty($_SESSION['s'])) {
$cookies=unserialize($_SESSION['s']);
$cookies=implode("\r\n", $cookies)."\r\n";
} else {
$cookies="";
}
$gets="";
$url = explode("?", $url);
$url = $url[0];
if (empty($url[1])) {
$gets_keys=array_keys($_GET);
$gets=$gets_keys[0]."=".$_GET[$gets_keys[0]];//так-же как в $_POST
for ($i=1;$i<sizeof($_GET);$i++) {
$gets.="&".$gets_keys[$i]."=".$_GET[$gets_keys[$i]];
}
}
//Заголовок
$query="GET ".$url." HTTP/1.0\r\n".
"Referer: ".$url." \r\n".
"User-Agent: ".$_SERVER['HTTP_USER_AGENT']."\r\n".
"Host: vkontakte.ru\r\n".
"Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n".
"Accept-Language: ru,en;q=0.9\r\n".
"Accept-Charset: windows-1251, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1\r\n".
"Proxy-Connection: close\r\n".
$cookies.
"Content-Length: ".strlen($gets)."\r\n\r\n";
//посылаем
$socket=fsockopen('vkontakte.ru',80,$errno,$errstr,60);
fwrite($socket,$query);
while(!feof($socket)) $vk.=fgets($socket)."<hr>";
fclose($socket);
}
$text = str_replace("vkontakte.ru", "domen.ru/vk", $vk);
echo $text;
?>
Смысл кода не сложный, вроде бы и реализовать не сложно, но всетаки я немного запутался с $_GET - уважамые форумчане, помогите найти ошибку.