PHP Switch & Fehlermeldung

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

  • PHP Switch & Fehlermeldung

    Guten Tag Leute !

    Ich arbeite bei meiner Hp mit dem PHP Switch !

    Folgende(s) Frage bzw Problem :

    PHP-Code:
    <?
    switch($site){
    case "about": include("about.php"); break;
    case "commercial": include("work.php"); break;
    default: include("main.php"); break;
    }
    ?>
    Meine Links sehen ja jetzt so aus :

    index.php?site=about
    index.php?site=commercial


    Wenn nun jemand die Seite :
    index.php?site=bla aufruft soll eine Fehlermeldung ausgegeben werden da es diese Seite ja nicht gibt ... wie geht sowas ??

    Hoffe mir kann jemand Helfen !!

    Greez
    Rapha

  • #2
    Manual gelesen? Du verwendest es doch schon:

    PHP-Code:
    default: include("main.php"); break; 

    Kommentar


    • #3
      Original geschrieben von TobiaZ
      Manual gelesen? Du verwendest es doch schon:

      PHP-Code:
      default: include("main.php"); break; 
      @TobiaZ das ist mir schon klar wenn ich die Seite aufrufe dann zeigter mir die mainpage an !!

      Aber : Er soll eine Fehlermeldung Posten wie z.B :

      Fehler - Diese Seite konnte auf diesem Server nicht gefunden werden !



      Denke du verstehst was ich genau meine !

      Rapha

      Kommentar


      • #4
        Du kannst die Meldung per GET Parameter anhängen, das ist aber nicht sonderlich fein.

        Warum benennst du die default Seite nicht einfach als error.php.

        Die Seite beinhaltet dann halt den Code mainpage und zusätzlich deinen Satz.

        Kommentar


        • #5
          ich glaub eher wir verstehndich nicht+ggg+

          gib bei default halt die fehlermeldung ein und oberhalt ein case dazu wo´s die main.php includet=)

          wär halt mal meine idee=)

          Kommentar


          • #6
            dann schreib das halt in die default-anweisung.

            Kommentar


            • #7
              ist eigentlich recht einfach.

              Zuerst musst du deine URL Parameter abfragen (geht per GET)
              PHP-Code:
              <?php

                  
              if(empty($_GET['site']))
                  {
                            
              $_GET['site'] = "main";  
                  }
                  
                  
              $site $_GET['site'].".php";
                  
                  
                  if(
              file_exists($site)) {  

                      include(
              $site);  
                  } 
                  
                  else {  
                  echo 
              "<b>" $_GET[site] . "</b> wurde nicht gefunden<br>";
                  include(
              "404.php");
                  }
                  
               
              ?>
              hier wird an den wert deines site Werts immer ein .php angehängt es wird also dann z.B. seite1.php eingebunden..

              PHP-Code:
              $site $_GET['site'].".php"
              Hiermit kannst du natürlich schön spielen um z.b. ein Verzeichnis anzugeben indem die einzubindenden dateien liegen..
              Zuletzt geändert von yakuzza; 07.10.2005, 14:57.

              Kommentar


              • #8
                Original geschrieben von yakuzza
                PHP-Code:
                <?php

                    
                if(empty($_GET['site']))
                    {
                              
                $_GET['site'] = "main";  
                    }
                    
                    
                $site $_GET['site'].".php";
                    
                    
                    if(
                file_exists($site)) {  

                        include(
                $site);  
                    } 
                    
                    else {  
                    echo 
                "<b>" $_GET[site] . "</b> wurde nicht gefunden<br>";
                    include(
                "404.php");
                    }
                    
                 
                ?>
                Das ist wohl nicht dein Ernst oder? Haben wir den 1. April?
                Zuletzt geändert von Schnoop; 07.10.2005, 15:15.

                Kommentar


                • #9
                  OffTopic:
                  Schnoop, ich glaube, früher im usenet, da nannte man das "over quoting", oder so ähnlich.

                  Kommentar


                  • #10
                    OffTopic:
                    Ähm, ja stimmt wohl.....

                    Kommentar


                    • #11
                      Original geschrieben von Schnoop
                      Das ist wohl nicht dein Ernst oder? Haben wir den 1. April?
                      Was hast du für ein problem mit dem script?

                      So wie ich das verstanden hab möchte er dateien einbinden, die er zuvor über einen url parameter übergibt..

                      Kommentar


                      • #12
                        Naja, denk mal über den Sicherheitsaspekt nach. Du includest einfach alles was dir übergeben wird, ohne es zu validieren. Damit kann man schön die Seite zerpflücken wenn man mag.

                        Kommentar


                        • #13
                          bevor du so etwas schreibst, solltest das scrípt mal etwas genauer durchlesen

                          du kannst keine beliebigen dateien einbinden.. sobald eine datei nicht existiert wird die fehlerseite + Meldung angezeigt!

                          dafür sorgt dieser teil des scripts!

                          PHP-Code:
                            if(file_exists($site)) {  

                                  include(
                          $site);  
                              } 
                              
                              else {  
                              echo 
                          "<b>" $_GET[site] . "</b> wurde nicht gefunden<br>";
                              include(
                          "404.php");
                              } 

                          Kommentar


                          • #14
                            dass die seite existiert, heißt noch lange nicht, dass der benutzer sie auch sehen darf.

                            tobiaz und schnoop haben schon recht.

                            Kommentar


                            • #15
                              für solch einen fall legt man entweder ein array an indem erlaubte dateien stehen... und durchläuft dieses oder man schützt die "nicht öffentlichen" Dateien mit einer zugangskontrolle.. ich mach das zumindest so, dateien die brisante daten enthalten sind ohne vorherigen login etc.. gesperrt.. und vor allem liegen sie in einem anderen verzeichnis.. wie ich oben schon angedeutet habe kann man das script einfach dahingehend erweitern..

                              oder wie macht ihr das?
                              Zuletzt geändert von yakuzza; 07.10.2005, 15:36.

                              Kommentar

                              Lädt...
                              X