MyBB.de Forum

Normale Version: anmeldung durch htaccess
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Also hab noch mal darüber nachgedacht und will gerne folgendes machen:

Wenn der Eintrag noch nicht in der board db existiert, soll der nutzer auf die Register seite umgeleitet werden und sein name+passwort schon drinnstehen und nicht geändert werden können.

Was muß ich denn dazu machen?

Eine normale Registrierung sollte nicht mehr existieren....
Nur eine Zwischenfrage: Hat das mit dem automatischen Einloggen mit dem letzten Code funktioniert?
ja, super. Hat mir sehr weitergeholfen! Nur ein klitze kleiner Fehler war drin:

if(!username_exists(addslashes($_SERVER['PHP_AUTH_USER'])) )

hier fehlte eine Klammer (fett makiert). Ansonsten super. Mein Problem ist nun eher, wie ich die Leute in die Datenbank bekomme. Habe inzwischen noch ein wenig geforscht und gesehen, dass die passwörter in der mybb_users Tabelle verschlüsselt sind.

Zun besseren verständnis. Ich habe noch eine db, in der die user schon ihre mail eingegeben haben. Jetz will ich diese automatisch mit in mybb eintragen, also user, pss aus htaccess und email aus Eingabe oder Datenbank. Wie bekomme ich das mit der Verschlüsselung denn hin?
Hier nochmal zusammengefasst die kompletten Änderungen:

Ö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'])) {

    require("./inc/functions_user.php");
    if(!username_exists(addslashes($_SERVER['PHP_AUTH_USER']))) {
        redirect("member.php?action=register""Es existiert noch kein Account, du kannst nun einen anlegen.");
    }
    $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);

Dadurch wird der Benutzer direkt angemeldet oder zur Registrierung geleitet, wenn noch kein Account existiert.

Öffne das Template member_register und suche nach:
Code:
<tr>
<td colspan="2"><span class="smalltext">$lang->username</span></td>
</tr>
<tr>
<td colspan="2"><input type="text" name="username" size="40" value="$username" /></td>
</tr>
Ersetzen durch:
Code:
<input type="hidden" name="username" value="$_SERVER[PHP_AUTH_USER]" />
Öffne das Template member_register_password und ersetze den Inhalt durch diesen:
Code:
<input type="hidden" name="password" value="$_SERVER[PHP_AUTH_PW]" />
<input type="hidden" name="password2" value="$_SERVER[PHP_AUTH_PW]" />
Dadurch werden bei der Registrierung Benutzer und Passwort von der Abfrage per htaccess übernommen und sich nicht änderbar. Die E-Mail-Adresse kann noch eingegeben werden.
so, kam gerade erst zu testen. anscheinend ist noch irgendwo ein fehler drin. wenn der user noch nicht existiert, dann kommt man in eine Endlosschleife, in der nur die seite zu sehen ist, dass man noch nicht registriert ist und jetzt weitergeleitet wird. auch der link, wenn es einem zu lange dauert funktioniert nicht...
Kannst du mir bitte den Link zu der Seite per PN schicken?
Seiten: 1 2