E
E
Evgeny Elizarov2011-02-25 12:34:48
PHP
Evgeny Elizarov, 2011-02-25 12:34:48

How to login to novafilm.tv using cURL?

Something I've blunted on the topic of the transmitted data.
If on other trackers it is enough to post the log/pass and press the button
curl_setopt($ch, CURLOPT_POSTFIELDS, "FormLogin={$log}&FormPassword={$pass}&act=login");
and everything works, then as I understand it, everything is transmitted in the headers, but judging by the logs, in addition to log, pass, a bunch of some data is also transmitted:
--------------------- --------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--
what is it? I tried to send the header in this form - the server returns nothing, if not sent - the authorization form falls out, respectively. Maybe someone has already written an authorization for a new one and will tell you or just throw a smart idea?

Answer the question

In order to leave comments, you need to log in

3 answer(s)
H
hayk, 2011-02-25
@hayk

"multipart/form-data" has nothing to do with it.

R
Riateche, 2011-02-26
@Riateche

Here is the working code (only enter the correct login and password):

<?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>

P
ParaPilot, 2014-04-09
@ParaPilot

Here is the working 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');
    }
});

or in pure 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');

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question