• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Sessions

Status
Für weitere Antworten geschlossen.

Hanashi

Neues Mitglied
Hallo Leute,
ihr kennt sicherlich alle MyBB! Also, wenn man der Datenbank von MyBB guckt sieht man ja die Datenbanktabelle Sessions. Meine Frage ist wie kann ich es machen das sich meine Sessions in meine eigene Datenbanktabelle speichert und sich dann auch wieder löscht wenn die Session abgelaufen ist.
Mit freundlichen Grüßen Peter Lohse
edit: ich hab zwar das hier gefunden, aber bringt mich nicht wirklich weiter, da sich meine User einloggen und dann die Datenbankzelle eigefügt wird!
 
Zuletzt bearbeitet:
also wies beim login eingefügt wird, weisst du jetzt ja, oder ?

du speicherst bei jedem aufruf einer Seite - mit der Session - die Zeit, also dann hast du die letzte Zeit wann die Session auf die Seite zugegriffen hat und dann machst du halt so eine allgemeine Abfrage, die bei jedem Seiten aufruf aufgerufen wird und schaust halt in der DB wo die Zeit z.b. älter als 30 min oder 1h oder wie auch immer ist und löscht halt diese einträge.

mfg
 
Habe auch ein Problem mit einer Session:
Habe ein Login gemacht wo eine session gestartet wird.
PHP:
if ($user === $username && $passwort === $pass) {
    session_start();
    $_SESSION['intern'] = $zugang;
    echo'Sie sind erfolgreich eingeloggt!'; // Und hier wird ein text kurz erscheinen. Dann wird man weitergeleitet.
    echo'Sie werden zur Administration weitergeleitet.<script>top.location.href=\'intern/intern.php\'</script>';
    // Imfalle, dass der Besucher JavaScript deaktiviert hat, wird noch ein Link zum Login angeboten
    echo'Falls Sie nicht weitergeleitet werden, klicken Sie <a href="intern/intern.php">hier</a>';
    } else {
    echo'Es ist ein Fehler aufgetreten:';
    echo "<ul>";
    echo "$fehler";
    echo "</ul>";
    echo'Bitte gehen Sie <a href="index.html">zurück</a> und versuchen Sie es erneut';
    // Hier, wenn das Passwort falsch ist, soll ein Zurücklink erscheinen
}
?>
So wie man sieht, wird man weitergeleitet:
Wie kann ich das machen, das wenn ich auch die seite (url) in den brwoser gebe, das man dort nicht hineinkommt, bevor man sich angemeldet hat?
Habe es so, aber geht nicht ganz!
PHP:
<?php
session_start();
?>
<html>
<head>
<title> </title>
<meta name="author" content=".*.">
<meta name="editor" content="html-editor phase 5">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#000000" alink="#000000" vlink="#000000">
<?php
include '../config.php';
$zugang = $passwort;

if ($_SESSION['intern'] == $zugang) {
        include 'index.php';
}    else {
        echo 'Sie sind nicht eingeloogt.';
}
?>
</body>
</html>

EDIT: hat sich erledigt:

Trotzdem noch eine Frage, wenn ich eine Datei include, wie in das letzt Script oben, kann ich darauf trotzdem einfach so zugreifen (URL im brwoser eingeben)?

MfG Marcel
 
Zuletzt bearbeitet:
definier doch nach dem session_start eine variable $_SESSION['index']="aufgerufen"; die du auf der zweiten seite kontrollierst
HTML:
if(isset($_SESSION['index'])){
include oder code ausführen
}else{
redirect zur index
}
edit: mach ganz am schluss ein unset(var);

nochmals edit: sorry erst jetzt gesehen
wenn du der adresse zb. ?getvar=1 anhängst, kannst du in die abfrage ein or isset($_GET['getvar']) einbauen
 
nun wird der if bereich nur ausgeführt, wenn die variable vorhanden ist.
wenn du nun im browser ...../x.php eingibst wird der else bereich ausgeführt.
möchtest du nun, dass leute die seite direkt aufrufen können, kannst du deine if erweitern mit
HTML:
if(isset(var von index) OR isset($_GET['getvariable'])){

}else{

}
HTML:
x.php?getvariable=1
wenn du dies eingibst, übergibst du php die variable $_GET['getvariable'] und der ifbereich wird auch ausgeführt
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben