phpbar.de logo

Mailinglisten-Archive

[php] Newbie Frage zu includes

[php] Newbie Frage zu includes

Enrico Weigelt weigelt at metux.de
Mit Mai 12 13:02:56 CEST 2004


* Tobias Krais <krais at bats.ch> schrieb:

<snip>
> ich werde das jetzt folgendermassen lösen: Ich habe ein File, in dem
> alle Files auf meiner Seite Registriert sind. Dort werde ich Titel,
> Keywords und Summary reinschreiben.

ja, Du könntest einen hash verwenden, z.b. in der Art:

$topics = array
(
    blah	=> 'blah.inc',
    buh		=> 'buh.inc',
    ...
);

dann sähe Deine include-Anweisung wohl etwa so aus:

if ($_inc = $topics{$topic})
    include ( $_inc );
else
    include ( 'err_no_such_topic.inc' );
    
<snip>
> > Möglicherweise möchtest Du den HTML-Output ohnehin von einer 
> > Template-Engine erzeugen und erst am Schluß ausgeben lassen.
> 
> Jo. Aber erst mal eine gute Template-Engine haben und implementieren.
patTemplate ?
Kann ich Dir recht flott erklären ...

<snip>
> > Übrigends hab ich bei Dir mal 'n bissl mit den URLs gespielt:
> >     http://www.bats.ch/index.php?file5=index.php
> 
> Darüber habe ich mir noch nie Gedanken gemacht. Aber wenn ich mir so
> vorstelle, da includiert einer eine Seite mit einem Dialer in meine
> Site. Ohh... Wie umgeht ihr so was?
Indem man das ganz anders löst. Niemals Filenamen direkt übergeben,
sondern nur Rubriknamen, aus denen dann ein Filename generiert wird. Dabei
mußt Du auch aufpassen, daß Du solche Muster wie '../' immer rauswirfst
und nur bestimmte Zeichen (z.b. [A-Za-z0-9]) durchläßt, damit man nicht
irgentwie einen anderen effektiven Filenamen von außen einschleusen
und damit ein beliebiges file includen kann. Oder Du erfaßt alle Topics
in einer Tabelle und suchst dann darin die benötigten Infos zum 
verlangten Topic raus (siehe oben).

Diese Variante benutze ich u.A. auch beim BTPL (bzw. dessen loader-box) - 
dort gibt es eine Liste von Topics, zu der neben dem verwendeten Modul
noch eine Reihe anderer Parameter angegeben werden. Damit wird u.A. drastisch 
Code gespart, weil die individuellen Informationen (also Inhalte, etc)
hier dem generischen Modul als Parameter übergeben werden.

> OK, der Unterschied ist mir klar. Ich könnte also auf Java umsteigen...
> Spass. Da habe ich noch besseres zu tun.
Das dürfte Dir beim konkreten Projekt aber noch mehr Arbeit bereiten,
als der Umbau auf einen Sitekit oder ein CMS.


cu
-- 
---------------------------------------------------------------------
 Enrico Weigelt    ==   metux IT service

  phone:     +49 36207 519931         www:       http://www.metux.de/
  fax:       +49 36207 519932         email:     contact at metux.de
  cellphone: +49 174 7066481
---------------------------------------------------------------------
 -- DSL ab 0 Euro. -- statische IP -- UUCP -- Hosting -- Webshops --
---------------------------------------------------------------------

php::bar PHP Wiki   -   Listenarchive