Probleme mit $_REQUEST

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

  • Probleme mit $_REQUEST

    Hallo zusammen!

    Keine Ahnung was los ist, aber meine $_REQUEST-Funktion geht einfach nicht.
    Irgendwas muss ich noch zusätzlich übergeben aber ich komm nicht drauf.
    Also..ich erklär mal um was es genau geht.
    Ich hab ne index.php die ne session startet und ein template(index.tpl) ausgiebt. Nun das funktioniert soweit auch alles korrekt. Auf dem Template befinden sich mehrere Links. Unter anderem der "Reports" Link der beim Klick auf eine Classe verlinkt und dabei die Variable "section" mit "reports" füllen sollte und diese an die index.php übergibt. Welche dann zu Reports.Class verlinkt.

    der Code vom Link "Reports" im teplate(index.tpl) lautet:
    PHP-Code:
              <li><a href="?section=reports">»&nbsp;Reports</a></li

    Ein Code-Abschnitt in der Classe Reports sieht nun vollgendermassen aus:
    PHP-Code:
      function getReportingPage()
        {
            
    $action $_REQUEST['action'];
            switch (
    $action)
            {
                case 
    "nesresult":
                   
    $this->ShowNessusResult();
                   break;
                case 
    "trend":
                     
    $this->TrendAnalys();
                     break;

                     
    $this->ScanTrendScan();
                     break;
                default:
                    
    $this->showReports();
                    break;
            }
    //end switch 
    Eigentlich sollte das ganze hier funktionieren und beim Switch auf die Funktion "ShowReports()" gehen, nur es kommt immer diese Fehlermeldung:

    Notice: Undefined index: action in /www/htdocs/init/_classes/Reports.class.php on line 56


    Was ist los?

    Die Variable $action habe ich am Anfang der Classe definiert.

    PHP-Code:
    class Reporting
    {
          var 
    $action

    Danke für die Hilfe schon im voraus.

    Gruss,
    Yard

  • #2
    Re: Probleme mit $_REQUEST

    <a href="?section=reports">

    $action = $_REQUEST['action'];


    entweder dir fällt ein kleiner, aber wesentlicher unterschied auf, oder du willst schleunigst einen augenarzt oder optiker deiner wahl aufsuchen.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Darf man mitmachen.

      Ich habe in entdeckt
      Ich habe in entdeckt
      Ich habe in entdeckt
      Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

      Kommentar


      • #4
        nene. halt halt. die variable "section" wird ja ins index.php übergeben. nicht in die classe. das stimmt schon so. die "action" geht erst in die reports classe. aber die is ja nicht gefüllt.

        index.php auswahl:
        PHP-Code:
        $section "";
        if(isset(
        $_REQUEST['section']))
        {
            
        $section $_REQUEST['section'];
        }
        //class-directory
        $modulespath "_classes/";
        //switch to selected section
        switch ($section)
        {
            case 
        "reports":
                
        $modulespath .= "Reports.class.php";
                if (
        file_exists($modulespath))
                    require_once(
        $modulespath);
                else
                    die (
        "Fehler beim Aufruf von Reports.class.php!");
                
        $objReportsManager = &new Reporting($template);
                
        $template $objReportsManager->getReportingPage();
                break;
            
        //end case access
            
        default:
            
        ShowMain($template,$username);

                break;
        }
        //end switch 
        verwende smarty template

        Kommentar


        • #5
          Original geschrieben von yard
          nene
          dochdoch

          wo kommt $_REQUEST['action'] her?
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            die kommt erst wenn auf dem neuen template(reports_overwiev.tpl) auf nen link geklickt wird. vorher sollte alles in der reports classe, im switch auf default gehen. weil ja nix in der variable action ist.

            Kommentar


            • #7
              und der link mit dem action-Parameter zeigt auf die index.php?
              kontrolliert?
              wie?
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                der action-parameter zeigt auf die index.php und dann zur reports.class.php via dem section-parameter.

                Kommentar


                • #9
                  Original geschrieben von yard
                  der action-parameter zeigt auf die index.php und dann zur reports.class.php via dem section-parameter.
                  Hä?

                  du rufst einen Link der form index.php?action=irgendwas auf und dann steht auf einmal in $_REQUEST['section'] auch irgendwas?

                  Wenn ja: Wie kommt der Wert da hin?
                  Wenn nein: Klär's mir so, dass ich's versteh
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    also...
                    sorry wenn ich mich nicht wirklich ausdrücken kann. erkläre das jetzt nochmals.

                    das ganze startet bei der index.php datei. diese übergibt das template index.tpl aus. wenn der section-parameter nicht gefüllt ist.
                    wenn man jetzt aber im index.tpl template einen link klickt übergibt der z.b. section=reports in die index.php datei

                    PHP-Code:
                    $section "";
                    if(isset(
                    $_REQUEST['section']))
                    {
                        
                    $section $_REQUEST['section'];
                    }
                    //class-directory
                    $modulespath "_classes/";
                    //switch to selected section
                    switch ($section)
                    {
                        case 
                    "reports":
                            
                    $modulespath .= "Reports.class.php";
                            if (
                    file_exists($modulespath))
                                require_once(
                    $modulespath);
                            else
                                die (
                    "Fehler beim Aufruf von Reports.class.php!");
                            
                    $objReportsManager = &new Reporting($template);
                            
                    $template $objReportsManager->getReportingPage();
                            break;
                        
                    //end case access
                        
                    default:
                        
                    ShowMain($template,$username);

                            break;
                    }
                    //end switch 
                    und schaltet zur reports.class, genauer zur function getReportingPage() in der reports.class.
                    beim umschaltet ist ja nun der section-parameter gefüllt mit reports aber der action-parameter leer.
                    so wird in der reports.class das "default" im switch ausgewählt

                    PHP-Code:
                    function getReportingPage()
                        {
                            
                    $action $_REQUEST['action'];
                            switch (
                    $action)
                            {
                                case 
                    "nesresult":
                                   
                    $this->ShowNessusResult();
                                   break;
                                case 
                    "trend":
                                     
                    $this->TrendAnalys();
                                     break;

                                     
                    $this->ScanTrendScan();
                                     break;
                                default:
                                    
                    $this->showReports();
                                    break;
                            }
                    //end switch 
                    was dann die function showReports() aufruft. und dann dort das neue template(reports_overwiev.tpl) ausgibt mit den neuen links.
                    der action-parameter wird erst gefüllt wenn man im reports_overwiev.tpl nen link betätigt.
                    wenn man nen link auf reports_overview.tpl betätigt geht der link so:
                    index.php?section=reports&action=trend
                    als beispiel.
                    aber er gibt mir nicht einmal die reports_overview.tpl aus. die fehlermeldung erscheint schon beim ersten durchgehen. weil er meckert weil die $action variable leer ist.

                    ist es so verständlich?
                    danke für die hilfe.

                    Kommentar


                    • #11
                      prüfe mit isset($_REQUEST['action']) und gut ist.

                      btw: was soll das?
                      PHP-Code:
                      case "trend":
                                       
                      $this->TrendAnalys();
                                       break;

                                       
                      $this->ScanTrendScan();   // <----
                                       
                      break;
                                  default:
                                      
                      $this->showReports();
                                      break; 
                      Kissolino.com

                      Kommentar


                      • #12
                        $_REQUEST['action'] ist nicht vorhanden. aber spielt das eine rolle? die kann ja auch leer sein. warum ruft er aus..?


                        PHP-Code:
                        $this->ScanTrendScan(); 
                        ist eine function. tut nichts zur sache.

                        Kommentar


                        • #13
                          Hmm so ma als kleine zwischenfrage was für eine php-Version haste druff. Dat funktioniert nämlich erst ab PHP 4.1.0
                          wenn wir unsere Agenturräume in nem Baumhaus hätten könnten wir wenigstens behaupten wir wären auf einen grünen Zweig gekommen

                          Kommentar


                          • #14
                            PHP-Code:
                            if (isset($_REQUEST['action']))
                              
                            $action $_REQUEST['action'];
                            else
                              
                            $action ''
                            mach das mal so
                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Kommentar


                            • #15
                              PHP 5 (5.0.3)

                              Das stimmt schon. Aber danke.

                              Ich hab einfach das Problem das meine Variablen nicht übergeben werden. Auch wenn ich Classen libarys in der index.php datei einlese mit require_once() werden die functionen dann nicht übernommen wenn ich in die classen verlinke. und in jeder classe die libarys wieder einlesen macht ja keinen sinn.

                              Kommentar

                              Lädt...
                              X