include erklären

Pencil

Gesperrt
Ja.. Ich wollte mal fragen wie man diesen include am besten erklären kann und habe es selbst mal probiert. Aber ich denke das es nicht ganz den Punkt trifft. könnt ihr mir helfen?

Code:
<?php
if(empty($site) || !isset($site)){$site="willkommen.php";}
include("$site.php");
?>


Nun zur Erklärung.
$site ist die Variable welcher im andere Werte(in unserem Fall die Websiten) übergeben werden.
empty() heisst leer und wird immer dann richtig sein, wenn die Variable nicht definiert wurde.
$site wurde vorher noch nicht definiert und ist somit "leer".
Wenn diese Funktion leer ist, dann(dafür stehen die zwei Striche) wird der leeren Funktion
die willkommen.php übergeben.
!isset ist nichts anderes als empty und !empty nichts anderes als isset.
Bei isset bzw. !empty wird überprüft ob die Variable nicht leer, also definiert ist.

Die Veränderungen der Klammern könnte man so erklären:

if(empty($site) 

Wenn die >Seite leer< ist, dann

!isset($site)

wird die >leere Seite<

{$site="willkommen.php";}

willkommen.php :).

Ansonsten wird die Seite eingelesen, die man angeklickt hat und die durch eine entsprechenden Linktechnik versehen wurde.

Hope You Help
 
Also die beste Erklärung für include() an sich findet sich wohl auf http://de.php.net/include/. Danach als Parameter übergebene Werte als Dateinamen zu interpretieren und so einzubinden sollte doch eigentlich verständlich sein. Ich sehe da jetzt nicht unbedingt einen großartigen Erklärungszwang. Zumindest nicht, wenn man sich mal ein bisschen mit der Theorie der Programmierung oder auch nur einem kleinen PHP-Buch auseinandergesetzt hat.

Allerdings ist da ein noch Fehler in deiner Erklärung:
!isset ist nichts anderes als empty und !empty nichts anderes als isset.
isset() überprüft, ob Variablen überhaupt definiert sind, also nicht NULL sind. Wobei NULL wirklich KEIN WERT bedeutet.
empty() hingegen überprüft, ob die Variable einen als 0 interpretierbaren Wert besitzt. Dies können z.B. die Werte 0, "0", NULL, false oder auch ein leeres Array sein.

Auch diese "zwei Striche", die ein logisches ODER also OR darstellen, sorgen nicht für die spätere Zuweisung, sondern verknüpfen die Ergebnisse der Funktion empty() und isset(). Diese ODER-Verknüpfung macht allerdings keinen Sinn, da empty() bereits das mögliche true, das sich aus !isset() ergeben könnte beinhaltet.
(Vielleicht hat jemand eine Seite, wo logische Verknüpfungen besser erklärt werden? Ich finde grade keine.)

Auch in der Erklärung weiter unten scheinst du das OR (||) mit einem THEN aus anderen Sprachen zu verwechseln.

Weiterführende Links:

Logische Operatoren in PHP: http://de.php.net/manual/de/language.operators.logical.php
isset(): http://de.php.net/isset
empty(): http://de.php.net/empty

ciao, Fluke ;)
 
hi,

auf die schnelle fällt mir das ein:

<div>
<?PHP
//prüfen, ob die variable existiert
if (!isset($HTTP_GET_VARS["file"]))

//wenn nicht, dann wird die var. $file gesetzt
$file = "deineseite.php";
//hier natürlich deinen pfad zur ERSTEN datei. zb. "start.htm"
else

//sonst, wird die variable mit werten übernommen
$file = $HTTP_GET_VARS["file"];

//prüfen, ob die datei überhaupt existiert
if (file_exists($file)) include($file);
?>
</div>

und im link dann:

<a href="index.php?file=deineseite2.htm">deineseite2</a>
 
@fluke thx
@thally
ist das jetzt nen script das auch für den include (genauso wie das was ich gezeigt habe) geht?

hope you help

:)
 
@pencil:

ja ich denke schon. es ist ja so, dass die index.php immer neugeladen wird mit dem unterschied, dass das skript die/eine variable aus dem entspr. link übernimmt und darauf hin dann die datei includet. also die unterseiten. man achte dabei dann aber darauf, dass die "unterseiten" KEIN html-grundgerüst besitzen!!

gruss, thally

p.s.: bei meiner seite (http://www.thally.de) habe ich diese technik auch verwendet - kannste ja schauen, ob es so ist wie du meinst...
 
ja ist genauso:), aber es ist doch nicht schlimm wenn man <html> definiert oda? (hatte damit eigentlich noch kein problem)
hope you help

:)
 
ich weiss nicht, aber ich finde das schon sehr schlimm, wenn die includete datei ein html-grundgerüst besitzt... html-tags is klar - kein problem... aber ein html-gg in der includeten datei? was meinste wie der quelltext dann im browser ausschaut und was würde der validator dazu sagen???

gruss, thally
 
Zurück