![]() |
idHTTP: php seite aufrufen (post)
hoi,
ich versuche mich in ein forum einzuloggen( ![]()
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&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? |
Re: idHTTP: php seite aufrufen (post)
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 :\). |
Re: idHTTP: php seite aufrufen (post)
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:
und
<input type='hidden' name='referer' value="http://www.cncgamer.com/forums/index.php?" />
Code:
nicht mit gepostet (Sehr selten das beim submit auch ein value ist, aber soll vorkommen)
<input type="submit" name='submit' value="Log me in" class='forminput' />
versuch mal (falls nicht schon geschehen da ich mir ja ziemlich viel zeit mit der antwort gelassen hab)
Delphi-Quellcode:
ganz dolles sorry nochmal das ich erst so spät poste, aber hatte den thread wohl damals übersehen
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('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; |
Re: idHTTP: php seite aufrufen (post)
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; |
Re: idHTTP: php seite aufrufen (post)
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
|
Re: idHTTP: php seite aufrufen (post)
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 geht Zitat:
Code:
url: string = 'http://www.cncgamer.com/forums/index.php?act=Login[color=red]&[/color]CODE=01';
|
Re: idHTTP: php seite aufrufen (post)
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
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz