Seitenafruf mit switch und case

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

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

    Comment


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

      Comment


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

        dann bekomme ich die Fehlermeldung:

        header is already sent.....

        Comment


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

          Comment


          • #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; 
            }
            ?>

            Comment


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

              Comment


              • #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...
                Last edited by stekoe2000; 10-11-2005, 06:38.
                Liebe Grüße,
                SteKoe!

                PHP Tutorials
                Peter Kropff | Quakenet | Schattenbaum.net

                Comment


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

                  Comment


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

                    Comment

                    Working...
                    X