php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Kontrollieren ob eine Session gestartet wurde


 
desmo3
31-05-2003, 18:10 
 
Hallo zusammen

Ich habe ein Login in meiner Seite einbaut. Das Login funkt. via MySQL und mit Sessions. Da ich aber meine Seite dynamisch aufgebaut habe (eine ganze Menge von "includes") fragte ich mich, ob die Möglichkeit besteht zu kontrollieren ob jeweils die Session up ist

So quasi:

if
session_start();
ausgeführt wurde dann zeige die seite

else
bringe ein error

Weil sonst ist zwar die erste Seite vom Passwort geschützt aber alle anderen (via include) nicht.

Vielen Dank für jeglichen Feedback

greetz
desmo

 
TobiaZ
31-05-2003, 18:27 
 
Lies einfach unser Tut zu diesem Thema, dann weißt du bescheid, wie man nen Login aufbaut!

 
Moqui
31-05-2003, 18:35 
 
bool session_is_registered ( string Name)


session_is_registered() gibt TRUE zurück, wenn in der aktuellen Session eine globale Variable mit dem Namen Name registriert ist.

 
desmo3
31-05-2003, 18:49 
 
@ tobiaz

habe ich doch :( aber diesen teil:

session_start();
if(!session_is_registered('user') || $_SESSION['user'] == "") {
header("location:index.php");
die;

kann ich nicht in weiteren seiten einfügen. das geht zwar auf die erste seite, aber nicht auf alle andere die ich via include einbaue und wenn ich das nicht überprüfe, kann man die anderen seiten direkt abrufen und das login umgehen. (eben weil meine seite dynamisch aufgebaut ist)



@ moqui

vielen dank, aber kann leider nichts finden zu "session_is_registered" in der FAQ. würde so was auch gehen?


auf der loginseite, nachdem username+passwort okay sind:

$_SESSION["logged"]=1;


und auf allen anderen seiten die per include reinkommen:

if($_SESSION["logged"]!=1)
{header('Location:meineseite.php');exit;}



vielen dank und gruzz
desmo

 
a4u
31-05-2003, 18:56 
 
Beim nächsten Mal selber die PHP-Manual-Suche benutzen ... Danke :)

http://de3.php.net/manual/de/function.session-is-registered.php

 
TobiaZ
31-05-2003, 19:00 
 
@desmo: ist das nicht das gleiche, wie im Tut?

 
desmo3
31-05-2003, 19:01 
 
sooooooooooorrry :rolleyes:

habe es jetzt auch gefunden:

<?PHP
session_start();
$vari = "Mein Inhalt";
$arg = "Die Befehlsreferenz";
if(session_register("vari")) echo "Variable registriert! <br>";
if(session_is_registered("vari"))echo session_encode();
echo "<br>";
if(!session_is_registered("arg"))echo "Variable ist nicht registriert!";
?>

ich probiere mal.....

 
TobiaZ
31-05-2003, 19:08 
 
damit arbeitet man aber nicht mehr!!! -> siehe Manual!!!

 
desmo3
31-05-2003, 19:15 
 
okay, jetzt bin ich durcheinander :confused: kann ich so was benutzen, oder ist das, wieder das gleiche?


auf der loginseite, nachdem username+passwort okay sind:

$_SESSION["logged"]=1;


und auf allen anderen seiten die per include reinkommen:

if($_SESSION["logged"]!=1)
die;
else
{header('Location:error401.php');
exit;}

 
desmo3
31-05-2003, 19:20 
 
okay, okay, ich war zu viel vor der kiste, habe jetzt alles was ich brauche! danke ihr seit die besten :rolleyes:



Instead of using session_register(...) , simply use somethig like:

<?
//must always start the session first
session_start();

//in place of session register(..) use...like someone said above
$_SESSION['VARNAME'] = $something // or "something";

/* then on the same page or subsequent pages where you want check for the session use something like....

and on another page where the session hasn't been started you have to call session_start(); first, if the session has already been started you don't need to call it again */

session_start();

//instead of session_is_registered();
if(isset($_SESSION['VARNAME']))
{
print("What you want if the session var is set");
}
else
{
print("What you want if the sessions variable is not set");
}

?>

I hope this helps someone! If you want to learn more about $_SESSION and/or it's related "superglobals" try

http://www.php.net/manual/en/printwn/language.variables.predefined.php

 
TobiaZ
31-05-2003, 19:44 
 
na prima!


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:31 Uhr.