# Login auf Website



## NthDegree (3. Feb 2010)

Hallo zusammen!

Ich versuche gerade mir ein Login auf einer Website zusammen zu basteln, allerdings funktioniert das nicht wie gewünscht, da mein Login nicht akzeptiert wird und ich immer wieder beim Login lande.

das Html-Formular sieht folgendermassen aus:


```
<table style="margin-top: 12px; margin-bottom: 24px;" border="0" align="center" cellpadding="4" cellspacing="4">
  <tr>
    <td align="right"><strong>Benutzername</strong></td>
    <td><input name="name" type="text" id="name" maxlength="255" style="width: 120px;" /></td>
  </tr>
  <tr>
    <td align="right"><strong>Passwort</strong></td>
    <td><input name="pw" type="password" id="pw" maxlength="255" style="width: 120px;" /></td>
  </tr>
  <tr>
    <td colspan="2" align="right"><a href="neues_passwort.php">Passwort vergessen?</a>&nbsp;&nbsp;&nbsp;<input type="submit" name="Submit" value="Anmelden"/></td>
  </tr>
</table>


<input type="hidden" name="url" value="/de/lernen/index.php" /></form>
```

Mein Java-Code dazu:


```
public static void login() {
		
	HTTPConnection http = new HTTPConnection(); 
	http.doRequest("http://vokker.net/de/sonst/anmelden.php", "");
	
	
	
	        String data = null;
	        try {
	            // Create Login Package
	            data = URLEncoder.encode("name", "UTF-8") + "=" + URLEncoder.encode("meinname", "UTF-8");
	            data += "&" + URLEncoder.encode("pw", "UTF-8") + "=" + URLEncoder.encode("meinpw", "UTF-8");
	            data += "&" + URLEncoder.encode("Submit", "UTF-8") + "=" + URLEncoder.encode("Anmelden", "UTF-8");
	            data += "&" + URLEncoder.encode("url", "UTF-8") + "=" + URLEncoder.encode("/de/lernen/index.php", "UTF-8");
	        } catch (UnsupportedEncodingException e) {
	            e.printStackTrace();
	        }
	        // Send Logindata and wait for respons
	        String respons = http.doRequest("http://vokker.net/de/lernen/", "data");
	        System.out.println(respons);
	      
	    }
```

Hat jemand ne Idee worum das so nicht funktioniert?


----------



## ARadauer (3. Feb 2010)

wieso rufst du das Formular (das sowieso falsch ist) auf?

Du must die Url aufrufen welche auch das Formular aufruft xyz../de/lernen/index.php


----------



## NthDegree (3. Feb 2010)

Hab die URL nun geändert, aber es geht immer noch nicht. Was ist denn falsch an diesem Formular?

Tut mir leid, bin noch ziemlicher Anfänger.


----------



## ARadauer (3. Feb 2010)

NthDegree hat gesagt.:


> Tut mir leid, bin noch ziemlicher Anfänger.


du bist noch Anfänger und beschäftigst dich mit einem Schlag mit Java, PHP, HTML und HTTP? 
Da gibts viele Fehlerquellen....

Also HTML Formulare... lesen: SELFHTML: HTML / Formulare
Du bastelst da get http requests.... lesen: de.wikipedia.org/wiki/Hypertext_Transfer_Protocol


poste mal die http://vokker.net/de/lernen/index.php wenn du da zugriff drauf hast...

Akzeptiert das PHP Skript überhaupt GET?

ich weiß ist viel zu lesen :rtfm: aber one background weißt du ja nicht mal den unterschied zwischen post und get (wobei ich die auch immer verwechsle :bae: )


----------



## NthDegree (3. Feb 2010)

Okey vielen Dank, werde mich da mal reinlesen, habe auch nicht erwartet dass es einfach so auf Anhieb funktioniert :bae:

Ich gehe auf www.vokker.net/de/lernen, weil ich nicht eingeloggt bin werde ich auf Anmelden | vokker weitergeleitet und da habe ich dann eben dieses Formular welches ich oben gepostet habe.

method = "post" steht ja da, aber ein Kollege von mir hat mit sich mit diesem code auf einer anderen Seite einloggen können, wo das formular gleich aufgebaut war, auch mit post.

Theoretisch ist das doch post oder? 
Hier im Beispiel wird es ja gleich gemacht: Sending a POST Request Using a URL | Example Depot


----------



## Gelöschtes Mitglied 5909 (3. Feb 2010)

nein das ist GET sonst würde es nicht in der url stehn


----------



## NthDegree (3. Feb 2010)

Also Jungs:

Mein Problem ist gelöst, stellt euch vor, das ganze hat genau einen Fehler, nichts von wegen komplett falsches Formular, nichts wegen Get/Post 


```
// Send Logindata and wait for respons
            String respons = http.doRequest("http://vokker.net/de/lernen/", "data");
            System.out.println(respons);
```

Lösung:

```
// Send Logindata and wait for respons
            String respons = http.doRequest("http://vokker.net/de/lernen/", data);
            System.out.println(respons);
```

"data" / data <-- Wie konnte ich nur so naiv sein :bae:

Danke trotzdem :toll:


----------



## ARadauer (4. Feb 2010)

> , nichts von wegen komplett falsches Formular


naja kann schon sein, dass es richtig ist... aber das was du gepostet hast ist natürlcih nicht richtig.. das ja nicht mal form tags...


> nein das ist GET sonst würde es nicht in der url stehn


wahrscheinlich geht beides...


----------



## NthDegree (8. Feb 2010)

Also:
Ich lasse nun ein csv-File generieren und möchte dieses anschliessend in meinem Programm verwenden. Das csv-File erhält allerdings keine URL in diesem Sinne, es erscheint nur das Pop-Up zum Download. Kann mir jemand helfen dieses File zu speichern?

Mein momentaner Code:

```
java.io.BufferedInputStream in = new java.io.BufferedInputStream(new java.net.URL("http://vokker.net/de/export/exportieren.php").openStream());
				java.io.FileOutputStream fos = new java.io.FileOutputStream("CSV-Export-vokker.csv");
				java.io.BufferedOutputStream bout = new BufferedOutputStream(fos,1024);
				byte data[] = new byte[1024];
				while(in.read(data,0,1024)>=0){
				{
				bout.write(data);
				}
				bout.close();
				in.close();
```

Gemäss meinem Code versuche ich ja jetzt die Datei exportieren.php in die Datei "CSV-Export-vokker.csv" zu speichern, das geht logischerweise völlig falsch. Ich habe aber keinen Link wie www.vokker.net/export/data.csv oder etwas in dieser Art, nur dieses Pop-Up.


----------



## HoaX (8. Feb 2010)

Wieso logischerweise falsch? Was ist denn der Fehler?

Das einzige Problem was ich sehe ist, dass du bei "in.read" die Anzahl der gelesenen Bytes nicht merkst und danach einfach das gesamte Array in die Datei schreibst, auch wenn nur 5 Bytes gelesen wurden.


----------



## NthDegree (8. Feb 2010)

Ich bin der Meinung dass ich momentan den Inhalt der Datei exportieren.php auslese, darum meine ich logischerweise falsch. Ich möchte ja den Inhalt der csv datei, welche mir zum Download angeboten wird. Odr ist diese Datei in dieser exportieren.php? Mache ich einen Denkfehler?


----------



## ARadauer (9. Feb 2010)

Ich bete zu Gott, dass du nie den Inhalt von exportieren.php auslesen wirst, da wir sonst ein reißen Problem in der PHP welt haben ;-) Du ließt höchtens das aus, was die php Datei erzeugt...


Funktioniert dein Skript für den Download der Datei? Falls du es nicht weißt, leg dir auf irgend einen webspace eine CSV Datei und probiers aus... dann kannst du schon mal den Fehler eingrenzen...

hast du keinen Webspace? benutz das www.radauer.com/test.csv


----------

