|
 |
|
| Autor |
Nachricht |
Xanni Stammuser [User]


Anmeldung: 11.11.07 Beiträge: 29
|
Verfasst am: 24.04.2008, 15:33 Titel: SESSION Problem (?) in Forum |
|
|
Hallo miteinander,
ich bin gerade dabei, ein Forum zu programmieren. Funktioniert auch schon ganz nett bis auf die Tatsache, dass eingeloggte User nach ein paar Minuten einfach ausgeloggt werden, ohne auf den Logout-Button zu drücken. Das heißt, wenn ich mich hinsetze und 5 Minuten lang die Antwort auf einen Foren-Beitrag schreibe, werde ich einfach ausgeloggt und ich darf den Text noch mal schreiben.
Jetzt woran liegts.
Ich starte ganz am Anfang eine Session, bei der das Session Cookie eine halbe Stunde existieren soll, und zwar so:
| Code: | session_name("Login");
session_set_cookie_params(1800);
session_start();
$_SESSION["user"] == "in";
|
Danach wird die Foren-Datei includet. In dieser Datei hat man die Möglichkeit, zwischen den einzelnen Aktionen mit $_GET hin- und her zu springen, z.B.:
| Code: | if ($_GET['action'] == "show_board ) { zeigt foren-übersicht an }
oder
if ($_GET['action'] == "show_user) { zeigt user-profil an } |
ich vermute, dass ich bei diesem hin- und her springen die Session ID irgendwie mit übergeben muss. Andererseits ist sie ja immer noch als Cookie gespeichert. Muss dazu sagen, ich kenn mich mit Sessions noch fast gar nicht aus.
Das konkrete Problem ist auf jeden Fall, dass $_SESSION["user"] viel zu früh und einfach so auf "out" springt, und nicht auf "in" bleibt.
Vielleicht kann mir ja mal jemand einen schnellkurs geben oder einfach erklären was ich falsch mache. Und mich mal bissle zusammenscheißen für meine Fehler. _________________ Wake up, my friend... the Matrix has You.
|
|
| Nach oben |
|
 |
Xanni Stammuser [User]


Anmeldung: 11.11.07 Beiträge: 29
|
Verfasst am: 25.04.2008, 12:47 Titel: |
|
|
oh weh. weiß keiner weiter? _________________ Wake up, my friend... the Matrix has You.
|
|
| Nach oben |
|
 |
800XE Bekannter [Mod]


Anmeldung: 24.10.04 Beiträge: 1115 Wohnort: Speyer
|
Verfasst am: 25.04.2008, 15:05 Titel: Re: SESSION Problem (?) in Forum |
|
|
| Xanni hat folgendes geschrieben: | 5 Minuten lang die Antwort auf einen Foren-Beitrag schreibe, werde ich einfach ausgeloggt und ich darf den Text noch mal schreiben.
| Code: | session_name("Login");
session_set_cookie_params(1800);
session_start();
$_SESSION["user"] == "in";
|
|
Der Code ist von dir
das heist du weist was du geCodet hast
warum schaust du dann nicht ins Handbuch
http://de.php.net/session_set_cookie_params
http://de.php.net/manual/de/session.configuration.php#ini.session.cookie-lifetime
LifeTime bei Cookies ist in Sekunden, bzw der Timestampt bis wann er gültig ist
Bei den Ses ist es eine Zeit ab jetzt
1800 = in Sekunden etwa eine halbe STunde
würde mal sagen dein Browser oder dein Webserver, da geht die Uhr eine halbe STunde falsch _________________
Seien wir realistisch, versuchen wir das Unmögliche!
CMS800 :::::::::: Andy 800XE Zmuda :::::::::
|
|
| Nach oben |
|
 |
800XE Bekannter [Mod]


Anmeldung: 24.10.04 Beiträge: 1115 Wohnort: Speyer
|
Verfasst am: 25.04.2008, 15:09 Titel: Re: SESSION Problem (?) in Forum |
|
|
Teil 2
| Xanni hat folgendes geschrieben: |
| Code: |
$_SESSION["user"] == "in";
|
|
entweder
| Code: | | $_SESSION["user"] = "in"; |
oder
| Code: | | if ( $_SESSION["user"] == "in" ) |
nicht das "if" ist das oder _________________
Seien wir realistisch, versuchen wir das Unmögliche!
CMS800 :::::::::: Andy 800XE Zmuda :::::::::
|
|
| Nach oben |
|
 |
Xanni Stammuser [User]


Anmeldung: 11.11.07 Beiträge: 29
|
Verfasst am: 25.04.2008, 16:34 Titel: |
|
|
Das == ist bloß ein abschreibfehler, hab den Code nicht kopiert sondern das wichtige als Zusammenfassung gepostet.
ich weiß schon was ich gecodet hab. Leider funktioniert es trotzdem nicht, und im Handbuch hab ich bereits weiß Gott wie oft nachgesehen.
ok, andere Frage zu Verwendung von session_start() :
genügt es, session_start(); nur ein einziges Mal zu verwenden (eben am Anfang der Session), oder brauche ich das später wieder, um die Session "aufzugreifen"? Möglicherweise, nachdem ich innerhalb meines Codes mit GET = "show_blabla" hin- und hergewandert bin? Dazu stand jedenfalls was im Handbuch.
Wenn das so wäre, würd es vielleicht erklären warum die Session nach ein paar Minuten nicht mehr greift. Du kannst es dir aber auch selbst angucken, das Forum ist hier:
www.Lightwish.de
Du musst dich nur kurz anmelden (ist noch ohne Email-Check, also schnell geschehen). Dann probier mal ein paar Minuten lang drin zu bleiben und was zu texten, du wirst dann nach kurzer Zeit einfach ausgeloggt. _________________ Wake up, my friend... the Matrix has You.
|
|
| Nach oben |
|
 |
800XE Bekannter [Mod]


Anmeldung: 24.10.04 Beiträge: 1115 Wohnort: Speyer
|
Verfasst am: 25.04.2008, 17:01 Titel: |
|
|
| Xanni hat folgendes geschrieben: | | nachdem ich innerhalb meines Codes mit GET = "show_blabla" hin- und hergewandert bin? Dazu stand jedenfalls was im Handbuch. |
wie "gewandert" über einen Link .... einen Klick
Klick = neuer Request = SesonDings muß neu gestartet werden
ganz logisch ....
.... aber wissen tu ichs nicht .... bin Krümelmonster, steh auf Kekse .... die sind einfach da, braucht man nicht starten (setzen ja, aber nicht starten) _________________
Seien wir realistisch, versuchen wir das Unmögliche!
CMS800 :::::::::: Andy 800XE Zmuda :::::::::
|
|
| Nach oben |
|
 |
800XE Bekannter [Mod]


Anmeldung: 24.10.04 Beiträge: 1115 Wohnort: Speyer
|
Verfasst am: 25.04.2008, 17:02 Titel: |
|
|
| Xanni hat folgendes geschrieben: | www.Lightwish.de
Du musst dich nur kurz anmelden
(ist noch ohne Email-Check, also schnell geschehen). |
jo, da kam von links ein Fenster geflogen ........ [x] _________________
Seien wir realistisch, versuchen wir das Unmögliche!
CMS800 :::::::::: Andy 800XE Zmuda :::::::::
|
|
| Nach oben |
|
 |
Xanni Stammuser [User]


Anmeldung: 11.11.07 Beiträge: 29
|
Verfasst am: 25.04.2008, 17:22 Titel: |
|
|
Die Session setzt automatisch einen Cookie mit der Session ID. Ist das dann so ein klassischer Keks oder doch was anderes?
Meine Links, mit denen ich innerhalb der Seite hin und her springe, sehen so aus:
| Code: | | <a href="index.php?action=show_threads"> |
Das heißt, er kommt ja bei dem Link auf die Seite (index.php), auf der er bereits ist, nur mit anderem Attribut der Variable "action". Und ganz am Anfang der index.php steht nichts anderes als session_start();. das heißt, die session wird ja bereits jedes mal neu aufgegriffen. Oder geht das nicht so wie ich denke?
...hat das Werbe-Fenster etwas mit meiner Session zu tun? _________________ Wake up, my friend... the Matrix has You.
|
|
| Nach oben |
|
 |
800XE Bekannter [Mod]


Anmeldung: 24.10.04 Beiträge: 1115 Wohnort: Speyer
|
Verfasst am: 25.04.2008, 17:33 Titel: |
|
|
Hast du die Handbuchlink verfolgt?
Filetime=0
= gilt bis der Browser geschlosen wird, probiers aus
ob SES-Kekse wie Keks-Kekse sind
weiss ich nicht
SES läuft doch immer maximal bis der Browser geschlosen wird?
meine Kekse sind auch Morgen noch da
| Xanni hat folgendes geschrieben: | | ...hat das Werbe-Fenster etwas mit meiner Session zu tun? |
Ich wollte nur mal die SIte anschauen ..... doch dann hinderte man mich am schauen
nach der SES schauen wollte ich nicht ....
... was hab ich dafon, meld mich an, log mich ein, drehDäumschen, seh das ich ausgelogt bin ..... _________________
Seien wir realistisch, versuchen wir das Unmögliche!
CMS800 :::::::::: Andy 800XE Zmuda :::::::::
|
|
| Nach oben |
|
 |
Xanni Stammuser [User]


Anmeldung: 11.11.07 Beiträge: 29
|
Verfasst am: 25.04.2008, 18:04 Titel: |
|
|
| Zitat: | | ... was hab ich dafon, meld mich an, log mich ein, drehDäumschen, seh das ich ausgelogt bin ..... |
...genau^^
das Problem ist aber nicht direkt, dass mein Session Cookie niht mehr da wäre. Wenn ich den Cookie im Browsr angucke, steht da sogar, dass der Session Cookie noch z.B. eine halbe Stunde gültig ist. Aber ich werde schon viel früher ausgeloggt, obwohl der Cookie noch da ist.
Filetime = 0 ... ist das ein php-befehl?? _________________ Wake up, my friend... the Matrix has You.
|
|
| Nach oben |
|
 |
800XE Bekannter [Mod]


Anmeldung: 24.10.04 Beiträge: 1115 Wohnort: Speyer
|
Verfasst am: 25.04.2008, 18:11 Titel: |
|
|
| Xanni hat folgendes geschrieben: | | Filetime = 0 ... ist das ein php-befehl?? |
_________________
Seien wir realistisch, versuchen wir das Unmögliche!
CMS800 :::::::::: Andy 800XE Zmuda :::::::::
|
|
| Nach oben |
|
 |
Xanni Stammuser [User]


Anmeldung: 11.11.07 Beiträge: 29
|
Verfasst am: 25.04.2008, 18:24 Titel: |
|
|
jo, set_cookie_params benutze ich ja schon.
Wie gesagt, das PRoblem ist nicht, dass das Cookie weg wäre oder nicht mehr gültig. Sondern dass die User trotz Cookie ausgeloggt werden. _________________ Wake up, my friend... the Matrix has You.
|
|
| Nach oben |
|
 |
800XE Bekannter [Mod]


Anmeldung: 24.10.04 Beiträge: 1115 Wohnort: Speyer
|
Verfasst am: 26.04.2008, 03:17 Titel: |
|
|
| Xanni hat folgendes geschrieben: | | jo, set_cookie_params benutze ich ja schon. |
so wie schon immer oder so wie ich sagte
| Xanni hat folgendes geschrieben: | | Wie gesagt, das PRoblem ist nicht, dass das Cookie weg wäre oder nicht mehr gültig. Sondern dass die User trotz Cookie ausgeloggt werden. |
was sagst du mir hiermit?
[B] habe ihn auf "bis Browser schließen" gesetzt aber stirbt trotzdem nach 5 Minuten
[A] wenn er bei 1800 nicht für 30 Miuten gilt, wird er bei 0 auch nicht bis Close gelten
// EDIT
hau ECHOs in dein PHP
überall wo etwas verändert wird
überall wo etwas abgefragt wird
ECHOs rein
sehe was dein Script sieht
und vergleiche es mit dem Was es sehen sollte
findest du eine Stelle wo das sichtbare Anders ist als das was der Programmierer dort als Sichtbares sehen will ...... hast du die FehlerStelle gefunden
// EDIT 2
dazu zählt die Uhrzeit
wieviel Uhr ist auf deinem Rechner
wieviel Uhr ist auf dem Rechner
Stimmem die Überein? _________________
Seien wir realistisch, versuchen wir das Unmögliche!
CMS800 :::::::::: Andy 800XE Zmuda :::::::::
|
|
| Nach oben |
|
 |
800XE Bekannter [Mod]


Anmeldung: 24.10.04 Beiträge: 1115 Wohnort: Speyer
|
Verfasst am: 26.04.2008, 03:27 Titel: |
|
|
| 800XE hat folgendes geschrieben: | // EDIT 2
dazu zählt die Uhrzeit
wieviel Uhr ist auf deinem Rechner
wieviel Uhr ist auf dem Rechner
Stimmem die Überein? |
mein Rechner in Hamburg bei Artfiles www.800XE.de
irgendein Anderer Hoster www.800XE.info
kukst du rechts oben
ich habe jetzt
3:29
3:26 @.de
3:04 @.info
und nun lese nochmal das Handbuch _________________
Seien wir realistisch, versuchen wir das Unmögliche!
CMS800 :::::::::: Andy 800XE Zmuda :::::::::
|
|
| Nach oben |
|
 |
Xanni Stammuser [User]


Anmeldung: 11.11.07 Beiträge: 29
|
Verfasst am: 05.06.2008, 18:18 Titel: Immer wieder ausgeloggt... |
|
|
Hallo. Ich hab immer noch das selbe Problem wie bisher. An allem bisher genannten lag es nicht. Noch mal das problem:
Wenn man eingeloggt ist und ein paar Minuten wartet, ist man automatisch wieder ausgeloggt, obwohl das Session Cookie noch vorhanden und gültig ist.
Ich hab jetzt noch mal einen Mini-Login-Bereich gemacht, und siehe da: ich hab genau das selbe Problem. Vielleicht kann mir jetzt jemand, da ich den ganzen Code hier reinstelle, helfen?!
Die index.php:
| Code: |
<?php
require('db_connect.php');
?>
<html>
<head>
<title>Xanni // Testpage</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="design.css">
</head>
<body>
<?php
echo'
<div style=" position:absolute;
text-align:left;
left:10px;
top:10px;
width:300px;
height:200px;
border:1px solid #fff;">
<div style=" margin:5px;">';
include(admin.php);
echo'
</div>
</div>';
if ((isset($_SESSION['logged']))
AND ($_SESSION['logged'] == "1")) {
echo'
<div style=" position:absolute;
text-align:left;
left:330px;
top:10px;
width:300px;
height:200px;
border:1px solid #fff;">
<div style=" margin:5px;">';
echo 'Das hier ist eine Insider-Information!<br><br>';
echo '<a href="index.php?section=admin&action=alpha" class="white">Alpha</a><br>';
echo '<a href="index.php?section=admin&action=beta" class="white">Beta</a><br><br>';
if ($_GET['action'] == "alpha") {
echo 'Das hier ist Bereich Alpha.';
} elseif
($_GET['action'] == "beta") {
echo 'Das hier ist Bereich Beta.';
} else {
echo '';
}
echo '
</div>
</div>';
}
?>
</body>
</html> |
die Admin.php:
| Code: |
<?php
// SESSION STARTEN
session_start();
if (empty($_SESSION['logged'])) {
$_SESSION['logged'] == "-1";
}
// LOGIN-FORMULAR
if (($_POST["login_name"] == "Admin")
AND ($_POST["login_passwort"] == "test")
AND ($_POST["send"] == "1")) {
$_SESSION['logged'] = "1";
}
// ADMINBEREICH
if ($_SESSION['logged'] == "1") {
echo 'Du bist im Adminbereich.';
echo '<br><a href="index.php?section=admin&action=logout" class="white">Ausloggen</a>';
} else {
echo ' <form action="index.php?section=admin" method="POST">
<input type="hidden" name="send" value="1">
Name: <input type="text" name="login_name" value="'.$_POST["login_name"].'" class="Eingabefeld">
Passwort: <input type="password" name="login_passwort" value="'.$_POST["login_passwort"].'" class="Eingabefeld">
<br><br>
<input type="submit" value="Login" class="Submit">
</form>';
}
// LOGOUT-LINK
if ($_GET['action'] == "logout") {
$_SESSION['logged'] = "-1";
session_destroy();
header("location:index.php");
}
?>
|
Die Seite an sich ist hier, PW geht aus dem Code hervor:
http://lightwish.li.funpic.de/Tests _________________ Wake up, my friend... the Matrix has You.
|
|
| Nach oben |
|
 |
|
|
 |
|
Alle Zeiten sind GMT + 1 Stunde Gehe zu Seite 1, 2, 3 Weiter
|
| Seite 1 von 3 |
|  |