Permanent eingeloggt bleiben.

Needa

Mitglied
Hallo,
habe eine Seite geschrieben, die auf drei Spalten basiert, eine zur Navigation, eine für den Inhalt (per switch-case) und eine für den User, in der er sich einloggen und seine daten verändern kann. Wenn ich aber eingeloggt bin, was soweit funktioniert und dann auf einen Link aus der Navigation klicke, öffnet sich diese auch, aber der User müsste sich in der rechten Spalte wieder einloggen.

Ich poste mal den index:

PHP:
<?php
session_start(); ?>
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="600" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td width="100"><a href="?section=bla">Bla</a></td>
    <td width="400"><?php
	switch($section){
	case "home": include("news/index.php"); break;
	case "bla": include("bla.php"); break;
    default: include("news/index.php"); break;
	}?></td>
    <td width="100">	<?php
	switch($section){
	case "logout": include("login/logout.php"); break;
	case "login": include("login/login.php"); break;
	case "index": include("login/index.php"); break;
	case "intern": include("login/intern.php"); break;
    default: include("login/index.php"); break;
	}?></td>
  </tr>
</table>
</body>
</html>

Falls ihr das Script vom Login braucht, sagt bescheid ;)
 
Dein Login-Script sollte über Sessions prüfen, ob der Login bereits erfolgte. Wenn ja, darf das Script das Login-Formular nicht anzeigen.

Sven
 
Ok, das habe ich jetzt gemacht, sieht dann folgendermaßen aus:

PHP:
<?php
    session_start(); 
	if ($_SESSION["auth"]!=2) { 	
	$_SESSION["auth"]=1;  
	echo "<form name='UserLogin' method='post' action='?section=login'>";
    echo "<input type='hidden' name='projekt' value='0'>";
    echo "<input type='text' name='username'>";
    echo "<input type='password' name='password'>";
    echo "<input type='submit' name='login' value='Login'>";
    echo "</form>"; 
	} else {
	 
    echo "<meta http-equiv='Refresh' content='3;url=?section=intern'> "; }
?>

Funktioniert auch, aber ein Fehler ist da halt, wenn ich auf einen Link aus der Navigation klicke, dann geht er da auch hin, aber er leite dann ja wieder weiter, wegen:

PHP:
} else {
	 
    echo "<meta http-equiv='Refresh' content='3;url=?section=intern'> "; }
?>

Gibt es da Ausweichmöglichkeiten? Notfalls auch, wenn ich das Script umkrempeln müsste?
 
Ist denn die Weiterleitung schlimm? Was passiert danach?

Generell sollten die Internen Module prüfen, ob der Login bereits erfolgte. Wenn ja, zeigen sie das an, was sie anzeigen sollen und wenn nicht, dann muss das Login-Formular gezeigt werden.

Meta-Refreshs sind zudem immer ungünstig, weil diese Funktionalität browserabghängig ist. Die Weiterleitung über
PHP:
header('Location: http://www.meineseite.de/seite.php');
ist da schon empfehlenswerter.

--> [phpf]header[/phpf]

Sven
 
Nein, es ist ein anderes Problem, am besten du guckst es dir selbst nochmal an, dann verstehst du es :). http://needa.ne.funpic.de/community/ , dort mit "Needa - google" einloggen . Wenn du eingeloggt bist, klickst du auf den "Bla"-Link, da passiert aber nichts, er leitet nämlich auf ?section=intern weiter, weil, wenn er eingeloggt ist, er ja eigentlich auf die verweisen soll.

EDIT:
Habs jetzt "geschafft", anstatt der Weiterleitung hab ich jetzt einfach include benutzt, danke für die Hilfe, trotzdem ;)
 
Zuletzt bearbeitet:
Zurück