Fehlerseite bei falschem Include

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

  • Fehlerseite bei falschem Include

    Hi Leute,

    ich habe eine index.php. In diese lade ich je nach Seitenvariable $page (also index.php?page=downloads) die Datei $page.".php", also in dem Fall downloads.php.

    Wenn ich aber nun ?page=seitegibtsnicht eingebe, dann wird mir ein Include-Error ausgegeben. Kann ich diese durch eine von mir gemachte Fehlerseite ersetzen?

    Tnx 4 Help!

    MfG Lukas

  • #2
    du könntest vorher prüfen, ob die zu includierende Seite existiert!
    Alternativ könntest du mit einer Fehlerbehandlung eingreifen.

    mit @include("..."); kannst du den Fehler zumindest unterdrücken. und dann wieder per fehlerbehandlung...

    EDIT:
    ach ja, prüfen ob datei existiert: file_exists()

    Kommentar


    • #3
      Tnx 4 Help!

      Greetz Lukas

      Kommentar


      • #4
        Oder so ...

        Du machst ein array mit folgendem Inhalt

        $choice = array(
        'downloads'
        ,'page2'
        ,'page3'
        );

        Und dann

        if(isset($_REQUEST['page']) AND isset($choice[$_REQUEST['page']]))
        {
        include_once './'.$page.'.php';
        }
        else{
        include_once './error.php';
        }

        Kommentar


        • #5
          Original geschrieben von CannabisCow
          if(isset($_REQUEST['page']) AND isset($choice[$_REQUEST['page']]))
          statt dem zweiten isset (ziemlich komische anwendung?) würde ich in_array() vorziehen.

          aber ansonsten hast du völlig recht, so ist wenigstens die sicherheit gegeben, dass nicht beliebige dateien includet werden können.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Wieso komisch?
            Hab das isset bewusst genommen, weil ich glaube mich zuerinnern das isset schneller war

            Kommentar


            • #7
              Original geschrieben von CannabisCow
              Wieso komisch?
              Hab das isset bewusst genommen, weil ich glaube mich zuerinnern das isset schneller war
              du hast ein array in der form
              $choice = array('downloads','page2','page3');
              und willst jetzt mit $choice[$_REQUEST['page']] auf ein element zugreifen. $_REQUEST['page'] wird hierbei also als array-index benutzt. das würde aber in diesem falle ein assoziatives array vorrausetzen, was du aber gar nicht hast. mag zwar sein, dass es funktioniert (hab's nicht ausprobiert), aber logisch sauber finde ich es nicht.

              EDIT:
              oder wolltest du gar nicht den seitennamen ('downloads', 'page2' oder 'page3') also GET-parameter übergeben, sondern stattdessen nur eine nummer 0, 1 oder 2? dann hab ich dich missverstanden, das wäre natürlich OK. ich bin nur vom eingangsbeispiel ausgegangen, wo der name einer seite übergeben werden sollte.
              Zuletzt geändert von wahsaga; 04.06.2003, 11:06.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar

              Lädt...
              X