Список вопросов
Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
894
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Как авторизоваться на novafilm.tv при помощи cURL?
Просмотров: 1141
 
Ответов: 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');
Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться