Session wird nicht gespeichert
freak
- php
Hallo.
Ich schreibe ein Forum und es soll beim Login gecheckt werden ob jemand Moderator ist oder nicht. Falls ja welches Level. Wenn nicht dann ist
$_SESSION['mods']=0.
Was an folgendem Code ist falsch?
Denn er sagt nachher er undefined index "mods" wenn ich auf die Sessioin zugreifen möchte.
/**
* Rechte checken
*/
private function _checkRights($uid,$model){
$rights=$model->checkRights($uid);
if(!$rights[0]){
$_SESSION['mods']=0;
}else{
$_SESSION['mods']=$rights[0]['level'];
}
}
Lg, the Freak
Hello,
/**
- Rechte checken
*/
private function _checkRights($uid, $model)
{
$rights = $model->checkRights($uid);
if(!$rights[0])
{
$_SESSION['mods'] = 0;
}
else
{
$_SESSION['mods'] = $rights[0]['level'];
}
}
Ist denn die Session überhaupt gestartet worden?
Andernfalls würde $_SESSION als lokale Variable der Funktion angelegt werden.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
![](http://selfhtml.bitworks.de/Virencheck.gif)
--
☻\_
/▌
/ \ Nur selber lernen macht schlau
<http://bergpost.annerschbarrich.de>
Hi!
Was an folgendem Code ist falsch?
Denn er sagt nachher er undefined index "mods" wenn ich auf die Sessioin zugreifen möchte.
Wenn PHP eine Fehlermeldung ausgibt, hat es immer Recht. Vermutlich hast du entweder die Session nicht geöffnet oder nicht wiedereröffnet. Ein session_start() ist in deinem Ausschnitt nicht zu sehen. Das käme vermutlich auch nicht in diese Methode, sondern irgendwo an eine zentrale Stelle.
Lo!
Wenn PHP eine Fehlermeldung ausgibt, hat es immer Recht. Vermutlich hast du entweder die Session nicht geöffnet oder nicht wiedereröffnet. Ein session_start() ist in deinem Ausschnitt nicht zu sehen. Das käme vermutlich auch nicht in diese Methode, sondern irgendwo an eine zentrale Stelle.
Richtig - das ist sie auch. Und alle anderen Session-Deklarationen funktionieren - nur diese nicht.
Hi!
Richtig - das ist sie auch. Und alle anderen Session-Deklarationen funktionieren - nur diese nicht.
Lass dir jeweils die Session-ID anzeigen (und das übliche zur Fehlersuche einstellen, falls noch nicht: error_reporing: E_ALL, display_errors: on)
Wenn du nichts findest, kürze den Code auf das Minimum, so dass der Fehler grade noch auftritt. Am besten stückweise. Wenn er verschwindet, wird die Ursache im gerade gelöschten Teil liegen.
Lo!
Ich frage mich vor allem.
Warum funktioniert es auf Localhost aber nicht auf dem Server?
Fehlermeldungen bekomme ich keine. E_STRICT E_ALL
Hi!
Ich frage mich vor allem. Warum funktioniert es auf Localhost aber nicht auf dem Server?
Weil es Konfigurationsunterschiede zwischen beiden gibt. phpinfo(INFO_CONFIGURATION) sowie die Erläuterungen im Handbuch zu den Konfigurationsdirektiven können bei der Aufklärung helfen.
Aber das kann erst der nächste Schritt sein. Wichtiger als alle dreiundzwanzigtausend Konfigurationsparameter zu prüfen wäre ein gezieltes Einkreisen der Ursache durch Entfernen alles Überflüssigen.
Fehlermeldungen bekomme ich keine. E_STRICT E_ALL
E_STRICT ist unwichtig, E_ALL reicht.
Lo!
Was an folgendem Code ist falsch?
session_start() wurde ja schon gesagt. Immer eine gute Idee ist:
echo "<pre>";
print_r($_SESSION);
echo "</pre>";