kostenloser Webspace werbefrei: lima-city


if-Anweisungen - Alternative?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    f****y

    Also hab ne kurze und kleine Frage..

    Ich wüsste auch nicht wonach ich suchen sollte..

    Also ich hab mir jetzt ne kleine Seite zusammen gebastelt wo der Content per GET geladen wird, sprich wenn da steht:

    index.php?page=server

    wird die server.html geladen, soweit so gut, funktioniert ja auch und ist ja nicht gerade das schwerste ^^

    Da die Seite aber mehrere Menüpunkte hat häufen sich die if-Anweisungen. Jetzt meine Frage, gibts da noch ne andere Möglichkeit außer die ganzen if\'s?
    Weil irgendwie tut mir der Server leid wenn der immer ne ganze Liste von if\'s abarbeiten muss ^^
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Hallo

    Da gibts einmal switch ;)
    switch($_GET[\'page\']) {
    case \"server\": $include = \"server.html\"; break;
    case \"blub\": $include = \"blub.html\"; break;
    default: $include = \"start.html\"; break;
    }
    include($include);

    So würde dann meine Lösung aussehen.
    Man kann aber auch include($_GET[\'page\'].\".html\"); nutzen, muss allerdings beachten, das so URL Inclusion möglich ist und sich dagegen entsprechend absichern.

    Und so weh tut dem Server die if-liste auch nicht ;)

    -AlienDwarf
  4. Autor dieses Themas

    f****y

    vielen Dank :thumb:

    genau sowas hab ich gesucht :biggrin:
  5. e********l

    Du kannst auch ein Array definieren und die Ziel Seiten darüber einbinden.

    $pages = array(\'server\' => server.html\', \'blub\' => \'blub.html\', \'default\' => \'start.html\');
    $page = $_GET[\'page\'];
    include in_array($page,$pages) ? $pages[$page] : $pages[\'default\'];
  6. Du kannst das auch über die modrewrite-engine mit htaccess machen.
    Eine Anleitung dazu gibt es auf http://www.modrewrite.de

    Der Effekt davon ist, dass du in die Adresszeile deines Browsers zum Beispiel nur \"deine-seite.de/seite1.htm\" einzugeben brauchst und automatisch auf \"deine-seite.de/index.php?page=seite1\" weitergeleitet wirst.


    Beitrag geändert: 19.4.2008 12:16:14 von peter1
  7. ich habe eine ziemliche elegante lösung (von www.php-quake.net abgeschaut):

    menu.php:
    <ol>
        <li><a href=\"tut.php\">Main</a></li>
        <li><a href=\"tut.php?p=info\">PHP-Info</a></li>
        <li><a href=\"tut.php?p=mail\">Mail-Test</a></li>
        <li><a href=\"tut.php?p=new\">Neuen User anlegen</a></li>
        <li><a href=\"tut.php?p=news\">News mit MySql</a></li>
        <li><a href=\"tut.php?p=gb\">G&auml;stebuch</a></li>
        <li><a href=\"phpmyadmin/\">MySql-Administration</a></li>
    </ol>


    config.php:
    $pages = array();
        $pages[\'main\'] = \"pages/hauptpage.php\";
        $pages[\'info\'] = \"pages/phpinfo.php\";
        $pages[\'mail\'] = \"pages/mail.php\";
        $pages[\'new\'] = \"pages/newuser.php\";
        $pages[\'news\'] = \"pages/news.php\";
        $pages[\'gb\'] = \"pages/gb.php\";
        $pages[\'gb_insert\'] = \"pages/gb_insert.php\";
        $pages[\'admin\'] = \"pages/admin.php\";


    inhalt.php:
    if(isset($_GET[\'p\']) AND isset($pages[$_GET[\'p\']])) {
            include $pages[$_GET[\'p\']];
        } else {
            include $pages[\'main\']; //Wenn falscher Parameter oder kein Parameter
        }



    wenn du einen neuen menüpunkt hinzufügst, dann musst du nur in menu.php einen aufzählungspunkt hinzufügen und in der config.php ebenfalls eine neue Reihe mit richtigen werten hinzufügen.

    lg
    Vali


  8. wenn du einen neuen menüpunkt hinzufügst, dann musst du nur in menu.php einen aufzählungspunkt hinzufügen und in der config.php ebenfalls eine neue Reihe mit richtigen werten hinzufügen.

    lg
    Vali

    Oder man macht das Ganzen datenbankbasiert, so dass das Menü automatisch erstellt wird. So kann man auch noch Untermenüs einklinken und muss sich nie mit irgendwelchen Dateien rumschlagen. Auch das Hinzufügen, Verschieben und Löschen wird somit ganz einfach.
    Aber das nur so als Anmerkung, für eine kleine private Page reicht der code von aliendwarf vollkommen aus.
  9. 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!