Knifflige Array Funktion für eigenes CMS
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ahnung
array
bohne
code
dank
datenmenge
einbinden
frau
gefunden fehler
handhabung
herr
lange warten
lokalen datei
meldung
page
schauen
schlecht gehen
url
verfolgen
zeigen
-
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 ) 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:
Leider kommt immer nur zweitere Meldung, wenn nicht sogar ein Fettzeiler von Meckerziege Lima-City<?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;'; } ?>
MfG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
$p = isset($_GET['p']) ? $_GET['p'] : 'home'; if (isset($seite[$p])) { require $seite[$p]; }
-
Hmm. Ein wenig Text wäre schon nett gewesen Herr/Frau Nikic
Naja, der Code funktioniert eigentlich... gar nicht
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
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.$p[] = 'singup';
EDIT: Mit
hats geklappt. Grund war die falsche Wertezuordnung (für alle die das Thema noch verfolgen (sollten)).<?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'; } ?>
Trotzdem danke Dir Nikic, vielleciht war dein 4-Zeiler eine Hilfe beim Denken...
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 -
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 }
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage