Advertisement
Guest User

Untitled

a guest
Oct 12th, 2016
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 5.14 KB | None | 0 0
  1. unit LoginFrame;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. interface
  6.  
  7. uses
  8.   Classes, SysUtils, FileUtil, IdHTTP, IdCookieManager, Forms,
  9.   Controls, Graphics, Dialogs, StdCtrls, IdGlobalProtocols;
  10.  
  11. type
  12.  
  13.   { TForm1 }
  14.  
  15.   TForm1 = class(TForm)
  16.     Button_Login: TButton;
  17.     Edit_Password: TEdit;
  18.     Edit_UserName: TEdit;
  19.     HTTP: TIdHTTP;
  20.     IdCookieManager: TIdCookieManager;
  21.     Label_Password: TLabel;
  22.     Label_UserName: TLabel;
  23.     Memo: TMemo;
  24.     procedure Button_LoginClick(Sender: TObject);
  25.   private
  26.     { private declarations }
  27.   public
  28.     { public declarations }
  29.   end;
  30.  
  31. var
  32.   Form1: TForm1;
  33.  
  34. implementation
  35.  
  36. {$R *.lfm}
  37.  
  38. { TForm1 }
  39.  
  40. procedure TForm1.Button_LoginClick(Sender: TObject);
  41. var
  42.   Outputfile, Params: TStringList;
  43.   content: string = '';
  44.   stoken: string = '';
  45.   tokenpos: integer = 0;
  46.   whilecounter: integer = 0;
  47.   state: boolean = true;
  48.   Enc: TEncoding;
  49. begin
  50.   Outputfile := TStringList.Create;
  51.   HTTP.Request.UserAgent := 'Opera/9.80 (Windows NT 6.1; U; de) Presto/2.5.22 Version/10.51';
  52.   content := HTTP.Get('http://mpgh.net/');
  53.   HTTP.Disconnect(False);
  54.   HTTP.IOHandler.InputBuffer.Clear();
  55.   Outputfile.Text := content;
  56.   Outputfile.SaveToFile('index.html');
  57.   if content <> '' then
  58.   begin
  59.     tokenpos := Pos('name="s"', content);
  60.     whilecounter := tokenpos + 8;
  61.     if tokenpos > 0 then
  62.     begin
  63.       while state do
  64.       begin
  65.         if (content[whilecounter] = '=') and (content[whilecounter + 1] = '"') then
  66.         begin
  67.           whilecounter := whilecounter + 2;
  68.           stoken := '';
  69.         end
  70.         else if content[whilecounter] = '"' then
  71.           state := false
  72.         else
  73.         begin
  74.           stoken := stoken + content[whilecounter];
  75.           whilecounter := whilecounter + 1;
  76.         end;
  77.       end;
  78.     end;
  79.   end;
  80.   if stoken <> '' then
  81.   begin
  82.     HTTP.Request.ContentType := 'application/x-www-form-urlencoded';
  83.     Params := TStringList.Create;
  84.     with Params do
  85.     begin
  86.       Add('vb_login_username=' + Edit_UserName.Text);
  87.       Add('vb_login_password=' + Edit_Password.Text);
  88.       Add('s=' + stoken);
  89.       Add('securitytoken=guest');
  90.       Add('do=login');
  91.       Add('vb_login_md5password=');
  92.       Add('vb_login_md5password_utf=')
  93.     end;
  94.     try
  95.  
  96.  
  97.       //HTTP.Post('http://mpgh.net/forum/login.php?do=login', Params);
  98.     except
  99.       on E: EIdHTTPProtocolException do
  100.       begin
  101.          ShowMessage(IntToStr(http.ResponseCode));
  102.        end;
  103.     end;
  104.     Outputfile.Text := content;
  105.     Outputfile.SaveToFile('afterlogin.html');
  106.   end;
  107.   Outputfile.Free;
  108.   Params.Free;
  109. end;
  110. {
  111. <form id="navbar_loginform" action="" method="post" onsubmit="md5hash(vb_login_password, vb_login_md5password, vb_login_md5password_utf, 1)">
  112.                                     <fieldset>
  113.                                         <div>
  114.                                             <div style="width: 100%;">
  115.                                                 <div style="float: left; padding: 3px"><div style="float: left; width: 60px; height: 15px; padding: 3px 10px 0 5px;">Username</div><input style="height: 22px; width: 100px; padding: 0 5px;" type="text" class="textbox" name="vb_login_username" id="navbar_username" size="10" accesskey="u" tabindex="101" /></div>
  116.                                                 <div style="float: left; padding: 3px"><input type="checkbox" name="cookieuser" value="1" id="cb_cookieuser_navbar" class="cb_cookieuser_navbar" accesskey="c" tabindex="103" /> Remember Me?</div>
  117.                                             </div>
  118.  
  119.                                             <div style="width: 100%; clear: both;">
  120.                                                 <div style="float: left; padding: 3px"><div style="float: left; width: 60px; height: 15px; padding: 3px 10px 0 5px;">Password</div><input style="height: 22px; width: 100px; padding: 0 5px;" type="password" class="textbox" tabindex="102" name="vb_login_password" id="navbar_password" size="10" /><input style="height: 22px; width: 100px; padding: 0 5px; display: none;" type="text" class="textbox default-value" tabindex="102" name="vb_login_password_hint" id="navbar_password_hint" size="10" value="Password" /></div>
  121.                                                 <div style="float: left; padding: 3px"><input type="submit" class="loginbutton" tabindex="104" value="Log in" title="Enter your username and password in the boxes provided to login, or click the 'register' button to create a profile for yourself." accesskey="s"  /></div>
  122.                                             </div>
  123.                                         </div>
  124.                                     </fieldset>
  125.  
  126.                                     <input type="hidden" name="s" value="ab07f01e3c16e2633c5a0681304dd525" />
  127.                                     <input type="hidden" name="securitytoken" value="guest" />
  128.                                     <input type="hidden" name="do" value="login" />
  129.                                     <input type="hidden" name="vb_login_md5password" />
  130.                                     <input type="hidden" name="vb_login_md5password_utf" />
  131.                                 </form>   }
  132.  
  133. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement