# Mit C++ auf Websiten zugreifen



## Hydroxid (25. September 2011)

Hey,
ich arbeite mich gerade wieder in C++ ein und wollte fragen wie man mit C++ auf Websiten zugreifen kann.
Ich möchte zum Beispiel von einer Website ein Formular und das Captcha in das Programm einbinden. 
Wisst ihr wie das geht?
Kennt jemand von euch eine Anleitung dafür?
LG


----------



## <BaSh> (25. September 2011)

Mit C++ kannst du maximal eine Website öffnen. Auf die Daten kann man soweit ich weiss nur mit PHP zugreifen


----------



## pyro539 (25. September 2011)

Hallo,

denke mal BaSh meint, dass man nicht auf die Daten der Datenbank der Webanwendung zugreifen kann. Das ist soweit richtig, das brauchst du allerdings auch gar nicht  Was du willst, ist einen POST/GET-Request an die Seite abzusetzen und die Antwort auszulesen.

Dazu gibts mehrere Ansätze, je nachdem wie Lowlevel-mäßig du das angehen willst. Der Zugriff auf Webseiten erfolgt über das HTTP-Protokoll (siehe Wiki). Du kannst jetzt entweder das HTTP-Protokoll anhand des RFC selbst implementieren und die Requests per Sockets abschicken, oder du greifst zu einer der zahlreichen Libraries, die das schon für dich übernommen haben 

Zu nennen wären z.B. libcurl (bzw. cURL++ für die C++-Bindings) oder auch andere (die ich nicht kenne und nie benutzt habe ).

Gruß,
pyro

edit: Hier z.B. ein Beispiel mit cURL++, in dem ein POST-Request an eine Webseite abgesetzt wird um eine Form abzuschicken:
http://curlpp.org/index.php/examples/69-example-19
Captcha kannst ja einfach auslesen, das ist ja nur ein Bild.


----------



## AchtBit (1. Oktober 2011)

Gehn tut das schon. Du schreibst dir einfach ein kleines Browser Objekt, das deine gewünschten Funktionen beinhaltet und dockst es an Browser Engine. Problem, schlecht für kommerziellen Einsatz weil der Standard solche Objekte als Sicherheitsrisiko behandelt und Zertifikate dafür sind teuer, geht aber gut für private Zwecke, wenn du die Sicherheitseinstellungen dafür auf 'administrativ genemigt' zurückstufst.


----------



## Puepue (9. Oktober 2011)

Auch wenn du jetzt nach c++ gefragt hast - mit C# und einer simplen Windows Forms Anwendung kannst du dir ein Programm eigentlich sogar zusammenklicken, welches einen "Browser" beinhaltet.. muss es denn C++ sein?


----------



## Hydroxid (16. Oktober 2011)

Ne nicht unbedingt...


----------



## Exinferis (16. Oktober 2011)

Ich habe das so verstanden, dass er das Formular einer Webseite in einem C++-Programm mitverwenden will.
Ich würde das über Sockets lösen, das Formular aus dem Array auslesen, dann die Eingabefelder parsen und durch die Entsprechungen in C++ ersetzen. Keine Ahnung ob Du das in Windows oder in Linux lösen willst.
Erstell Dir für jede Art von Eingabefeld eine Fensterklasse und dann sollte das parsen entsprechend leicht und schnell gehen.
Frage ist nur ob Du das Ergebnis dann wieder an den Webserver übergeben willst oder nicht.
Bei dem Captcha musst Du schauen wie das gelöst ist. Das wird etwas komplizierter, es sei denn Du machst Dein eigenes.


----------



## AchtBit (19. Oktober 2011)

Exinferis schrieb:


> Ich habe das so verstanden, dass er das Formular einer Webseite in einem C++-Programm mitverwenden will.


 
Ich weis zwar nicht in welcher Umgebung genau das ablaufen soll aber auf so forms kannst klar mit einem X-belibigen Prog zugreifen. Solange das in der Server Umgebung ausgeführt wird, kannst jederzeit die globalen HTTP Variablen lesen oder auch umgekehrt diese beschreiben. Wenn das c# Programm nicht inn der Serverumgebung läuft, musst halt den Transfer über eine Datei oder DB, umleiten.


----------

