kostenloser Webspace werbefrei: lima-city


Knifflige Array Funktion für eigenes CMS

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    limabone

    Kostenloser Webspace von limabone

    limabone hat kostenlosen Webspace.

    Hallo,
    ich möchte gerne ein Script machen, welches mir automatisch die richtige Seite included. Bisher hab ich das immer über MySQL gelöst, doch allmählich geht mir das lange warten doch recht auf die Bohne und nun will ich mal schauen, ob das bei einer Lokalen Datei (nicht nicht bei der nächsten Saufkneipe :angel: :biggrin:) nicht schneller geht.
    Ein Tutorial war ja sehr schnell gefunden. Doch irgendwie hab ich noch nicht wirklich Ahnung, wie ich das machen soll, aber ich erklärs mal.

    Über die Variable ?p= wird ein Wert gesetzt, der ganz einfach über "require('tmp/content.php');" seinen Weg findet. Dort will ich durch ein Array das Richtige File includen. Allerdings hab ich damit noch Probleme:

    <?php
     $seite = array(
      "home" => "home.php",
      "signup" => "signup.php"
     );
    
     if(in_array($_GET['p'], $seite[0])) {
      echo 'Gefunden, Super ;-)';
     }else{
      echo 'Wap Wap Waaaa D;';
     }
    ?>
    Leider kommt immer nur zweitere Meldung, wenn nicht sogar ein Fettzeiler von Meckerziege Lima-City :lol:
    MfG
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. $p = isset($_GET['p']) ? $_GET['p'] : 'home';
    if (isset($seite[$p])) {
        require $seite[$p];
    }
  4. Autor dieses Themas

    limabone

    Kostenloser Webspace von limabone

    limabone hat kostenlosen Webspace.

    Hmm. Ein wenig Text wäre schon nett gewesen Herr/Frau Nikic :slant:
    Naja, der Code funktioniert eigentlich... gar nicht :eek:
    Ich hatte ihn 1:1 kopiert und dann über ?p=home aufgerufen und nichts geschah, kein Inhalt kam. Außerdem hab ich noch immer keine Ahnung, wie ich neue Elemente hinzufügen kann. Mit
    $p[] = 'singup';
    wird das ja schlecht gehen. Kann mir bitte jemand ein Tut Zeigen, aus dem Er/Sie die handhabung mit Arrays in PHP gelernt hat? Ich wäre sehr dankbar.

    EDIT: Mit
    <?php
    if(count($_GET['p']) <= 0) { $p = 'home'; }else{ $p = $_GET['p']; }
    $page = array(
     "home.php"=>"home",
     "signup.php"=>"signup"
    );
    if(in_array($p, $page)) {
     echo 'Gefunden';
    }else{
     echo 'Wap Wap Waaaa';
    }
    ?>
    hats geklappt. Grund war die falsche Wertezuordnung (für alle die das Thema noch verfolgen (sollten)).
    Trotzdem danke Dir Nikic, vielleciht war dein 4-Zeiler eine Hilfe beim Denken... :biggrin:

    EDIT2: Es ist deutlich schneller ;D Selbst bei großen Datenmengen, wie bei der Home-Datei ;D
    Probierts aus (Home und Anmeldelink ist drinnen) => The-Penguins.com

    Beitrag zuletzt geändert: 24.8.2010 20:46:48 von limabone
  5. Hm, ich weiß nicht genau in wie fern mein Code nicht gehen konnte. Hier mal wie er ganz und ungekürzt wäre:

    $pages = array(
        'home' => 'home.php',
        'signup' => 'signup.php',
    ); // beachte, dass es key => file ist, nicht andersrum!
    
    $p = isset($_GET['p']) ? $_GET['p'] : 'home'; // wenn keine Seite angegeben, dann benutze home
    if (isset($seite[$p])) { // checken ob seite existiert
        require $seite[$p]; // wenn ja einbinden
    } else {
        require 'error404.php'; // seite nicht gefunden, fehler ausgeben
    }
  6. bvb-fanclub-nr1-in-sundern

    Kostenloser Webspace von bvb-fanclub-nr1-in-sundern

    bvb-fanclub-nr1-in-sundern hat kostenlosen Webspace.

    Hab' das ähnlich bei meiner Seite gelöst, allerdings prüfe ich noch, ob $_GET['p'] erlaubt ist, indem ich den Schlüssel im Array überprüfe. So kann man da nicht irgendeinen Blödsinn eingeben...
    $page = ((array_key_exists($_GET['p'], $pages) && file_exists($pages[$_GET['p']]))) ? $pages[$_GET['p']] : 'error404.php';


    Beitrag zuletzt geändert: 24.8.2010 22:10:28 von bvb-fanclub-nr1-in-sundern
  7. 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!