Список вопросов
Как мне добавить решение на задач ?
14th February, 15:14
1747
0
Что dsu(i) значит в коде "катание на коньках"
8th February, 18:16
331
1
Страна замов. Напишите программу на Python
10th December, 18:14
737
2
На листе клетчатой бумаги рисуют выпуклый 100-угольник с вершинами в узлах сетки. Какое наибольшее число диагоналей этого 100-угольника может идти по линиям сетки?
7th November, 15:29
558
0
Рассмотрим все прямоугольники, длины сторон которых выражены целым числом метров, и периметр которых (в метрах) численно равняется площади (в метрах квадратных). Найдите суммарную площадь всех таких, разных по размеру сторон, прямоугольников.Прямоугольники, отличающиеся порядком сторон, например, 10 * 20 и 20 * 10 считаем одинаковыми.
7th October, 20:57
1109
0
Кто и за сколько может написать программу управления курсором?
2nd October, 23:48
737
3
Как авторизоваться на novafilm.tv при помощи cURL?
2nd October, 23:33
630
3
Верстка, position:relative создает пустое место
2nd October, 23:31
555
2
Что улучшить в переводе Apache Public License?
2nd October, 23:29
551
1
Формирование кода видео Вконтакте
2nd October, 23:23
685
3
IPad2 с 3G из Штатов?
2nd October, 23:18
614
5
А будет ли tcpdump видеть ack flood?
2nd October, 23:14
531
2
Альфа банк и странное смс мошенничество?
2nd October, 23:05
920
6
Софт для "ремонта" поврежденного h264 видео?
2nd October, 22:55
521
3
Scrapy — Python
2nd October, 22:54
537
4
Помощь с доставкой из США?
2nd October, 22:47
596
3
Как авторизоваться на novafilm.tv при помощи cURL?
Просмотров: 630
 
