• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

session_start()

Status
Für weitere Antworten geschlossen.

andlinga

Neues Mitglied
Ich habe ein Problem:

Ich starte die Session in der Datei login.php
wo ich die globale Variable $_SESSION['id'] = 1; auf 1 setze

danach schreibe ich in index.php folgendes:

PHP:
<?php
session_start();
if($_SESSION['id'] == 1)
{
      echo "Hallo";
}
?>

doch die Variable $_SESSION['id'] ist auf einmal leer

kann mir jemand sagen was ich falsch mache

mfg andlinga
 
klar, du musst auch erstmal sagen, dass die session registriert werden soll. deine kontrukt da oben prüft nur, ob sie mit einem wert belegt wurde, also dann etwa so:

PHP:
<?php
session_start();

//session erstmal setzen
$_SESSION['id'] = '1';

//jetzt rpüfen
if($_SESSION['id'] = '1')
   {
   echo 'hallo';
   }
      else
         {
         //sonstige aktion
         }
?>

außerdem kann das noch an dem doppelten operator == liegen. ein einfacher reicht für die wertzuweisung. andernfalls will er prüfen, ob $_SESSION['id'] und 1 gleich sind und das geht ja schonmal nicht.

Nils aka XraYSoLo
 
Ich habe ein Problem:

Ich starte die Session in der Datei login.php
wo ich die globale Variable $_SESSION['id'] = 1; auf 1 setze

danach schreibe ich in index.php folgendes:

PHP:
<?php
session_start();
if($_SESSION['id'] == 1)
{
      echo "Hallo";
}
?>
doch die Variable $_SESSION['id'] ist auf einmal leer

kann mir jemand sagen was ich falsch mache

mfg andlinga

Hallo,

die globale Variable ?

Also in etwa so ...

PHP:
//...
global $_SESSION['myVar'] = 1; // So verstehe ich die Zuweisung einer globalen Variable
//...
Lass das global weg, dann wird es funktionieren.

PHP:
//...
   if(isset($_SESSION['myVar'])) // würde alternativ auf funktioneren
//...

Du sagst weiterhin, das die Session ihren Wert verliert. Dann vergewissere Dich ob die Session vllt. irgendwo überschrieben o. entfernt wird.

Hoffe ich konnte helfen.

Anbei nochmal ein Beispiel wie man sowas machen könnte ...

PHP:
// login.php
@session_start();

// Diese Session setzen wenn der Login erfolgreich war
$_SESSION['myVar'] = true;

PHP:
// secure.php
@session_start();

// Die Session pruefen
if(isset($_SESSION['myVar'])) {} // o. alternativ if($_SESSION['myVar'] == true) {}
 
Zuletzt bearbeitet:
@XRaySolo: Dein Script wird immer hallo ausgeben:wink: In der if-Abfrage muss schon der == Operator rein.

@andlinga: Zeig mal deine login.php, der Fehler wird in der Datei liegen, dein obiges Script ist OK.


N43
 
Hallo,

die globale Variable ?

Also in etwa so ...

PHP:
//...
global $_SESSION['myVar'] = 1; // So verstehe ich die Zuweisung einer globalen Variable
//...
Lass das global weg, dann wird es funktionieren.
[/php]
Naja, ich glaube damit meint er, dass eine Session immer global ist.. ;)

andlinga, poste bitte deine login.php
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben