Hallo,
gibt es eine möglichkeit, die User, die sich schon per htaccess angemeldet haben direkt mit ihrem Usernamen in das Board zu integrieren?
danke für eure Hilfe...
Hallo und willkommen,
so wie ich das verstanden habe, hast du das Forum per .htaccess mit Benutzernamen und Passwort geschützt, damit das Forum von Gästen nicht gesehen werden kann. Das ist nicht nötig, du kannst die Berechtigungen so setzen, dass nicht angemeldete Benutzer nur eine Login-Maske zu sehen bekommen.
Gehe dazu ins Admin-CP -> Benutzer und Gruppen -> Gruppen verwalten -> Gäste -> Bearbeiten und setze alle Berechtigungen auf "Neín".
Du hast deine Seite zusätzlich .htaccess geschützt und möchtest diese Anmeldung direkt aufs Forum übertragen? Also ich weiß, dass das geht, aber leider nicht wie. Aber ich habe dich richtig verstanden?
erst mal danke für die schnellen Antworten
@mak
genau das meine ich. Die Leute sollen sich nur einmal anmelden müssen..
Wenn du nicht auf den Schutz durch htaccess verzichten kannst/willst, versuche es so: Öffne die Datei global.php und suche nach:
PHP-Code:
// Load Main Templates and Cached Templates
Darüber einfügen:
PHP-Code:
if($mybb->user['uid'] == "0" && isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
if(!username_exists(addslashes($_SERVER['PHP_AUTH_USER'])) {
error($lang->error_invalidusername);
}
$user = validate_password_from_username(addslashes($_SERVER['PHP_AUTH_USER']), addslashes($_SERVER['PHP_AUTH_PW']));
if(!$user['uid']) {
error($lang->error_invalidpassword);
}
$db->query("DELETE FROM ".TABLE_PREFIX."sessions WHERE ip='".$session->ipaddress."' AND sid<>'".$session->sid."'");
$newsession = array(
"uid" => $user['uid'],
);
$db->update_query(TABLE_PREFIX."sessions", $newsession, "sid='".$session->sid."'");
mysetcookie("mybbuser", $user['uid']."_".$user['loginkey']);
mysetcookie("sid", $session->sid, -1);
if(function_exists("loggedIn")) {
loggedIn($user['uid']);
}
redirect("index.php", $lang->redirect_loggedin);
}
klingt erst mal gut, danke, allerdings bekomme ich eine Fehlermeldung:
Fatal error: Call to undefined function: username_exists() in /mounted-storage/home18a/sub003/sc15475-FNXV/www/wyp/_forum/global.php on line 165
Versuche es bitte mit diesem Code:
PHP-Code:
if($mybb->user['uid'] == "0" && isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
require("./inc/functions_user.php");
if(!username_exists(addslashes($_SERVER['PHP_AUTH_USER'])) {
error($lang->error_invalidusername);
}
$user = validate_password_from_username(addslashes($_SERVER['PHP_AUTH_USER']), addslashes($_SERVER['PHP_AUTH_PW']));
if(!$user['uid']) {
error($lang->error_invalidpassword);
}
$db->query("DELETE FROM ".TABLE_PREFIX."sessions WHERE ip='".$session->ipaddress."' AND sid<>'".$session->sid."'");
$newsession = array(
"uid" => $user['uid'],
);
$db->update_query(TABLE_PREFIX."sessions", $newsession, "sid='".$session->sid."'");
mysetcookie("mybbuser", $user['uid']."_".$user['loginkey']);
mysetcookie("sid", $session->sid, -1);
if(function_exists("loggedIn")) {
loggedIn($user['uid']);
}
redirect("index.php", $lang->redirect_loggedin);
}
funzt leider noch nicht. Jetzt kommt zwar keine Fehlermeldung mehr, dafür aber :
Das eingegebene Passwort ist nicht korrekt. Sollten Sie Ihr Passwort vergessen haben, klicken Sie bitte hier. Andernfalls gehen Sie zurück und probieren Sie es noch einmal.
obwohl ich mich schon per htaccess angemeldet habe....
kann es sein, dass ich den User noch in der db von mybb anlegen muß? bisher ist die userliste dort leer. wenn ja, kann man das automatisieren?
Ja, der Benutzer muss einmal bei der Abfrage per htaccess und in der Datenbank des MyBB existieren. Das Automatisieren der Anmeldung wäre möglich, aber nicht sinnvoll, da das MyBB zumindest auch die E-Mail-Adresse des Benutzers benötigt.
ok, da ist was dran. vielleicht könnte man dann nach der mailadresse fragen und dann den eintrag erzeugen. oder nach dem automatischen erzeugen des Eintrags auf die profil seite weiterleiten... währe eine der beiden ideen sinnvoll?