Ответов: 3
Что то я тут затупил на тему передаваемых данных.
Если на других трекерах достаточно постом передать лог/пасс и нажатие на кнопку
curl_setopt($ch, CURLOPT_POSTFIELDS, «FormLogin={$log}&FormPassword={$pass}&act=login»);
и всё работает, то тут я так понимаю всё передаётся в заголовках, но судя по логам помимо log, pass ещё куча каких то данных передаётся:
-----------------------------14042802788933518161505795335
Content-Disposition: form-data; name=\«return\»
/
-----------------------------14042802788933518161505795335
Content-Disposition: form-data; name=\«username\»
{$log}
-----------------------------14042802788933518161505795335
Content-Disposition: form-data; name=\«password\»
{$pass}
-----------------------------14042802788933518161505795335
Content-Disposition: form-data; name=\«login\»
???????? ??????????!
-----------------------------14042802788933518161505795335--
что то вообще такое? Попробовал в таком виде заголовок отправить — сервер ничего не возвращает, если не слать — вываливается форма авторизации соответственно. Может кто уже писал авторизацию под нову и подскажет или просто умную мысль подкинет?
Вот рабочий код (только логин и пароль правильный поставьте):
<?php
$login = "qwerty";
$password = "qwerty";
$ch = curl_init("http://novafilm.tv/auth/login");
$postData = array(
"return"=>"",
"username"=>$login,
"password"=>$password,
"forget"=>0,
"login"=>"Хочу войти!",
);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData );
$headers = explode("\r\n", curl_exec($ch));
curl_close($ch);
if (in_array("Location: /", $headers))
print "Success!\n";
else print "Fail!\n";
</code>
<?php
$login = "qwerty";
$password = "qwerty";
$ch = curl_init("http://novafilm.tv/auth/login");
$postData = array(
"return"=>"",
"username"=>$login,
"password"=>$password,
"forget"=>0,
"login"=>"Хочу войти!",
);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData );
$headers = explode("\r\n", curl_exec($ch));
curl_close($ch);
if (in_array("Location: /", $headers))
print "Success!\n";
else print "Fail!\n";
</code>
Вот рабочий код
var answer
$.ajax({
url:'http://novafilm.tv/auth/login',
type: 'post',
data:{
username: 'ИМЯ',
password: 'ПАРОЛЬ',
login:'Хочу войти!',
return: '',
forget: 0
},
success:function(result)
{
answer = result;
},
error:function(){
alert('Something wrong');
}
});
или на чистой java
var handlerPath = 'xmlhttp.php';
function createRequest() {
// Создание объекта XMLHttpRequest отличается для Internet Explorer и других обозревателей, поэтому для совместимости эту операцию приходиться дублировать разными способами
if (window.XMLHttpRequest) req = new XMLHttpRequest(); // normal browser
else if (window.ActiveXObject) { // IE
try {
req = new ActiveXObject('Msxml2.XMLHTTP'); // IE разных версий
} catch (e){} // может создавать
try { // объект по разному
req = new ActiveXObject('Microsoft.XMLHTTP');
} catch (e){}
}
return req;
}
function getData(handlerPath, parameters) {
// Создаем запрос
req = createRequest();
if (req) {
// Отправляем запрос методом POST с обязательным указанием файла обработчика (true - асинхронный режим включен)
req.open("POST", handlerPath, false);
// При использовании объекта XMLHttpRequest с методом POST требуется дополнительно отправлять header
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
// Передаем необходимые параметры (несколько параметров разделяются амперсандами)
req.send(parameters);
// Для статуса "OK"
if (req.status == 200) {
// Получаем ответ функции в виде строки
var rData = req.responseText;
// Проверяем данные с помощью регулярных выражений, после выполняем функцию eval()
var eData = !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(rData.replace(/"(\\.|[^"\\])*"/g, ''))) && eval('(' + rData + ')');
// Создаем массив данных
var eArray = new Object(eData);
} else {
alert("Не удалось получить данные:\n" + req.statusText);
}
} else {
alert("Браузер не поддерживает AJAX");
}
return eArray;
}
// вызов функции AJAX запроса
getData(handlerPath,'username=USERNAME&password=PASSWORD&login=%D0%A5%D0%BE%D1%87%D1%83+%D0%B2%D0%BE%D0%B9%D1%82%D0%B8!&return=&forget=0');
var answer
$.ajax({
url:'http://novafilm.tv/auth/login',
type: 'post',
data:{
username: 'ИМЯ',
password: 'ПАРОЛЬ',
login:'Хочу войти!',
return: '',
forget: 0
},
success:function(result)
{
answer = result;
},
error:function(){
alert('Something wrong');
}
});
var handlerPath = 'xmlhttp.php';
function createRequest() {
// Создание объекта XMLHttpRequest отличается для Internet Explorer и других обозревателей, поэтому для совместимости эту операцию приходиться дублировать разными способами
if (window.XMLHttpRequest) req = new XMLHttpRequest(); // normal browser
else if (window.ActiveXObject) { // IE
try {
req = new ActiveXObject('Msxml2.XMLHTTP'); // IE разных версий
} catch (e){} // может создавать
try { // объект по разному
req = new ActiveXObject('Microsoft.XMLHTTP');
} catch (e){}
}
return req;
}
function getData(handlerPath, parameters) {
// Создаем запрос
req = createRequest();
if (req) {
// Отправляем запрос методом POST с обязательным указанием файла обработчика (true - асинхронный режим включен)
req.open("POST", handlerPath, false);
// При использовании объекта XMLHttpRequest с методом POST требуется дополнительно отправлять header
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
// Передаем необходимые параметры (несколько параметров разделяются амперсандами)
req.send(parameters);
// Для статуса "OK"
if (req.status == 200) {
// Получаем ответ функции в виде строки
var rData = req.responseText;
// Проверяем данные с помощью регулярных выражений, после выполняем функцию eval()
var eData = !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(rData.replace(/"(\\.|[^"\\])*"/g, ''))) && eval('(' + rData + ')');
// Создаем массив данных
var eArray = new Object(eData);
} else {
alert("Не удалось получить данные:\n" + req.statusText);
}
} else {
alert("Браузер не поддерживает AJAX");
}
return eArray;
}
// вызов функции AJAX запроса
getData(handlerPath,'username=USERNAME&password=PASSWORD&login=%D0%A5%D0%BE%D1%87%D1%83+%D0%B2%D0%BE%D0%B9%D1%82%D0%B8!&return=&forget=0');
Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться