Download von phpbb3-Forum mit wget inklusive Login

para_noid

hirnrissig
Ich setze folgendes Kommando ab:

Code:
wget --keep-session-cookies --save-cookies=cookies.txt --post-data='username=meinName&password=meinPasswort' "http://forum.de/ucp.php?mode=login&redirect=./index.php" &
wget --keep-session-cookies --load-cookies=cookies.txt -r -k -E http://forum.de/index.php

Download zieht durch, Cookie-Datei wird auch angelegt, aber wenn ich dann lokal das Forum aufrufe hab ich nur die Gastansicht vor mir, heißt, versteckte Foren und Beiträge sind nicht dabei. Nun kann mir wget natürlich keine Meldung zurückgeben wenn der Login in's Forum nicht funktioniert hat, aber das kann ich eigentlich ausschließen. Die Zugangsdaten stimmen und die POST-Felder sind auch richtig.

Was könnte an dem Kommando falsch sein?
 

deepthroat

Erfahrenes Mitglied
Hi.

Falls es kein Tippfehler ist, führst du die Kommandos praktisch gleichzeitig aus. Du solltest diese aber hintereinander ausführen.

Bash:
cmd1 && cmd2
 

para_noid

hirnrissig
Du hast vollkommen Recht, ich hab das erste Kommando schön in den Hintergrund gesemmelt...
Leider hat sich an dem Ergebnis nichts geändert; ich habe weiterhin nicht die Ansicht des eingeloggten Benutzers zur Verfügung.
Fällt dir noch was auf? In der Cookie-Datei steht schonmal die richtige UserID drin...
 

deepthroat

Erfahrenes Mitglied
Wie sieht denn das Resultat des ersten Kommandos aus? Da müßte ja eine Weiterleitung auf die index.php erfolgen und du müßtest "alles" sehen können.

Bist du dir denn sicher, dass du auch alle notwendigen Formulardaten mitsendest (versteckte Inputs etc.)? Was sendet der Browser beim Einloggen für Daten?

Vergleiche mit den Cookies im Browser ob auch alle vorhanden sind.

Evtl. wird ein Referer Header benötigt?
 

para_noid

hirnrissig
Irgendwie mag das nicht klappen.

Bist du dir denn sicher, dass du auch alle notwendigen Formulardaten mitsendest (versteckte Inputs etc.)?

War ich, stimmte aber nicht :)

Es hat sowohl der Name des Submitbuttons wie das versteckte Redirect-Feld (was dann wohl die eigentliche Weiterleitung ausmacht) gefehlt...und weiterhin mangelts an der sid. Die steht als hiddeninput drin und wird sicherlich vor der Ausgabe generiert und bereits in den Krümel geschrieben.

Ich hab es dann so probiert

Code:
wget --keep-session-cookies --save-cookies=cookies.txt "http://forum.de/ucp.php?mode=login" && 
wget --referer=http://forum.de/ucp.php?mode=login --keep-session-cookies --load-cookies=cookies.txt --save-cookies=cookies.txt --post-data='username=meinName&password=meinPaswort&login=Anmelden&redirect=./ucp.php?mode=login&redirect=.%2Findex.php' "http://forum.de/ucp.php?mode=login&redirect=./index.php" && 
wget --referer="http://forum.de/ucp.php?mode=login&redirect=./index.php"  --keep-session-cookies --load-cookies=cookies.txt -r -k -E http://forum.de/index.php

um die Seite erst zu laden und den Krümel zu erstellen, damit beim zweiten Aufruf, dem Einloggen, krümelseits die sid stimmt, um danach das ganze Board zu ziehen, was mindestens aufgrund der bekloppten Referer-Angaben nicht geklappt haben wird.

Dann hab ich das hier gefunden, dem "Mirroring a phpBB forum with wget can be a pain in the ass" laut zugestimmt und gesehen, dass ich das mit dem Cookie schonmal richtig gerafft habe. Leider wird für alles andere von ner höheren wget-Version ausgegangen als ich habe...

Jetzt hab ich die erhaltene sid mal rausgelesen und sowohl an das Formular wie auch den Anruf der Index rangeschmissen, aber Ergebnis ist dasselbe.

Code:
wget --keep-session-cookies --save-cookies=cookies.txt "http://forum.de/ucp.php?mode=login" && 
sid=`cat cookies.txt | head -n5 | tail -n1 | cut -f7` && 
wget --keep-session-cookies --load-cookies=cookies.txt --save-cookies=cookies.txt --post-data='username=meinName&password=meinPasswort&login=Anmelden&sid=$sid&redirect=./ucp.php?mode=login&redirect=.%2Findex.php' "http://forum.de/ucp.php?mode=login&redirect=./index.php&sid=$sid" &&
wget --keep-session-cookies --load-cookies=cookies.txt -r -k -E http://forum.de/index.php?sid=$sid

Beim Aufruf der versteckten Foren, wenn man eingeloggt ist, wird nur die ForenID drangehangen, also muss die Berechtigung ja aus dem Krümel kommen und ich brauch die sid nicht ständig als GET-Parameter.

Irgendwas Forensoftwarespezifisches hab ich übersehen. Cookies stimmen überein, einmalig eingeloggt bin ich ja dann. Ich werd demnächst mal in die php-Dateien vom Forum schauen, vllt find ich da was. Ist nur schade weil ich dachte, dass ich solche Konstrukte mit wget durchführen kann, ohne ganz genau zu wissen was hintenrum läuft.