# Inputfelder in php script füllen



## bravedreamer (26. Feb 2006)

Hi Leute


Ich habe ein Problem. Ich muss mich bei meiner Uni jede Stunde neu anmelden, um ins Internet zu gelangen. Diese Anmeldung passiert mit einem PHP script das mit POST arbeitet. Ich möchte das nun automatisieren indem ich ein Java Programm schreibe, welches den Benutzernamen und Passwort an den Server meldet und somit das Internet noch für eine Stunde offen haltet. 

Ich habe nun schon im Internet gesucht habe aber nichts gefunden für PHP. Im Tutorial von Java wird der Quellcode angegeben um mit einem cgi script zu kommunizieren (java.sun.com/docs/books/tutorial/networking/urls/readingWriting.html). Dieser funktioniert aber bei mir nicht.

Kann mir vielleicht jemand helfen???


Danke


----------



## Thammi (26. Feb 2006)

Versuch mal den HTTP-Client des Jakarta-Projektes:
http://jakarta.apache.org/commons/httpclient/downloads.html

Du kannst ja auch mal ausprobieren ob auch GET funktioniert, also http://meineseite.de/login.php?name=Ich&pass=unsicher


----------



## bravedreamer (26. Feb 2006)

Nein, leider geht es mit der GET Funktion nicht. Es steht im Quellcode drin, dass POST verwendet werden soll.


Es muss doch möglich sein, mit ner Standardimplementierung in Java so n' paar Variablen zu übergeben. Wenn es in cgi-bin funktionieren soll, wieso dann nicht auch in php?


Danke für Eure Hilfe!


----------



## Thammi (26. Feb 2006)

Der oben erwähnte Jakarta HTTPClient sollte das schaffen, schau ihn dir mal an.


----------



## Guest (27. Feb 2006)

Okay, ich hab mir das jetzt mal angesehen und es scheint als würde es funktionieren.

Das einzige Problem das ich habe ist, dass die Seite Redirects will und ich es nicht in dem Framework setzen kann, bzw. darf. Ich erhalte folgende Fehlermeldung: 

```
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Entity enclosing requests cannot be redirected without user intervention
	at org.apache.commons.httpclient.methods.EntityEnclosingMethod.setFollowRedirects(EntityEnclosingMethod.java:221)
```


Kennt sich zufällig jemand mit dem Framework aus? Kann mir jemand helfen was ich falsch mache! Ich setzte nur mit Hilfe der Funktion setFollowRedirects die Eigenschaft. Sonst nichts.


Danke


----------



## bravedreamer (28. Feb 2006)

Okay, das mit dem Redirect habe ich jetzt lösen können, aber ich habe das gleiche Problem wie mit der Methode ohne den http-client.

Ich glaube ich mache etwas grundsätzliches falsch. Dazu folgendes Szenario:

Die Seite, welche ich kontaktieren möchte ist eine 'Anmeldungsseite'. Wenn ich das Seite mit meinem Browser aufrufen und z.B. einfach nur auf 'Anmelden' klicke, dann erhalte ich eine neue Seite, wo mir mitgeteilt wird, dass ich einen gültigen Benutzernamen sowie Passwort haben muss.

Wenn ich nun mit Java und dem http-client einfach nur die post Methode ausführe auf die Seite, dann erhalte ich die gleiche Seite nochmal.

Deswegen, was mache ich falsch. Eigentlich müsste ich die gleiche Seite erhalten wie im Browser.


Danke


----------



## bravedreamer (2. Mrz 2006)

Ist der Grund, wieso es nicht geht vielleicht der, dass die url mit https beginnt?

Muss ich somit zuerst das Zertifikat akteptieren oder sowas?


----------



## Guest (9. Mrz 2006)

da braucht man doch kein java ???:L 
schreib dir eine html-datei
zieh dir das original formular aus dem quelltext und kopier es dir in deine datei
dann änderst du die textinputs in hiddeninputs und legst deine daten als value fest
mit javascript machst du dass das formular bei seitenaufruf abgeschickt wird und das jede stunde wiederholt wird
da ist das problem einfach gelöst mit ner html datei


----------



## bravedreamer (12. Mrz 2006)

Das wäre auch eine Möglichkeit. Danke.

Aber mein Problem ist es, dass ich das alles von einem Java-Programm aus steuern MUSS. Das deswegen, weil ich immer das PHP-Formular verwenden muss ums ins Internet zu kommen und ich mehrere Programme habe, welche Zugriffe auf das Internet brauchen.

Somit wäre es ziemlich erleichternd, wenn ich die Anmeldung mit Java machen könnte. So schwer kann das doch nicht sein. Aber leider habe ich nichts gefunden (Sample Code) was mir weiterhelfen kann.


----------

