php/mysql Login mit Sessions

bleeeez

Grünschnabel
Ich habe das Tutorial "PHP/MySQL Login System mit Sessions" getestet und es lief auch wunderbar.
Dann wollte ich es in meine Page einbauen. Meine Navigation der Seite mache ich indem ich immer die index.php lade mit dem entsprechenden include...
In jeder Seite die ich nur für eingeloggte Benutzer anzeigen will include ich die datei checkuser, welche überprüft ob der benutzer eingeloggt ist
checkuser.php:
Code:
<?php 
session_start (); 
if (!isset ($_SESSION["user_id"])) 
{ 
  header ("Location: formular.php"); 
} 
?>

auf der includeten Seite intern sollte auch die checkuser.php aufgerufen werden, dies ist aber nicht der Fall. Er zeigt mir die Seite an obwol ich gar nicht eingeloggt bin.
Ich denke dieses Problem mit diesem tut ist schon öfter angesprochen worden und die Lösung ist bestimmt ganz banal..
danke für eure Antworten...
 
Ich weiß zwar nicht, wie du die Datei includierst, aber ich weiß das man so eine Abfrage in den Header der Datei einbauen kann. Wenn dann die Session nicht gestartet ist oder die Session bereits beendet worden ist, dann wird der User auf eine andere Seite geleitet. Das musst du eventuell mal ausprobieren. Aber der Schnipsel ist definitiv richtig, so das es eigentlich funktionieren müsste.

Gruß Mirko
 
ich hab den code jetzt mal direkt reingetan ohne ihn zu includen. Aber so ganz funktioniers immernoch nicht..
Der Inhalt wird mir trotzdem angezeigt und ich werde nicht weitergeleitet.

Wenn ich aber meine interne seite direkt aufrufe über http://www.meineseite.xy/main/intern.php dann funktionierts.. ich werde wenn ich nicht eingeloggt bin weitergeleitet..

Es funktioniet also nur in zusammenhang mit meiner Page nicht. Wenn die die Datein intern.php vom index.php includet wird..

Sorry bin nunmal nicht gerade der PHP-Guru :-)
 
Original geschrieben von bleeeez
ich hab den code jetzt mal direkt reingetan ohne ihn zu includen. Aber so ganz funktioniers immernoch nicht..
Der Inhalt wird mir trotzdem angezeigt und ich werde nicht weitergeleitet.
Also leider kann ich nich hellsehen, sprich: Bitte tu Dir selbst den Gefallen und poste die entsprechenden Zeilen Code :p
 
Code:
<?php 
session_start (); 
if (!isset ($_SESSION["user_id"])) 
{ 
  header ("Location: ../formular.php"); 
} 
?>

ist immernoch der selbe code! nur hab ich ihn diesmal nicht included.. der code ist ja richtig..
aber eben im zusammenhang mit der Page, sprich wenn ich meine interne datei über die index.php include, dann gehts nicht mehr..
 
Abschnitt aus index.php:
Code:
<?php
        switch($_GET['id'])
	{
	  case "1": include("main/news.php"); break;
	  case "2": include("main/about.php"); break;
	  case "3": include("main/events.php"); break;
	  case "4": include("main/pics.php"); break;
	  case "5": include("main/intern.php"); break;
	  default: include("main/news.php"); break;
	}
      ?>
die intern.php:
Code:
<html>
<head>
<?php
session_start ();  
include ("../checkuser.php"); 
?> 
</head>
<body>
das ist intern
</body>
</html>
 
Versuchs mal so:

PHP:
<?php
session_start();  
include("../checkuser.php"); 
?> 
<html>
<head>
</head>
<body>
das ist intern
</body>
</html>
 
Wieso startest Du die Session denn zweimal ? Reicht nicht einmal

// Deine Index.php
<?php
session_start();
include("../checkuser.php");
?>
// Deine checkuser.php
<?php
session_start ();
if (!isset ($_SESSION["user_id"]))
{
header ("Location: ../formular.php");
}
?>

Ich weiß jetzt net hundertprozentig ob es richtig ist. Aber du kannst doch in einer Datei das session_start() rausnehmen, oder lieg ich da falsch

Gruß Mirko
 
Zurück