Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Captcha in Programm anzeigen lassen (https://www.delphipraxis.net/136985-captcha-programm-anzeigen-lassen.html)

SyntaxXx 11. Jul 2009 19:11


Captcha in Programm anzeigen lassen
 
Nabend zusammen.
ich bin gerade dabei ein kleines Programm zu proggen, was die regestation auf einer Seite erleichtern soll.
Nein keine sorge, ich habe nicht vor, so ne art bot zu bauen, die Seiten mit Regestrationen flutet, nein ich möchte die Regestration nur einfacher gestalten.

Und um das zu erreichen würde ich gerne das Captcha im Programm anzeigen lassen.

Das problem wa sich habe, es ist ein javascript.

Hier mal der Code:

Delphi-Quellcode:
<script>
                  var RecaptchaOptions = {
                     theme : 'red'
                  };
               </script>
               <script type="text/javascript" src="http://api.recaptcha.net/challenge?k=6Lep_gQAAAAAAK5Wn6FbaLBPweWqL5QS79hwXSPw"></script>

   <noscript>
        <iframe src="http://api.recaptcha.net/noscript?k=6Lep_gQAAAAAAK5Wn6FbaLBPweWqL5QS79hwXSPw" height="300" width="500" frameborder="0"></iframe>


        <textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
        <input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>
   </noscript>

Auf der Seite sieht das ganze so aus:

http://img34.imageshack.us/img34/3434/captchat.jpg


Könnt ihr mir vielleicht sagen, wie ich das hin bekomme?
Denn ein weiteres problem stelle ich mir vor, nicht nur das anzegen lassn sonder dass das auch überprüft wird.


Wäre echt klasse, wenn ihr mir helfen könntet^^

himitsu 11. Jul 2009 20:54

Re: Captcha in Programm anzeigen lassen
 
nimm z.B. TWebbrowser und zeige es damit an,

ansonsten ... was glaubst du denn, warum die das mit dem Capatcha so "aufwendig" machen?
(damit es keiner einfach mit einem Programm auslesen kann)

SyntaxXx 11. Jul 2009 22:06

Re: Captcha in Programm anzeigen lassen
 
Ok ich kann mir jetzt die ganze Seite anzeigen lassen im WebBrwoser.
Gibt es denn jetzt auch die möglichkeit, nur einen bestimten teil anzeigen zu lassen? in diesem falle das Captcha?

jaenicke 11. Jul 2009 22:32

Re: Captcha in Programm anzeigen lassen
 
Du musst doch nur den IFrame anzeigen, oder?

WorstNightmare 11. Jul 2009 23:12

Re: Captcha in Programm anzeigen lassen
 
Wenn du wirklich nur das Bild willst und nicht auf TWebBrowser setzen willst, nimm dir ein TIdHTTP.

Dann tu folgendes:

1. Filter die URL in <iframe src="url" raus.
2. Gette diese URL mit dem Client.
3. Filter das bla zwischen "challenge : 'bla'" und "server : 'bla'" aus dem erhaltenen HTML-Code (ohne ")
4. Gette das Image (im JPG Format) von GefilterterServer + 'image?c=' + GefiltertesChallenge
5. Lass den User das Captcha eingeben.

Jetzt kommt es auf das weitere Aussehen des oben geposteten HTML-Codes an. Da ist eine Form, die hat eine action (form action="bla" steht da wahrscheinlich).

6. An diese URL postest du (ggf. musst du noch den Host der Seite vorne ranfügen): "recaptcha_challenge_field=' + GefiltertesChallnge + '&recaptcha_response_field=' + CaptchaCodeVonUser" ohne die ".

Findest du im erhaltenen Quellcode wieder ".recaptcha.", war der Code falsch oder die Anfrage fehlerhaft (ggf. musst du Cookies und Referer noch handeln). Es kann auch sein, dass die Form noch weitere Parameter (input type="hidden") hat oder recaptcha noch was will (ist immer unterschiedlich bei den dingern). Sollte es nicht gehen, kannst du mal mit Wireshark kucken, was alles gesendet wird, wenn du das Captcha im Browser eingibst.

Micha88 12. Jul 2009 00:16

Re: Captcha in Programm anzeigen lassen
 
Mein Vorgänger hat schon alles gesagt.

Kleiner Tipp noch:
Pos, PosEx, Copy

Müsste eigentlich reichen, um die URL zu filtern.

SyntaxXx 12. Jul 2009 22:42

Re: Captcha in Programm anzeigen lassen
 
So ich wollte nun folgendes machen:

Ich wollte mir das Captcha runter laden, und dann anzeige lassen.
Diesmal handelt es sich um eine andere art von Captcha, also nicht mehr das, was ich zuerst gepostet hab.

Um die URL des Captchas zu bekommen, muss ich ja den quelltext danach filtern.
Doch immer wenn ich da smache, bekomme ich ne ganz komische ausgabe.

hier mal der Code vom filtern:

pos1 := pos('name="keystring">
<th align="left">[img]
' , quelltext)+ length('name=[/img]
<th align="left"><img src="');
pos2 := pos('"></table></form></font>
', quelltext);
pos3 := copy(quelltext, pos1,pos2);
showmessage(pos3);



Das hier ist der Quelltextausschnitt, von dem ich das verwende:

<input type="text" name="keystring">
<th align="left">[img]
cp.php?PHPSESSID=9e7ee7637a2a19bf2b7cbb95b3e802de[/img]</table></form></font>




Das unterstrichene ganz klar möchte ich raus haben.

Doch so wie ich es jetzt habe, bkomme ich nur ne leere messagebox.

WorstNightmare 13. Jul 2009 09:08

Re: Captcha in Programm anzeigen lassen
 
Hast du mal geschaut, ob Pos1 oder Pos2 vielleicht 0 sind? (ok, bei Pos1 0 + Länge)
Wenn ja ist der Suchstring falsch (vielleicht ein Zeichen vergessen oder so)


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:15 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