Array wird nicht richtig übergeben

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

  • Array wird nicht richtig übergeben

    ich hab nen Fehler in meinem Script und versuche seit ner stunde die Ursache zu finden. die Funktion wertet aus, ob eine administrationsseite geladen werden soll und welche. zudem wird ausgewertet, ob etwas gesendet werden soll(an die Datenbank) es wird in dieser Funktion nur ein Array erstellt in dem die informationen drin sind:
    PHP-Code:
    public function changeAdminArray(){
            
    $tempArray = array();
            
    //überprüfen ob als Admin eingeloggt
            
    $this->loggedIn = (isset($_SESSION['admin']) && $_SESSION['admin'] == TRUE) ? TRUE FALSE;
            
    //überprüfen, ob das LoginFormular aufgerufen werden soll
            
    $tempArray['adminSite'] = (isset($_GET['admin']) && $this->loggedIn != TRUE) ? 'login' NULL;
            
    $this->helpFunc->protokoll('adminSite: '.$tempArray['adminSite']);
            
    //überprüfen, ob das Formular zur Newsänderung aufgerufen werden soll
            
    $tempArray['adminSite'] = ($this->loggedIn == TRUE && isset($_GET['changeN'])&&$_GET['changeN'] != '') ? 'changeN' NULL;
            
    //überprüfen ob etwas gesendet werden darf
            
    if ($this->loggedIn == TRUE && isset($_SESSION['send']) && $_SESSION['send'] == TRUE){
                
    //überprüfen ob eine News geändert werden soll
                
    $tempArray['changeN'] = (isset($_GET['id'])&&isset($_GET['send'])&&$_GET['send']=='news') ? TRUE FALSE;
                
    //überpfüfen ob etwas gesendet wird
                
    $tempArray['send'] = (isset($_GET['send']) && $_GET['send'] != '') ? TRUE FALSE;
            }
            return 
    $tempArray;
        } 
    Fakt ist, es funktioniert nicht. durch sämtliche versuche bin ich nun darauf gekommen, dass der Variable $tempArray['adminSite'] zwar der richtige Wert zugewiesen wird, allerdings dieser nicht zurückgegeben wird. hat vielleicht jemand ahnung, zu welchen problemen es bei der rückgabe von Arrays kommen kann?

    danke schonmal im vorraus

  • #2
    Wie rufst du denn die Funktion auf?

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      die Funktion wird von einer anderen Klasse aufgerufen:
      PHP-Code:
       $this->adminSite = new adminFunc();
       
      $this->adminArray $this->adminSite->changeAdminArray(); 

      Kommentar


      • #4
        Überprüfe mal die Rückgabe der Funktion direkt mittels var_dump:
        PHP-Code:
        var_dump($this->adminSite->changeAdminArray()); 
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          rückgabewert ist NULL.
          ABER: ich habe mir eine Funktion geschrieben, die mir Werte in eine Protokolldatei schreibt und mithilfe dieser Funktion hab ich erkannt, dass die Funktion changeAdminArray hervorragend funktioniert. wenn ich mir die verschiedenen Werte von $temparray ausgeben lasse, sind sie vorhanden. nur wie es scheint wird die Return anweisung nicht ordnungsgemäß ausgeführt.

          Kommentar


          • #6
            Zitat von Kn0rKat0X Beitrag anzeigen
            rückgabewert ist NULL.
            Und Testausgabe analog direkt vor dem return?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              array(1) { ["adminSite"]=> NULL }
              okay... das ist jetzt komisch

              obwohl ich den Wert admin=true per GET übergeben habe...
              Zuletzt geändert von Kn0rKat0X; 25.03.2011, 16:13.

              Kommentar


              • #8
                Ich vermute, dass du hier Blödsinn gemacht hast:
                PHP-Code:
                $tempArray['adminSite'] = (isset($_GET['admin']) && $this->loggedIn != TRUE) ? 'login' NULL;
                ...
                $tempArray['adminSite'] = ($this->loggedIn == TRUE && isset($_GET['changeN'])&&$_GET['changeN'] != '') ? 'changeN' NULL
                Beim zweitem Mal wird der Arraywert überschrieben. Wieso eigentlich? Und da vermute ich mal den Fehler.

                Peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  stimmt... das müsste ich in eine elseif-Anweisung stecken. die Kurzform hat mich irritiert. der richtige Code:

                  PHP-Code:
                  //überprüfen, ob das LoginFormular aufgerufen werden soll
                  if (isset($_GET['admin']) && $this->loggedIn != TRUE)
                          
                  $tempArray['adminSite'] = 'login';
                  //überprüfen, ob das Formular zur Newsänderung aufgerufen werden soll
                  elseif ($this->loggedIn == TRUE && isset($_GET['changeN'])&&$_GET['changeN'] != '')
                          
                  $tempArray['adminSite'] = 'changeN'

                  danke Für die Hilfe
                  Zuletzt geändert von Kn0rKat0X; 25.03.2011, 16:23.

                  Kommentar


                  • #10
                    Zitat von Kn0rKat0X Beitrag anzeigen
                    stimmt... das müsste ich in eine elseif-Anweisung stecken. die Kurzform hat mich irritiert.
                    Du solltest dir imho eh angewöhnen, immer(!) mit geschweiften Klammern zu arbeiten.

                    Peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar

                    Lädt...
                    X