Zur Navigation

User von HTACCESS übernehmen

1 Andi

Hallo Jörg,

Ich möchte den kompletten Registrierungsprozess im Menü ausblenden und die Variable des aktiven Users sowie sein Passwort von einem vor dem Forum liegenden HTACCESS_Schutz übernehmen.

Ich übergebe an dein Forum-Script zwei Variablen:

$user= $_SERVER['PHP_AUTH_USER'];
$pass= $_SERVER['PHP_AUTH_PW'];

Ist es ein großer Akt in der "Ist Besucher eingeloggt"-Abfrage eben immer diese o.g. Variablen abzufragen?

Gruß,
Andreas

12.03.2010 13:48

2 Jörg

Wo sind denn Username und Passwort zum Abgleich gespeichert? sollen diese identisch sein mit denen der Forendatenbank?

Das Forum identifiziert einen User anhand der Session, die im Cookie übertragen wird. Die Session wird auch benötigt, weil dort einige benötigte Daten abgelegt sind. Der Passwortabgleich wird nur beim Login vorgenommen.

12.03.2010 17:33

3 Andi

Hallo Jörg,

die Login-Daten sind in einer .htpasswd gespeichert. Da ich den htaccess-Schutz per Script anlege wäre es für mich kein Problem paralell in der Forendatenbank den User anzulegen.

Allerdings fehlt mir dann noch, dass das Forum die Logindaten aus den Variablen $_SERVER['PHP_AUTH_USER'] und $pass= $_SERVER['PHP_AUTH_PW'] bekommt und nciht aus dem Loginformular (diesen Menüpunkt würde ich dann sowieso ausblenden).

15.03.2010 10:13

4 Jörg

Man könnte einen automatischen Login in die index.php includen. Sobald ich dazu komme, schau ich mal, wie man so etwas umsetzen kann.

15.03.2010 20:24

5 Andi

Alles klar, vielen Dank.

16.03.2010 10:00

6 Jörg

So sollte es in der Forenversion 1.2 funktionieren:

im Verzeichnis includes speicherst du die Datei autologin.php mit folgendem Inhalt ab:

<?php

$user = 'NameDesUsers';
$password = 'PasswortDesUsers';
$suid = 1; // ID des Users im Forum

if (! isset($_COOKIE[$lcookie], $_COOKIE[$scookie]) && $_SERVER['PHP_AUTH_USER'] == $user && $_SERVER['PHP_AUTH_PW'] == $password) {
    $sid = md5(microtime());
    mysql_query('UPDATE ' . $utable . " SET sid = '" . $sid . "' WHERE id = " . $suid);
    session_name($scookie);
    session_id($sid);
    session_start();
    $expire = I_NOW + (30 * I_DAY);
    setcookie($lcookie, $suid, $expire, '/');
    setcookie($scookie, $sid, $expire, '/');
    header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
    exit();
}

?>

$user, $password und $suid müssen noch entsprechend gesetzt werden; letztere ist ersichtlich an der URL des Profils, z.B. hast du die hier im Forum die ID 117 (/andi-u-117-1.html)

Die Datei wird in der index.php in folgendem Abschnitt includet:

        if ($b_modified) {
            include (INCPATH . '/main/functions.php');
            include (INCPATH . '/main/config/get.php');
            if (isset($_SERVER['PHP_AUTH_USER'])) {
                include ('includes/autologin.php');
            }
            if (isset($_COOKIE[$lcookie]) || isset($_COOKIE[$cookie])) {
                include (INCPATH . '/main/session/get.php');
            }
            $q_fallowed = $ftable . '.frstatus <= ' . $sustatus;
        }

20.03.2010 22:54

7 Andi

Hallo Jörg,
klappt soweit alles super. Vielen Dank.

Was mir jetzt noch fehlt ist Folgendes:

Damit der AutoLogin klappt muss der User natürlich schon eingetragen sein. Um meine vorhandenen Kunden in die jkf_user Tabelle eintragen zu können fehlen mir noch Infos bzgl. der SQL-Felder. Bei folgenden Felder ist die Frage ob ich sie leer lassen oder mit einem Standardwert belegen kann.

e_newreg,e_pub,styleurl,pzahl,zeitg,zeit2,zeit2b,flgnzahl,sid,ugid,ackprivacy,b_messages,b_onlinelist,b_allthreads,pwdversion

ustatus = welche Zahl haben normale User?

Gruß,
Andreas

07.04.2010 14:19

8 Jörg

Die genannten Felder können mit den Default-Werten der Tabelle belegt werden, d.h. ugid sollte den Wert 1 haben, pwdversion (in Forenversion 1.2) den Wert 2; alle anderen können leer bleiben bzw. den Standardwert 0 beibehalten. Wenn man nichts in die genannten Felder einfügt, sollten die Werte aber schon von alleine stimmen.

Nach einer erfolgreichen Registrierung hat ustatus den Wert 2.

08.04.2010 18:02

Nur Mitglieder können in diesem Forum Antworten schreiben.

Login | Registrieren