Supportnet / Forum / Skripte(PHP,ASP,Perl...)
PHP-Datei mit PHP erzeugen?
Frage
Wenn ich per PHP mit include() eine Datei einfüge, ist das Ergbnis (was dem Benutzer im Browser angezeigt wird) eigentlich eine PHP- oder eine HTML-Seite? Kann man das ggf. vorgeben?
Antwort 1 von Nessus
Hi,
es ist immer eine HTML-Ausgabe, PHP wird Serverseitig abgearbeitet. Wenn Du etwas zu sehen bekommst, ist das Script schon längst fertig mit der Arbeit. Das hat auch nichts mit include() zu tun.
Nessus
es ist immer eine HTML-Ausgabe, PHP wird Serverseitig abgearbeitet. Wenn Du etwas zu sehen bekommst, ist das Script schon längst fertig mit der Arbeit. Das hat auch nichts mit include() zu tun.
Nessus
Antwort 2 von sutadur
Vielleicht doch! Ich hab doch noch immer das Problem, das hier behandelt wird. Dazu ist mir eingefallen dass es doch daran liegen könnte, dass, wenn eine Datei indludiert wird, das Ergebnis als HTML dargestellt wird. Wenn nun aber in der includierten Datei weitere Dateien per include() eingebunden sind, dieser Befehl aber "nur" als HTML-Text und nicht als PHP-Befehl interpretiert werden, scheint es logisch, dass diese Befehle nicht ausgeführt werden, wie das eben bei meinem Problem der Fall ist ...
Antwort 3 von semi
Mach' mal einen Versuch
main.php
Bei mir funktioniert es einwandfrei.
Ich habe PHP 4.1.2 und Apache 2.0.35
Möchtest Du den Sourcecode ausgeben, dann nicht über include sondern mit
z.B.
Gruß,
Michael
main.php
<?php
echo "main<br>";
include('menu.php');
?>menu.php<?php
echo "menu<br>";
include('submenu.php');
?>submenu.php<?php
echo "submenu<br>";
?>Bei mir funktioniert es einwandfrei.
Ich habe PHP 4.1.2 und Apache 2.0.35
Möchtest Du den Sourcecode ausgeben, dann nicht über include sondern mit
z.B.
<?php
readfile('menu.php');
?>
Gruß,
Michael
Antwort 4 von Nessus
Hi,
@sutadur
Du machst eine Denkfehler, es ist wirklich so, das Du das PHP-Script nie zu gesicht bekommst, lediglich die Ausgabe, mehr nicht und die ist dann HTML-Code.
Natürlich kannst Du include() verschachteln, das ist so eine "Unart" von mir, probiere mal den Tipp von Semi, dann wirst Du weitersehen.
Nessus
@sutadur
Du machst eine Denkfehler, es ist wirklich so, das Du das PHP-Script nie zu gesicht bekommst, lediglich die Ausgabe, mehr nicht und die ist dann HTML-Code.
Natürlich kannst Du include() verschachteln, das ist so eine "Unart" von mir, probiere mal den Tipp von Semi, dann wirst Du weitersehen.
Nessus
Antwort 5 von sutadur
Ok, da ich das Beispiel auch mal ausprobiert habe und es einwandfrei funktionierte, muß es wohl an was anderem liegen. Dazu mal das Beispiel am "lebenden Objekt": Es geht um diese Webseite, z.Zt. noch ein Preview, d.h. noch nicht offiziell online. Dort sind auf jeder Seite includiert die Navigation links sowie der Newsletter-Block rechts. Klickt dort bitte mal, ohne eine Email-Adresse einzugeben, auf den Send-Button. Daraufhin erscheint eine Webseite, die eine Fehlermeldung ausgibt ("keine Email-Adresse eingegeben) - soweit ist das auch ok! Aber: Das Menü und der Newsletter werden nicht mehr angezeigt! Wenn man in den Quelltext schaut ist dabei zu sehen, dass die require-Befehle zwar vorhanden sind, aber leider nicht entsprechend interpretiert werden. Vielleicht kann mir jemand auf diesem Weg einen Tip geben, woran das liegen kann ...
Antwort 6 von mm_go
Also wenn ich versuche die Seite aufzurufen, bekomme ich nur ein Forbidden.
Stimmen deine <?php ?> Tags?
Stimmen deine <?php ?> Tags?
Antwort 7 von sutadur
Die Tags stimmen .. hab aber auch das Demo inzwischen mal vom Netz genommen, werd nochmal ein wenig am Script rumschnippeln ... danke für die Mühe! :o)

