Bescheidene Frage zu Session und Sessioncookie

Also die Loginroutine:

PHP:
<?

session_set_cookie_params('1800'); //Lebensdauer in Sec., der Rest wird aus der PHP-INI entnommen falls nicht halt anpassen...

session_start();

require_once("./config.php");
$loginname = $_POST["loginname"];
$passwort = $_POST["passwort"];
$md5pass = md5($passwort);

$db = mysql_connect($dbhost, $dbuser, $dbpass) or die("Verbindungsfehler");
$sql_befehl = "SELECT * FROM grusbox_user WHERE user = '".mysql_escape_string($loginname)."'";
$result = mysql_db_query($dbname, $sql_befehl);
mysql_close($db);

while($row = mysql_fetch_object($result))
{
    $dbname = $row->user;
    $dbpass = $row->pass;
    $dbrechte = $row->rechte;
}

if ($loginname == $dbname)
{
    if ($md5pass != $dbpass)
    {
        echo '<center><font size="26px" weight="bold">Zugriff verweigert!<p><font size="16px">Grund: Eingegebenes Passwort ist falsch.</font></center>';
        echo '<meta http-equiv="refresh" content="3; URL=index.html">';
    }
    else
    {
        if ($dbrechte == "0")
        {
            $_SESSION["admin"] = "1";
            echo '<center><b>Login erfolgreich, Weiterleitung erfolgt...';
            echo '<meta http-equiv="refresh" content="3; URL=admin.php?seite=start">';
        }
        if ($dbrechte == "2")
        {
            $_SESSION["mod"] = "1";
            echo "<center><b>Login erfolgreich, Weiterleitung erfolgt...</b>";
            echo '<meta http-equiv="refresh" content="3; URL=mod.php?seite=start&onairname='. $dbname .'">';
        }
    }
}
else
{
    echo '<center><font size="26px" weight="bold">Zugriff verweigert!<p><font size="16px">Grund: Eingegebener Benutzername ist falsch.</font></center>';
    echo '<meta http-equiv="refresh" content="5; URL=index.html">';
}
?>

Aus allen anderen Dateien kannst du die start_session(); entfernen, könnte eventuell die Fehlerquelle sein... kann ich aber nicht mit Sicherheit sagen.
 
Mal zu meinem Verständnis:

Als ich angefangen hab, mich in Sessions einzulesen, habe ich gelesen, dass wenn man Variablen in Sessions registriert und diese auch auf Unterseiten verarbeiten oder überprüfen möchte, muss man jede Seite, wo man die registrierten Variablen wieder auslesen will, mit session_start() beginnen.

Nach Deinem Tipp freakcx ist das wohl nicht der Fall. Hab ich das richtig verstanden?


Ok, mal grad ein Edit:

Ich habe eben festgestellt, dass das Hauptproblem, dass die User immer ausgeloggt werden, immer dann auftritt, wenn der User die Hauptseite des Radios, für die die Grussbox ist, entweder aktualisiert oder etwas anklickt bzw. die Seite verlässt.

Die Hauptseite ist PHPKIT. Kann es möglich sein, dass sich die Session der Hauptseite mit der Session der Grussbox beissen?
Würde sich das Problem vielleicht beheben lassen, wenn ich den Cookiepfad per ini_set() bei der Grussbox ändere?
 
Zuletzt bearbeitet:
Ich möchte dich bitten bevor du postest was Funktionen anbelangt und deren Funktionsweise direkt bei php.NET nachzulesen. Oder :google:

http://de.php.net/session

Eine Session legt beim Start eine so genannte Session-ID auf dem Server an mit welcher der Client identifiziert wird. Diese wird entweder per URL von Seite zu Seite gereicht oder per Cookie clientseitig gespeichert. PHPKIT nutzt wenn ich mich richtig erinnere auch Sessions -> Cookies wenn du nun mehrere Sessions startest kann es sein das dein Cookie überschrieben wird. Vermutung, guck dir einfach mal an wie sich der Cookie verhält (Firefox::> Extras/Einstellungen/Datenschutz/Cookies anzeigen)

oder ->
PHP:
var_dump($_COOKIE);
(edit: sry es muss natürlich COOKIE heißen)

Achso und um deine Frage zu beantworten: nein eine Session wird einmal gestartet, die SID (Session ID) ist für die Wiedererkennung zuständig.
 
Zuletzt bearbeitet:
Zurück