benutzer-registrierung
Hanni
- https
hallo,
ich habe ende 2003 ein kleines forum bei rapidforum.de angemeldet (http://14815.rapidforum.com/).
Jetzt bin ich auf die glorreiche idee gekommen, dieses forum in eine website einzubinden, die ich selbst erstellen will. aus benutzerfreundlichen gründen stelle ich mir vor dass sich alle user nur einmal einloggen müssen und dann in allen bereichen der website zugriff mit ihren accounts haben, bzw dass sie automatisch im rapidforum eingeloggt werden.
die passwörter der user des forums wären zu vernachlässigen da ich jedem benutzer der website manuell ein pw mit user fürs forum zuweise, welches sie dann nichtmal kennen bräuchten.
so weit hab ich mir das bisher überlegt. jetzt habe ich allerdings keine ahnung wie ich das umsetzen soll (und bei google oder mit der forumsuche hier bin ich auch nicht weitergekommen)
danke,
hanni
Hi,
jetzt habe ich allerdings keine ahnung wie ich das umsetzen soll
wie funktioniert der Login-Mechanismus bei Rapidforum?
Cheatah
Hi,
jetzt habe ich allerdings keine ahnung wie ich das umsetzen soll
wie funktioniert der Login-Mechanismus bei Rapidforum?
Cheatah
ich weis nur was im quelltext zum einloggen steht:
<form action="/" method="post">
<input type="text" name="userid" size="7" class="input">
<input type="password" name="password" size="7" class="input">
<input type="submit" name="login" value="Login" class="input">
</form>
<!--ich hoffe das wird angezeigt-->
wirklich was damit anfangen kann ich nicht.
MfG hanni
Hallo hanni.
ich weis nur was im quelltext zum einloggen steht:
Kommst du überhaupt an den PHP-Quelltext?
Den brauchst du schließlich um das System ein bisschen zu verändern...
Oder wie komfortabel ist rapidforum?
Man liest sich, H2O
im admin bereich steht dass rapidforum in pearl und c++ geschrieben ist. ich habe auf templates zugriff...
ich habe keine ahnung wie das forum funktioniert, ich betreibe es hobbymäßig und habe ab und an was im design verändert.
also leider kann ich dir da nicht weiterhelfen, sorry
MfG hanni
Hi,
im admin bereich steht dass rapidforum in pearl und c++ geschrieben ist.
C++ kenne ich, aber was ist "pearl"?
also leider kann ich dir da nicht weiterhelfen, sorry
Du musst es so sehen, dass Du mit der Beantwortung unserer Fragen _Dir_ hilfst. Wir sind in ziemlich genau der selben Lage wie Du, mit dem Abstrich, dass wir keine Erfahrung in der Verwendung des Forums haben - und akut auch keine Möglichkeit dazu. Du bist diesbezüglich im Vorteil, und deshalb liegt die Aufgabe der Analyse auch in Deiner Hand. Wir können nur auf Deine Ergebnisse warten.
Cheatah
Perl war gemeint.
Du musst es so sehen, dass Du mit der Beantwortung unserer Fragen _Dir_ hilfst.
Ich weis dass ich im enfeffekt mir selbst im weg stehe... vielleicht war es falsch um hilfe zu bitten
alles was ich bisher in den templates gefunden habe sieht so aus:
<USERMODE!1>
hier steht der text der angezeigt wird wenn man eingeloggt ist
</USERMODE>´
<USERMODE=1>
und hier, wenn man nicht eingeloggt ist.
</USERMODE>
auf das was hinter diesen tags steckt hab ich keinen zugriff.
MfG hanni
Hi,
vielleicht war es falsch um hilfe zu bitten
das wohl nicht. Du darfst nur nicht erwarten, dass wir Dinge tun, die Du viel besser kannst.
alles was ich bisher in den templates gefunden habe
Die Templates bringen nichts.
Du hast schon den richtigen Themenbereich gewählt: HTTP. Es geht um die übertragenen Daten, also nicht um eine der beiden Seiten, sondern um das Dazwischen, die Kommunikation zwischen Client und Server. Diese musst Du untersuchen - vergleiche meine zweite Antwort.
auf das was hinter diesen tags steckt hab ich keinen zugriff.
Auf die übertragenen Daten hast Du Zugriff. Sowohl das, was Dein Rechner versendet, als auch das, was er empfängt, befindet sich zu irgend einem Zeitpunkt auf eben diesem Rechner.
Cheatah
Auf die übertragenen Daten hast Du Zugriff. Sowohl das, was Dein Rechner versendet, als auch das, was er empfängt, befindet sich zu irgend einem Zeitpunkt auf eben diesem Rechner.
genau darauf will ich hinaus. aber wie?
trotz meinen gigantischen informationen könnt ihr mir wohl nicht helfen :P
trotzdem danke, hanni
Hi,
na ja, um dir mal einen kleinen Stoß in die richtige Richtung zu geben: Tu doch einfach so, als wärst du das Formular und wolltest dich an das Forum schicken: http://www.php-faq.de/q/q-code-post.html.
Du musst dich natürlich damit befassen, wie man einzelne "Felder" simuliert und das ganze dementsprechend anpassen, aber das Prinzip sollte stimmen.
MfG
Rouven
na ja, um dir mal einen kleinen Stoß in die richtige Richtung zu geben
danke.. jetzt weis ich wenigstens wonach ich suchen muss!
danke auch an cheatah
HTTP/1.1 200 OK
Date: Tue, 09 Aug 2005 08:02:41 GMT
Server: Apache/1.3.29 (Unix) mod_fastcgi/2.4.2
P3P: CP="ALL DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONa TELa OUR STP UNI NAV STA PRE"
Set-Cookie: dates=0%2C1123574561; path=/; expires=Fri, 07-Aug-2015 08:02:41 GMT
Connection: close
das bekomm ich wenn ich das script aus Rouven's url nehme und die unten aufgeführten werte einsetze. damit kann ich aber nix anfangen :/
nur weis ich dass der cockie mich nicht einloggt.
außerdem weis ich nicht wie ich dem die daten von user und pw senden soll.
$x = PostToHost(
"14815.rapidforum.com",
"/",
"http://14815.rapidforum.com",
"benutzernameundpasswort");
danke, hanni
Hi,
genau darauf will ich hinaus. aber wie?
ergänzend zu Rouvens Posting: Es lohnt sich, diese Funktion in einem möglichst allgemeinen Script zu implementieren. Solche Tools gibt es zwar schon zur Genüge und in den verschiedensten Farben und Formen, aber erstens hast Du dann eines, welches Deinen Bedürfnissen entspricht, und zweitens lernst Du gewaltig viel über HTTP.
trotz meinen gigantischen informationen könnt ihr mir wohl nicht helfen :P
Hilf Dir selbst, dann hilft Dir SelfHTML!
Cheatah
Hi,
ich weis nur was im quelltext zum einloggen steht:
wirklich was damit anfangen kann ich nicht.
das kann ich verstehen, denn der HTML-Code liefert allenfalls vage Hinweise. Analysiere die Requests und Responses, um die Vorgehensweise zu analysieren.
Cheatah
Hi,
Jetzt hab ich es geschafft, dem Server von rapidforum einen einigermaßen ordentlichen request zu senden.
<?php
function PostToHost($host, $path, $referer, $data_to_send) {
$fp = fsockopen($host, 80);
printf("Open!\n");
fputs($fp, "POST $path HTTP/1.1\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Referer: $referer\r\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-length: ". strlen($data_to_send) ."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $data_to_send);
printf("Sent!\n");
while(!feof($fp)) {
$res = fgets($fp, 128);
echo $res;
}
printf("Done!\n");
fclose($fp);
return $res;
}
$data = "login=1&userid=testaccount&password=test";
#der account existiert wirklich
printf("Go!\n");
$x = PostToHost(
"14815.rapidforum.com",
"/?",
"http://14815.rapidforum.com/login",
$data);
?>
Folgendes Problem tritt aber auf
http://www.hannin.de/extern/einloggen.php
Der Request müsste stimmen, denn wenn ich als pw etwas anderes angebe sagt mir der server dass das pw falsch eingegeben wurde. Außerdem möchte er die richtigen cookies setzen.
Irgendwo ist doch noch ein Fehler, aber wo?
Ich hab keine ahnung wo er liegen könnte :/
Danke, Hanni
Hi,
der Server ist der Meinung das sei so in Ordnung. Wenn du die Daten von Hand dort einträgst und auf Login gehst kommt genau das selbe zurück. Der Browser verarbeitet allerdings das Ergebnis und leitet weiter auf die angegebene URL (Inhalt von Location). Der Server hat dir mitgeteilt, dass er die Ressource erfolgreich anfordern konnte, aber eine temporär geänderte Adresse vorliegt, siehe Selfhtml: http://de.selfhtml.org/servercgi/server/httpstatuscodes.htm
MfG
Rouven
hi,
hört sich gut an!
Wie kann ich jetzt mein script so schreiben, dass der browser die kopfdaten so interpretiert wie wenn sie direkt vom server kommen?
danke,
hanni
Na ja,
es ist eigentlich nicht so wild. Das was du zurückbekommst ist ja ein String. Du kannst dir jetzt entweder eine regular expression oder String-Funktionen schnappen um in der Rückgabe "Location: " zu finden. Alles, was ab da bis zum Zeilenende (\n oder \r\n) kommt ist die URL, die der Server dir nahelegt. Hierhin musst du verzweigen, je nachdem was du vorhast:
MfG
Rouven
- per Header (erfordert aber, dass vorher noch nichts ausgegeben wurde per echo o.ä. oder aber die Ausgabe gepuffert wird)
eigentlich müsste das doch so stimmen:
<?php
function PostToHost($host, $path, $referer, $data_to_send) {
$fp = fsockopen($host, 80);
fputs($fp, "POST $path HTTP/1.1\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Referer: $referer\r\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-length: ". strlen($data_to_send) ."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $data_to_send);
while(!feof($fp)) {
$res .= fgets($fp, 128);
}
fclose($fp);
$head = explode("\n", $res);
for($i=0;$i<count($head);$i++) {
header($head[$i]);
}
return $res;
}
$data = "login=1&userid=testaccount&password=test";
$x = PostToHost(
"14815.rapidforum.com",
"/?",
"http://14815.rapidforum.com/?c=1",
$data);
?>
damit werde ich zwar zum forum weitergeleitet aber die cookies werden nicht geschrieben, dh. ich bin nicht im forum eingeloggt.
Gleiches problem wenn ich als header einfach nur
header("Location: http://14815.rapidforum.com");
angebe. ich bin zwar im forum, aber logischerweise nicht eingeloggt.
also wie kann ich den browser die cookies erfolgreich schreiben lassen? dazu reicht die header() funktion allem anschein nach nicht
Gruß
Hanni