AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

idHTTP: php seite aufrufen (post)

Ein Thema von Pseudemys Nelsoni · begonnen am 18. Feb 2004 · letzter Beitrag vom 27. Mär 2004
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

idHTTP: php seite aufrufen (post)

  Alt 18. Feb 2004, 11:47
hoi,

ich versuche mich in ein forum einzuloggen( http://www.cncgamer.com/forums/index...=Login&CODE=00 ), aber irgendwie klappt das nicht, ich kriege immer ein fehler angezeigt als ergebnis...

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  url: string = 'http://www.cncgamer.com/forums/index.php?act=Login&CODE=01';
var
  SL: TStringList;
begin
  SL := TStringList.Create;
  SL.Add('CookieDate=1');
  SL.Add('UserName=' + Edit1.Text);
  SL.Add('PassWord=' + Edit2.Text);
  Memo1.Text := idHTTP1.Post(url, SL);
  SL.Free;
end;

^^^^^^^^^Das ist der DelphiCode mit dem ich das versuche. im html quelltext der seite steht:


Code:
<form action="http://www.cncgamer.com/forums/index.php?act=Login&amp;CODE=01" method="post" name='LOGIN' onsubmit='return ValidateForm()'>
<input type='hidden' name='referer' value="http://www.cncgamer.com/forums/index.php?" />
<div class="tableborder">
  <div class="maintitle">[img]style_images/1/nav_m.gif[/img]Log In</div>
  <div class='pformstrip'>Please enter your details below to log in</div>
  <table class="tablebasic" cellspacing="1">
  <tr>
    <td class='pformleftw'>Please enter your name</td>
    <td class='pformright'><input type='text' size='20' maxlength='64' name='UserName' class='forminput' /></td>
  </tr>
  <tr>
    <td class='pformleftw'>Please enter your password</td>
    <td class='pformright'><input type='password' size='20' name='PassWord' class='forminput' /></td>
  </tr>
  </table>
  <div class="pformstrip">Options</div>
  <table class="tablebasic" cellspacing="1">
  <tr>
    <td class='pformleftw'>[b]Remember me?[/b]
If enabled, you will be automatically logged in again when you visit.
This is not recommended for shared computers.</td>
    <td class='pformright'><input type="radio" name="CookieDate" value="1" checked="checked" />Yes
<input type="radio" name="CookieDate" value="0" />No</td>
  </tr>

  </table>
  <div class="pformstrip" align="center"><input type="submit" name='submit' value="Log me in" class='forminput' /></div>


und ich sehe da nur USERNAME, PASSWORD und COOKIEDATE, also muss es doch stimmen?
Mario
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#2

Re: idHTTP: php seite aufrufen (post)

  Alt 19. Feb 2004, 10:39
hm, hat das noch nie jemand gemacht?
ich muss mich in einem Forum einloggen, wenn ich die daten per POST dann übergebe, sollte ich eingeloggt sein, dem ist aber nicht so.
ich kriege nämlich auf die Spiele-Ladder des Forums nur zugang wenn ich eingeloggt bin.

Also wenn jemand doch noch ne Idee hat möge er sie bitte posten (SirThornberry wüsste das sicher :\).
Mario
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: idHTTP: php seite aufrufen (post)

  Alt 27. Mär 2004, 14:08
Ansich ist der Ansatz richtig. Ich vermute es klappt nicht weil du einige Felder nicht mit postest. Du solltest auch die "hidden"-Felder mit posten. So hast du zum beispiel
Code:
<input type='hidden' name='referer' value="http://www.cncgamer.com/forums/index.php?" />
und
Code:
<input type="submit" name='submit' value="Log me in" class='forminput' />
nicht mit gepostet (Sehr selten das beim submit auch ein value ist, aber soll vorkommen)

versuch mal (falls nicht schon geschehen da ich mir ja ziemlich viel zeit mit der antwort gelassen hab)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  url: string = 'http://www.cncgamer.com/forums/index.php?act=Login&amp;CODE=01';
var
  SL: TStringList;
begin
  SL := TStringList.Create;
  SL.Add('referer=http://www.cncgamer.com/forums/index.php?');
  SL.Add('CookieDate=1');
  SL.Add('UserName=' + Edit1.Text);
  SL.Add('PassWord=' + Edit2.Text);
  SL.Add('submit=Log me in');
  Memo1.Text := idHTTP1.Post(url, SL);
  SL.Free;
end;
ganz dolles sorry nochmal das ich erst so spät poste, aber hatte den thread wohl damals übersehen
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
gekmihesg
(Gast)

n/a Beiträge
 
#4

Re: idHTTP: php seite aufrufen (post)

  Alt 27. Mär 2004, 14:33
so geht das:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  data: TIdMultiPartFormDataStream;
  seite: string;
begin
  data := TIdMultiPartFormDataStream.Create;
  try
    data.AddFormField('uname', user.Text);
    data.AddFormField('uemail', email.Text);
    data.AddFormField('psword', pwd.Text);
    data.AddFormField('hash','ed132e9e2b31af73ad11bb450f0573d3');
    seite := HTTP.Post('http://www.kingsofchaos.com/login.php', data);
  finally
    data.Free;
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: idHTTP: php seite aufrufen (post)

  Alt 27. Mär 2004, 14:44
Ein MultipartFormDataStream ist aber bissl übertrieben. Das ist ja wie mit Kanonenkugeln auf Spatzen zu schießen. Könnte sogar schief gehen da im quelltext als methode post steht und nicht der syntax für multipart... Die Versandart unterscheidet sich da ein bischen aber kann sein das php da keinen unterschied macht
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#6

Re: idHTTP: php seite aufrufen (post)

  Alt 27. Mär 2004, 14:51
Zumindestens braucht er die "Felder" referer und submit nicht unbedingt.

submit ist ja nur der Sendebutton und kein Eingabefeld und
referer gibt die Seite an, die nach dem erfolgreichen versenden angezeigt werden soll. Aber wenn referer nicht angegeben wird, dann wird normalerweise einfach eine Seite mit einer Nachricht, das alles erfolgreich versendet wurde, angezeigt.

Also an den Feldern selbst liegt es nicht.


Es könnte aber auch sein, das es wegen dem "&" nicht gehtverwuch's mal so:
Code:
url: string = 'http://www.cncgamer.com/forums/index.php?act=Login[color=red]&[/color]CODE=01';
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: idHTTP: php seite aufrufen (post)

  Alt 27. Mär 2004, 14:57
Es kann durchaus daran liegen das die Felder nicht mit gesendet wurden. Wenn die "'http://www.cncgamer.com/forums/index.php" explizit überprüft ob die Felder den gegebenen Value haben kann es ganau daran liegen. Es ist üblich in bei Loginseiten auch dem Submitbutton einen value zu verpassen um das passwort hacken so zu erschweren weil es ne menge leute gibt die diesen value einfach nicht mitsenden in der Anahme das dieser irrelevant sei
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz