$_SESSION in Klassen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • $_SESSION in Klassen

    Hi ihr,

    ich hab nen sehr lustiges Problem, bzw. ich versteh es nicht so wirklich.

    Folgende Class(ausschnitt):

    PHP-Code:
    <?

        class backend extends Smarty {
            
            function backend($arrCfg) {
            
                # Smarty Parameter
                $this->template_dir     = $arrCfg['smarty']['template_dir'];
                $this->compile_dir         = $arrCfg['smarty']['compile_dir'];

            }
            
            function show() {
                $this->display('backend.tpl');
            }
            
            function setClick($intId) {
                if(is_int($intId)) {
                    $_SESSION[$intId] = true;
                }
            }
        }

    ?>
    ich arbeite damit so:

    PHP-Code:
    <?

        session_start();

        include_once('../__smarty/Smarty.class.php');

        print_r($_SESSION);

        # Config Array
        include_once('_include/inc.cfg.php');
        
        # Backend Class
        include_once('_include/lib.backend.php');

        $objBackend = new backend($arrCfg);
        
        $objBackend->setClick($_GET['id']);
            
        $objBackend->show();
        
    ?>
    Ich möchte das für jede ID die via GET übergeben wird ein Eintrag im Sessionarray erfolgt.

    Das Problem ist, das die Session nach dem Klick der auf die gleiche Seite verweist leer ist.

    Ich steig da nicht so wirklich hinter.

  • #2
    $_GET['id']; ist ein String und deshalb schlägt dein is_int fehl... hängt damit zusammen dass die Daten vom Benutzer kommen und daher als Strings ankommen. Benutz vielleicht intval() um zu testen ob die ID > 0 ist.... 0 würde bedeuten dass entweder $_GET['id'] = 0 ist (ist das erlaubt bei dir? wenn nein, ist das ja kein Problem) und wenn es > 0 ist ists ne Zahl.

    PHP-Code:
    if ( ($int_id intval($_GET['id'])) != 0)
       
    // bla 
    Zuletzt geändert von Shurakai; 13.10.2005, 12:27.
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Jein.

      Wenn ich die Abfrage auf is_int rausnehme ist das Ergebniss das gleiche.

      Ich hab eher den Verdacht das man im Sessionarray keine numerischen Indizes setzen kann. Wenn ich nämlich anstatt der übergebenen ID einen String als Index nehme, funzt es.

      Ziemlich komische Sache das ganze.

      Kommentar


      • #4
        Original geschrieben von Schnoop
        Ich hab eher den Verdacht das man im Sessionarray keine numerischen Indizes setzen kann.
        doch

        Ziemlich komische Sache das ganze.
        ja

        hast du dir mal nach der zuweisung das sesison-array mit print_r ausgeben lassen?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Jeppa, hab ich.

          Und da ist das Sessionarray auch gesetzt.

          Kommentar

          Lädt...
          X