Array wird nicht richtig übergeben

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


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

      Comment


      • #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.

        Comment


        • #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.

          Comment


          • #6
            Originally posted by Kn0rKat0X View Post
            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.

            Comment


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

              obwohl ich den Wert admin=true per GET übergeben habe...
              Last edited by Kn0rKat0X; 25-03-2011, 15:13.

              Comment


              • #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

                Comment


                • #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
                  Last edited by Kn0rKat0X; 25-03-2011, 15:23.

                  Comment


                  • #10
                    Originally posted by Kn0rKat0X View Post
                    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

                    Comment

                    Working...
                    X