Automatisch einloggen ?
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Automatisch einloggen ?
Hallo,
nachdem ich es nun endlich geschafft habe ein kleines Script zu schreiben was automatische einen User in der DB anlegt versuche ich vergebens das Forum durch einen Link aufzurufen so das man automatisch eingeloggt ist.
Zur Erklärung:
Ich habe das Forum in ein CMS eingebunden und möchte natürlich nicht das sich die User 2 mal registireren müssen oder sich im Forum abmelden oder anmelden können.
Einfach Forum aufrufen und dann muß man automatisch registriert sein.
Gleich vorweg .. include.... könnte ein Problem werden. In dem CMS gibt es eine classe namens Template !!
Kann mir jemand weiterhelfen ?
Ich hab keinen Ansatz, leider.
Matthias
nachdem ich es nun endlich geschafft habe ein kleines Script zu schreiben was automatische einen User in der DB anlegt versuche ich vergebens das Forum durch einen Link aufzurufen so das man automatisch eingeloggt ist.
Zur Erklärung:
Ich habe das Forum in ein CMS eingebunden und möchte natürlich nicht das sich die User 2 mal registireren müssen oder sich im Forum abmelden oder anmelden können.
Einfach Forum aufrufen und dann muß man automatisch registriert sein.
Gleich vorweg .. include.... könnte ein Problem werden. In dem CMS gibt es eine classe namens Template !!
Kann mir jemand weiterhelfen ?
Ich hab keinen Ansatz, leider.
Matthias
Re: Automatisch einloggen ?
Ansätze gibts meistens hier: http://area51.phpbb.com/docs/code/STF-DIR hat geschrieben:Ich hab keinen Ansatz, leider.
und hier: http://google.de
Einloggen kannst du den User mittels auth::login()
Wo ist das Problem? Hat phpBB doch auchSTF-DIR hat geschrieben:Gleich vorweg .. include.... könnte ein Problem werden. In dem CMS gibt es eine classe namens Template !!

Die sollte hier aber nicht dazwischenfunken...
Re: Automatisch einloggen ?
Hallo,
ich wollte eigentlich nicht den gesamten Quelltext des Bordes verstehen lernen.
War ja nur ne Frage.
Matthias
ich wollte eigentlich nicht den gesamten Quelltext des Bordes verstehen lernen.
War ja nur ne Frage.
Matthias
Re: Automatisch einloggen ?
Sorry, wenns falsch rübergekommen istSTF-DIR hat geschrieben:War ja nur ne Frage.

Also etwas konkreter:
Du musst die Datei "commons.php" vom phpBB irgendwo includen (zB. in die Loginfunktion der CMS)
Dann packst du folgenden Befehl auch noch in dieselbe Funktion rein:
Code: Alles auswählen
$auth->login($username, $password);
Dann kannst du's mal so testen

Re: Automatisch einloggen ?
Hallo,
ok, werd ich mal testen.
Ich glaube aber da gibts wieder probleme weil beide ( CMS und phpBB3 ) eine classe namens Template haben
Kann man das mit einer Session lösen ?
Ich hab da nicht so viel Ahnung davon.
Ich rufe jedenfalls aus dem CMS, an einer stelle wo ich Username und Password für beides kenne,
meine login.php auf, die das Login in das phpBB3 macht.
Diese Datei braucht allerdings Username und Password übergeben,
Also die müsste so aufgerufen werden :
login.php?username=bla&password=blabla
Das ist allerdings nicht wirklich elegant.
Kann man eine session erstellen und darin dann Username und password speichern und dann nur die session id an das login.php übergeben ?
Man könnte doch dann dort wieder die beiden Variablen aus der session holen oder ?
Falls das geht kannst Du mir bitte aufzeigen wie ich das machen müsste ?
Danke
Matthias
ok, werd ich mal testen.
Ich glaube aber da gibts wieder probleme weil beide ( CMS und phpBB3 ) eine classe namens Template haben

Kann man das mit einer Session lösen ?
Ich hab da nicht so viel Ahnung davon.
Ich rufe jedenfalls aus dem CMS, an einer stelle wo ich Username und Password für beides kenne,
meine login.php auf, die das Login in das phpBB3 macht.
Diese Datei braucht allerdings Username und Password übergeben,
Also die müsste so aufgerufen werden :
login.php?username=bla&password=blabla
Das ist allerdings nicht wirklich elegant.
Kann man eine session erstellen und darin dann Username und password speichern und dann nur die session id an das login.php übergeben ?
Man könnte doch dann dort wieder die beiden Variablen aus der session holen oder ?
Falls das geht kannst Du mir bitte aufzeigen wie ich das machen müsste ?
Danke
Matthias
Re: Automatisch einloggen ?
ja, doch nun wirds mir klar was du meinst^^STF-DIR hat geschrieben:Ich glaube aber da gibts wieder probleme weil beide ( CMS und phpBB3 ) eine classe namens Template haben
welche CMS benutzt du denn?
Die Idee mit Sessionvariablen zu arbeiten ist gut...STF-DIR hat geschrieben:Falls das geht kannst Du mir bitte aufzeigen wie ich das machen müsste ?
Bei der Loginmethode deiner CMS fügst du folgenden Code ein:
Code: Alles auswählen
$_SESSION['phpbb_login_user'] = $username;

