Session wird gelöscht?

  • Themenstarter Themenstarter Bernie33
  • Beginndatum Beginndatum
B

Bernie33

Hallo,

Ich habe folgendes Problem:
Ich habe eine Hompage mit mehreren Seiten, die SESSIONS verwenden.

Klappt auch alles super. Da gibt es nur ein Problem. Ich gebe den angemeldeten Username mit
PHP:
echo $_SESSION['Username'];
aus. Wenn ich nun auf eine bestimmte Seite gehe, dann wird der Benutzername nicht mehr ausgegeben, wenn ich wieder zur Startseite (die den Usernamen ausgibt) zurückkehre.

Ich kann mir nicht erklären, warum das so ist. Es wird nirgends die SESSION destroyed. Angemeldet ist der User dann schon noch, aber er wird nicht mehr erkannt.. keine Ahnung.

Bin eher Anfänger in Sachen php.

Hier der Quellcode der "bösen" Datei:
PHP:
<?php 

$Username = htmlspecialchars(mysql_real_escape_string($_POST["Username"]));


@session_start();
if(!isset($_SESSION['Username'])) 
{
	die('<h2>Fehler</h2><img src="http://www.tutorials.de/forum/images/stop.png" align="left">
<p>Um auf Ihr XXX-webseite-XXX-Coins Konto zugreifen zu k&ouml;nnen, mssen Sie eingeloggt sein. <br>Falls Sie noch nicht registriert sind, k&ouml;nnen Sie das <a href="registrieren.php">hier</a> tun.</p>');
}

$User = htmlspecialchars(mysql_real_escape_string($_SESSION['Username']));


//unwichtiger Code

?>

Hoffe ihr könnt mir helfen!

Gruß Bernie :)
 
Zuletzt bearbeitet von einem Moderator:
Setze session_start() mal direkt an den Anfang des Skriptes.

Du meinst ganz am Anfang? Vor den Abfragen? Das ist leider nicht Möglich. (Google mag keine Sessions und nimmt die Seiten nicht im index auf).

Bei den anderen Seiten funktionierts doch auch. Es muss eine andere Ursache sein.
 
Da haben wir schon die Problem verursacher!

<a href="member.php?section=news">News</a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="private.php">Private Nachrichten</a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="meinprofil.php">Profil</a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="upload.php">Upload</a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="tutorials.php">Tutorials</a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="beitrag.php">Problem berichten - Hilfe bekommen</a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="weiterempfehlen.php">Weiterempfehlen</a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="r4youkonto.php">R4you-Coins</a>

Das Problem ist das du die eigentliche Seite damit verläst und somit ist die Session id nicht mehr bekannt ist. Deswegen kanste dann auch nicht auf die Session zugreiffen.

Einfach Session name und Session id an den Link dran hängen dann sollte es funktionieren.

Mfg Splasch
 
Da haben wir schon die Problem verursacher!

<a href="member.php?section=news">News</a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="private.php">Private Nachrichten</a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="meinprofil.php">Profil</a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="upload.php">Upload</a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="tutorials.php">Tutorials</a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="beitrag.php">Problem berichten - Hilfe bekommen</a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="weiterempfehlen.php">Weiterempfehlen</a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="r4youkonto.php">R4you-Coins</a>

Das Problem ist das du die eigentliche Seite damit verläst und somit ist die Session id nicht mehr bekannt ist. Deswegen kanste dann auch nicht auf die Session zugreiffen.

Einfach Session name und Session id an den Link dran hängen dann sollte es funktionieren.

Mfg Splasch

Danke für deine Antwort. Aber es geht ja nur bei einer Seite nicht (dann würde es ja bei den anderen Links auch nicht funktionieren).
Außerdem wird automatisch die PHPSESSID angehängt.

Gruß Bernie :)

//edit: Natürlich werde ich es trotzdem mal versuchen und dann berichten, ob es funktionierte.
 
$Username = htmlspecialchars(mysql_real_escape_string($_POST["Username"]));

Ändere mal den Namen dieser Variable...ich nehme mal an, bei dir ist register_globals On, und da zu diesem Zeitpunkt die Session bereits gestartet ist(in Navigation_member.php), überschreibst du damit die gleichnamige Session-Variable.

Naja...könnte zumindest sein :-)

Falls es nicht daran liegt:
Ändert sich die in der URL angehängte Session-ID während der Sitzung irgendwann?

Weiterhin startest du die Session 2x....auch das könnte problematisch sein.
 
Zurück