mybb - authorization

Discussion in 'PHP' started by errou, 22 Mar 2006.

  1. errou

    errou New Member

    Joined:
    27 Jan 2006
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Привет! Такое дело: на Mybb-шных форумах следующая форма авторизации.
    HTML:
     <form id="login" method="post" action="login.php?action=in" onsubmit="return process_form(this)">
    <input type="hidden" name="form_sent" value="1" />
    <input type="hidden" name="redirect_url" value="index.php" />
    <input type="text" name="req_username" size="25" maxlength="25" tabindex="1" />
    <input type="password" name="req_password" size="16" maxlength="16" tabindex="2" />
    <input type="submit" name="login" value="Войти" tabindex="3" />
    </form>
    Соостветственно, пишу простейший скрипт:
    PHP:
    $f=fsockopen("***.mybb.ru",80);

    fwrite($f,"POST /login.php?action=in&form_sent=1&redirect_url=index.php&req_username=123&req_password=123&login=%C2%EE%E9%F2%E8 HTTP/1.1\r\n");
    fwrite($f,"Host: ***.mybb.ru\r\n");
    fwrite($f,"Content-length: 0\r\n");
    fwrite($f,"Connection: close\r\n");
    fwrite($f,"\r\n");

    while(!
    feof($f))
    {
    print(
    fgets($f))."<br>";
    }
    То есть вроде бы заголовки, которые я посылаю, полностью идентичны форме... Однако ни хрена не проиходит, то есть login.php воспринимает все это дело не так, как подразумевается...
     
  2. xPow

    xPow New Member

    Joined:
    23 Jun 2005
    Messages:
    26
    Likes Received:
    0
    Reputations:
    0
    ты забыл о Content-type: application/x-www-form-urlencoded

    смотри здесь описание и примеры : http://php.net/fsockopen
     
  3. errou

    errou New Member

    Joined:
    27 Jan 2006
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    xPow, спасибо большое! Я понял, что с загловками чушь написал...
    Вот работающий кусок - авось кому пригодится:
    PHP:
    fputs($f,"POST /login.php?action=in HTTP/1.1\r\n");
    fputs($f,"Host: svatoslavforum.mybb.ru\r\n");
    fputs($f,"Content-type: application/x-www-form-urlencoded\r\n");
    fputs($f,"Content-length: ".strlen($poststring)."\r\n");
    fputs($f,"Connection: close\r\n");
    fputs($f,"\r\n");
    fputs($f,"form_sent=1&redirect_url=index.php&req_username=user&req_password=pass&login=".urlencode('Войти'));
    fputs($f,"\r\n\r\n");