Seitenafruf mit switch und case

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

  • Seitenafruf mit switch und case

    habe folgenden code hier im Forum gefunden:

    PHP-Code:
    //Prüfen des Startwerts
    if (!isset ($_GET["page"]))
      
    $page "home";
    else
      
    $page $_GET["page"];

    // header and stuff

    //def. aller seiten - inlcudes
    switch ($page)
    {
      case 
    "home":
      include (
    "home.php");
      break;

      case 
    "links";
      include (
    "links.php");
      break;

      
    //usw
     
     
      //für falsche Parameter bzw. default
      
    default:
      include (
    "not_found.php");
      break;

    wenn ich meine Seite so programmiert habe, dass ich sie mit den Links:

    index.php?cat=main&site=home
    index.php?cat=main&site=info
    etc

    wie löse ich das Problem dass keiner die Unterseiten über den "richtigen" Pfad aufrufen kann?
    d.h. die Seite index.php?cat=main&site=home
    also die inlcude Seite liegt in www.domain.de/main/home.php

    wenn ein User jetzt diesen Pfad eingibt kommt er drauf.... ohne aber "aussenherum" das!

  • #2
    Umleitung mit header()?
    The Human Mirror - Mein Blog!
    www.sonicsense.de - The future of music!

    Kommentar


    • #3
      htaccess?
      Außerhalb des DocRoot legen?

      Kommentar


      • #4
        das mit header() hab ich schon versucht

        dann bekomme ich die Fehlermeldung:

        header is already sent.....

        Kommentar


        • #5
          Original geschrieben von Mistert77
          das mit header() hab ich schon versucht

          dann bekomme ich die Fehlermeldung:

          header is already sent.....
          header vor allem anderen.
          The Human Mirror - Mein Blog!
          www.sonicsense.de - The future of music!

          Kommentar


          • #6
            hab alle Leerzeichen weg... funzt trotzdem noch nicht...

            Ich hab hier mal meine Beispiele

            also meine index.php sieht so aus:

            PHP-Code:
            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
            <html>
            <head>
            <title>Homepage</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
            <link rel=stylesheet href='inc/style.css' type=text/css>
            <script language="JavaScript">
            paar zeilen java...
            </script>
            </head>
            <?php
            if (!isset ($_GET["cat"]))
              
            $cat "main";//Startwert
            if (!isset ($_GET["site"]))
              
            $site "start";//Startwert
              
            ?>
            <body bgcolor="#FF0000">

            etc...
            meine Seite home.php sieht so aus:

            PHP-Code:
            <?php
            if (($_GET["cat"] == main) AND ($_GET["site"] == home))
            {
            ?>

            Inhalt der Seite

            <?php
             
            }
            else
            {
            header("Location:index.php?cat=main&site=home"); 
              exit; 
            }
            ?>

            Kommentar


            • #7
              Wenn sich hinter "etc." in der index.php das switch verbirgt, brauchst du dich nicht wundern. Denn dann wird die home.php irgendwo dort mitten in der index.php includiert. Zuvor gibst du aber schon Teile der index.php aus.

              Es ist nicht nur wichtig, dass in der Datei, die header() nutzt, keine Ausgabe bis dahin erfolgt, sondern falls diese Datei ein Include ist, darf auch in der 'Mutterdatei' noch keine Ausgabe erfolgt sein!
              Includes werden Teil des Datenstroms, der letztlich als Website beim User ankommt. Dieser Strom darf noch nicht begonnen haben, sonst ... *zonk*.

              Kommentar


              • #8
                Original geschrieben von Mistert77
                hab alle Leerzeichen weg... funzt trotzdem noch nicht...

                Ich hab hier mal meine Beispiele

                also meine index.php sieht so aus:

                PHP-Code:
                <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
                <html>
                <head>
                <title>Homepage</title>
                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                <link rel=stylesheet href='inc/style.css' type=text/css>
                <script language="JavaScript">
                paar zeilen java...
                </script>
                </head>
                <?php
                if (!isset ($_GET["cat"]))
                  
                $cat "main";//Startwert
                if (!isset ($_GET["site"]))
                  
                $site "start";//Startwert
                  
                ?>
                <body bgcolor="#FF0000">

                etc...
                meine Seite home.php sieht so aus:

                PHP-Code:
                <?php
                if (($_GET["cat"] == main) AND ($_GET["site"] == home))
                {
                ?>

                Inhalt der Seite

                <?php
                 
                }
                else
                {
                header("Location:index.php?cat=main&site=home"); 
                  exit; 
                }
                ?>
                If Abfrage umdrehen?

                PHP-Code:
                <?php
                if (($_GET["cat"] != main) AND ($_GET["site"] != home))
                {
                header("Location:index.php?cat=main&site=home"); 
                  exit; 

                 }
                else
                {
                ?>
                Inhalt
                <?
                }
                ?>
                Abgesehen davon kann man trotzdem noch von aussen auf dieDatei so zugreifen...
                Zuletzt geändert von stekoe2000; 10.11.2005, 06:38.
                Liebe Grüße,
                SteKoe!

                PHP Tutorials
                Peter Kropff | Quakenet | Schattenbaum.net

                Kommentar


                • #9
                  header vor allem anderen hast du nicht erfüllt.
                  The Human Mirror - Mein Blog!
                  www.sonicsense.de - The future of music!

                  Kommentar


                  • #10
                    ich blick grad nicht durch....

                    könnte mir jemand mal aufzeigen wie index.php und home.php auszusehen hat, wo die includes hinmüssen...

                    wäre sehr nett....

                    Kommentar

                    Lädt...
                    X