kostenloser Webspace werbefrei: lima-city


[PHP] index.php?page=blabla

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    m**********r

    Hallo, da ich mich nicht so gut mit PHP auskenne, frage ich mal hier bei Lima-City!

    Also, ich habe eine Datei namens index.php . Den Inhalt füge ich mit
    include ("blabla") ;
    ein. Es sind allerdeings mehrere Includes, also navi, blabla, usw.

    Nun hab ich mir überlegt, da es ja eine recht komplexe Webseite ist, dass die Links nur noch so ungefähr aussehen sollen: index.php?page=blabla

    Wie kann ich so etwas realisieren? Kann ich dort weiterhin die Include Funktion verwenden, oder muss ich einen anderen Befelh nehmen?

    Grüße Moritz
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. benutzernaemelchen

    Kostenloser Webspace von benutzernaemelchen

    benutzernaemelchen hat kostenlosen Webspace.

    Du willst den Inhalt mit includes lösen?
    Hab ich das jetzt richtig verstanden?

    -->http://designnation.de
    -->http://tut.php-q.net
    -->http://google.de ("includes" sollte schon reichen)
  4. Autor dieses Themas

    m**********r

    Ja, so hatte ich das ursprünglich gemacht. Jetzt will ich aber, dass man es mit index.php?page=blabla aufrufen kann. Ist das möglich?
  5. Hallo moritzpeuser,
    naklar ist das möglich.

    Du musst die Variable per $_GET[''] übernehmen. Dann erstellst du if-abfragen in der Art: wenn $page gleich blabla ist dann includiere das und das...
    also:

    $page = $_GET['page'];

    if($page == "blabla") include("blabla.php");
    if($page == "muh") include("kuh.php");
    [...]


    gruß
    ferdinand24
  6. *hust*
    http://www.lima-city.de/tutorials.php?mode=show&id=1275
  7. Autor dieses Themas

    m**********r

    Danke, aber irgendwie bin ich zu blöd um das zu kapieren. Ich habe jetzt mal schnell folgenden Code als Beispiel zusammengeschustert:


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    
     <title>Sir Edwin   -   Die Community </title>
    
     <style type="text/css" media="screen">
      <!--
      @import url(http://moritzpeuser.lima-city.de/style.css);
      @import url(http://morizpeuser.lima-city.de/default.css);
      
    #body { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/images/wallpaper5.jpg') top center fixed; }
    #wallpaper0 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/wallpaper5.jpg') center; }
    #wallpaper1 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/tile1.jpg') center; }
    #wallpaper2 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/wallpaper3.jpg') center; }
    #wallpaper3 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/wallpaper6.jpg') center; }
    #wallpaper4 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/wallpaper1.jpg') center; }
    #wallpaper5 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/wallpaper2.jpg') center; }
    #wallpaper6 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/tile2.jpg') center; }
    #wallpaper7 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/wallpaper7.jpg') center; }
    #wallpaper8 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/tile3.jpg') center; }
    #wallpaper9 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/tile4.jpg') center; }
    #wallpaper10 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/wallpaper4.jpg') center; }
    
      -->
     </style>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <meta name="description" content="Sir Edwin   -   Die Community" />
    
     
     </script>
     
    		<style type="text/css" media="screen">
    		#fmoblog_side{
    		}
    		#fmoblog{
    					margin-top:10px;
    
    		}
    
    		#fmoblog_side img, #fmoblog img{
    			border:1px #ccc solid;
    			padding:1px;
    			margin:1px;
    			background-color:#fff;
    		}
    		#fmoblog_photodate {
    			height:50px;
    			float:left;
    		}
    		#fmoblog_photolist {
    			float: right;
    			margin: 0;
    
    			margin-left: 0;
    			padding: 0;
    
    		}
    		#fmoblog a,
    		#fmoblog a:visited,
    		#fmoblog a:hover,
    		#fmoblog a:focus {
    			border:none;
    			text-decoration:none;
    			background-color:transparent;
    		}
    		#fmoblog_error{
    			background-color:#FF0000;
    			border:3px #000000 solid;
    		}
    		</style>
    
    </head>
    
    <body id="body">
    <div id="bodyowner"><div id="menucontainer">
    
    <div class="menubefore"></div>
    <div class="menu">
    
    <h3>Extras</h3>
    <p><?php inlcude ("extra.html") ; ?></p>
    <p class="clear"></p>
    
    
    </div>
    <div class="menuafter"></div>
    
    
            
    
    <div class="menubefore"></div>
    <div class="menu"><?php inlcude ("navi.html") ; ?></div>
    <div class="menuafter"></div>
    
    
    </div>
    <div id="contentcontainer">
    
    
    <div class="blogbefore"></div>
    <div class="blog"><div style="overflow: hidden;">
    <span class="menu">
    <?php inlcude ("start.html") ; ?>
    </span></div>
    </div>
    <div class="blogafter"></div>
    
    
    
    </div>
    </div>
     <script type="text/javascript">init();</script>
    </body>
    </html>


    Kann mir das jemand vorkauen? *ganzliebkuck*
  8. [Kauen beginnen]

    in der Zeile wo <?php inlcude ('start.html') ; ?> steht,
    ersetzt du es durch:

    <?php
    if(empty($_GET['seite'])) {
    include "start.html";
    }
    elseif($_GET['seite']=="blabla") {
    include "blabla.html";
    }
    elseif($_GET['seite']=="undsoweiter") {
    include"irgendetwas.html";
    }

    else {
    echo"Die von ihnen aufgerufene Addresse existiert nicht.";
    }
    ?>

    Also, zuerst wird mit
    if(empty($_GET['seite']))
    überprüft, ob 'seite' leer ist.

    Wenn dies zutrifft, dann wird
    include "start.html";
    ausgeführt.

    elseif($_GET['seite']=="blabla")
    überprüft ob seite blabla ist. (Groß und kleinschreibung wird ignoriert.)
    Wenn ja, dann wird
    include"blabla.html";
    ausgeführt.

    Das zweite elseif kannst du dir denken (siehe oben...)
    Dies kannst du so oft kopieren wie du willst.

    Wichtig ist, dass das elseif() vor dem else steht.

    Das else {} sagt, was passieren soll, wenn keine abfrage zutrifft, also eine Seite aufgerufen wurde, die nicht angelegt wurde.
    also: echo"Die von ihnen aufgerufene Addresse existiert nicht.";

    [Gekautes ausspucken üb auf Silbertablett überreichen:biggrin:]

    Hoffe ich konnte helfen.

    Beitrag geändert: 17.11.2006 23:21:59 von speedtouch92
  9. Ich empfehle dringenst für soetwas Switches zu verwenden.

    Sie fressen weniger Resourcen, sind eleganter und komfortabler.


    switch($_GET['page'])
    {
      default:
        include("start.php");
      break;
    
      case 'gb':
        include("gb.php");
      break;
    }


    uswuswusw

    Switches sind wirklich besser geeignet für soetwas.

    Grüße, adrians
  10. mmmh..*anfang zu grübeln*

    Soweit ich weiß finde ich nur den einen Fehler aber der is ja inzwischen auch behoben. Ach noch was, schreibt man bei php in den ersten Zeilen HTML?
  11. Autor dieses Themas

    m**********r

    Wow, vielen Dank für eure Hilfe. Mal sehen, ob ich jetzt zu einem vernüftigen Resultat komme...
  12. t*****b

    Mh, dann musste für jede Seite ein Case reinmachen, was umständlich wäre.
    Mein Vorschlag:

    $page = $_GET["page"];
    if (file_exists($page.".php"))
    {
    include($page.".php");
    }
    else
    {
    echo "ERROR404: Die Seite existiert nicht";
    }


    Beitrag geändert: 18.11.2006 12:05:04 von trueweb
  13. s********n

    Oder du speicherst die einzelnen Seiten in einem Array (2 Dateien):

    <?php
    //inhalt.php
    include('links.php');
    
    if(isset($_GET['p']) AND isset($dateien[$_GET['p']]))
    {
     //Ist eine $_GET Variable vorhanden wird PHP angewiesen 
     //zu prüfen ob die Datei existiert und diese dann zu laden
     
     if(!file_exists($dateien[$_GET['p']])) echo "Die Datei ist nicht vorhanden.";
    
     include $dateien[$_GET['p']]; 
    }
    else
    {
     //Wenn keine Variable oder Definition vorhanden ist
     //lade die Fehlerseite bzw. die Indexseite
     include $dateien['home']; 
    }
    ?>


    und in die links.php:

    <?php
    //links.php
    
    $dateien = array(); //Erstellt einen neuen Array $dateien
    $dateien['home']      = "home.php"; //Home
    $dateien['news']      = "newssys/index.php"; //News
    $dateien['forum']     = "forum/index.php";   //Forum
    ?>


    Einfach immer die Links.php anpassen.

    l sebi
  14. Ich würde dir sie Methode von skate-4fun empfehlen,
    da diese sehr kurz und bündig ist.
    Und leicht anzupassen.
  15. t*****b

    Da ist meine aber leichter anzupassen, vor allem da man nichts mehr anpassen muss ;)


    $page = $_GET['page'];
    if (empty($page)) { $page = "startseite"; }
    if (file_exists($page.'.php'))
    {
    include($page.'.php');
    }
    else
    {
    echo 'ERROR404: Die Seite existiert nicht';
    }?>
  16. Autor dieses Themas

    m**********r

    So, jetzt hab ich hier nochmal eine Frage:

    Ich habe diesen Code, um den Content zu Includen:

    $page = $_GET['page'];
    
    if (file_exists($page.'.php'))
    
    {
    
    include($page.'.php');
    
    }
    
    else
    
    {
    
    include '404.php';
    
    }


    Nun möchte ich aber noch eine andere Datei namens sidebar.test.php includen:

    $page = $_GET['page'];
    
    if (file_exists('sidebar.'$page.'.php'))
    
    {
    
    include('sidebar.'$page.'.php');
    
    }
    
    else
    
    {
    
    include 'sidebar.404.php';
    
    }


    Allerdings kommt immer die Fehlermeldung: Parse error: syntax error, unexpected T_VARIABLE in /home/webpages/lima-city/moritzpeuser/html/moritzpeuser/index_beta.php on line 63

    Zeile 63 ist die erste Zeile im zweiten Codeabschnitt !


    Was mache ich falsch?


    Beitrag geaendert: 3.2.2007 13:50:12 von moritzpeuser
  17. mach mal ein leerzeichen zwischen <? und $page
  18. sandrock-jonas

    Kostenloser Webspace von sandrock-jonas

    sandrock-jonas hat kostenlosen Webspace.

    korbiw schrieb:
    mach mal ein leerzeichen zwischen <? und $page


    Außerdem fehlt da noch ein Punkt:

    <?
    $page = $_GET['page'];
    if (file_exists('sidebar.'$page.'.php')) {
    include('sidebar.'.$page.'.php');
    } else {
    include 'sidebar.404.php';
    }
    ?>
  19. Autor dieses Themas

    m**********r

    Stimmt. Hab ich ganz übersehen. Danke nochmals :)
  20. s***h

    Ich würde es so machen:

    <?php
           
        if(isset($_GET['page'])) {
            switch($_GET['page']) {
                case "members":
                    include "members.php";
                    break;
    
                case "clanwars":
                    include "clanwars.php";
                    break;
    
                default:  
                           // Wenn page etwas liefert, was es nicht gibt zB    
    
      //index.php?page=claaaanwaar, dann wird News angezeigt
                    include "news.php";
                    break;
            }     
        } else {
            // wenn page nicht angegeben wurde
            // sollen die News angezeigt werden.
            include "news.php";
        }
    ?>


    Beitrag geaendert: 4.2.2007 20:30:49 von sesch

    Beitrag geaendert: 4.2.2007 20:31:18 von sesch

  21. mmmh..*anfang zu grübeln*

    Soweit ich weiß finde ich nur den einen Fehler aber der is ja inzwischen auch behoben. Ach noch was, schreibt man bei php in den ersten Zeilen HTML?


    Ja, das macht man,
    du definierst ja nur den Dokumenteninhalt serverseitig über eine kriptsprache.
    Um das ganze Standartkonform und somit für den Browser verwertbar zu machen, musst du nach wie vor den HTML teil deiner Seite auf irgendeine weise ausgeben. Dabei ist es dir natürlich freigestellt ob du das ganze als PHP Skript inerhalb eines HTML dokuments einbindest oder ob du das als PHP Funktion ausgiebst.
  22. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!