Von dem hängt die ganze Sicherheit deines Boardes ab^^
Dann öffnest du die Datei "includes/auth.php" von phpBB3.
In dieser Datei suchst du dir die letzte schliessende Klammer "}" und machst vor dieser folgendes rein:
Code: Alles auswählen
function login_without_password($username, $autologin = false, $viewonline = 1) {
global $config, $db;
$sql = 'SELECT user_password FROM ' . USERS_TABLE . "WHERE username_clean = '" . $db->sql_escape(utf8_clean_string($username)) . "'";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
if($db->sql_affectedrows() == 1) {
$password = $row['user_password'];
} else {
$password = null;
}
$db->sql_freeresult($result);
return $this->login($username, $password, $autologin, $viewonline);
}
Dann musst du noch die Datei "common.php" vom phpBB3 öffnen
dort suchst du die Zeichenfolge "?>" (am Ende der Datei) raus und fügst eine Zeile vornedran das ein:
Code: Alles auswählen
if(isset($_SESSION['phpbb_login_user']) AND !empty($_SESSION['phpbb_login_user']) ) {
$auth->login_without_password($_SESSION['phpbb_login_user']);
unset($_SESSION['phpbb_login_user']);
}
Der User wird dann erst eingeloggt, wenn er das Forum besucht...
Ausserdem wird er nach einer bestimmten Zeit wieder ausgeloggt... Wenn in der CMS ein autologin möglich ist, dann müssten wir noch eine zweite Session-Variable machen (sonst wird der User im Forum immer ausgeloggt und in der CMS nicht)
Re: Automatisch einloggen ?
Hallo,
ich danke Dir für die ausführliche Antwort.
Werd ich , nachdem ich ausgeschlafen habe, noch testen.
Noch ne kleine Frage zu
$_SESSION['phpbb_login_user'] = $username;
Wenn ich das im Login Script des CMS mache und dann wird eine andere PHP Seite aufgerufen , vergisst dann nicht php die Session Variable ?
Das CMS ist übrigens phpVMS : http://www.phpvms.net/
Matthias
ich danke Dir für die ausführliche Antwort.
Werd ich , nachdem ich ausgeschlafen habe, noch testen.
Noch ne kleine Frage zu
$_SESSION['phpbb_login_user'] = $username;
Wenn ich das im Login Script des CMS mache und dann wird eine andere PHP Seite aufgerufen , vergisst dann nicht php die Session Variable ?
Das CMS ist übrigens phpVMS : http://www.phpvms.net/
Matthias
Re: Automatisch einloggen ?
Was sind Sessions?STF-DIR hat geschrieben:Noch ne kleine Frage zu
$_SESSION['phpbb_login_user'] = $username;
Wenn ich das im Login Script des CMS mache und dann wird eine andere PHP Seite aufgerufen , vergisst dann nicht php die Session Variable ?
Wenn php die Variable "vergessen" täte, dann hätte es ja auch keinen Sinn, diese hier zu setzen

Re: Automatisch einloggen ?
@piero:
Wenn ich das Script so einbinde, dann zeigt er mir zwar an, dass ich eingeloggt bin bei "Wer ist online", aber einloggen tut es mich damit nicht. Was mach ich verkehrt?
Wenn ich das Script so einbinde, dann zeigt er mir zwar an, dass ich eingeloggt bin bei "Wer ist online", aber einloggen tut es mich damit nicht. Was mach ich verkehrt?
Re: Automatisch einloggen ?
Ich habe nun das probiert:
http://www.lpi-clan.de/viewtopic.php?f=26&t=3550
Das Login an sich funktioniert.
Wechsle ich dann ins Forum, dann bin ich nicht eingeloggt.
Jedoch werde ich bei "Wer ist online?" angezeigt.
Fehlt noch irgendwas?
http://www.lpi-clan.de/viewtopic.php?f=26&t=3550
Das Login an sich funktioniert.
Wechsle ich dann ins Forum, dann bin ich nicht eingeloggt.

Jedoch werde ich bei "Wer ist online?" angezeigt.
Fehlt noch irgendwas?