PHP include unter PHP 5

T

TeisT

Aktives Mitglied
Thread Starter
Dabei seit
16.11.2003
Beiträge
126
Reaktionspunkte
0
Hallo,

nach meinem Festplattencrash habe ich komplett wieder PHP installieren müssen. Meine Website hatte ich damals mit PHP 4 aufgebaut und es hat prima funktioniert. Nach dem Update funktioniert das include nun nicht mehr. Hat sich da etwas geändert?

So funktioniert es unter PHP 4:

HTML:
php

$action = $HTTP_GET_VARS["action"];
if(!isset($action))
{
include("aktuelles.php");
} 
else 
{
if(file_exists("$action.php")) 
{ 
include("$action.php"); 
} 
else 
{ 
echo"<b>Seite nicht vorhanden!</b>"; 
} 
}

Nun wird nichts mehr geladen aber es kommt auch keine Fehlermeldung. :confused:

Danke!
 
Wie wärs mit:

PHP:
<?php

$action = $HTTP_GET_VARS["action"];

if(!isset($action)) {
    include("aktuelles.php");
} else {
    if(file_exists($action.".php")) { 
        include($action.".php"); 
    } else { 
        echo"<b>Seite nicht vorhanden!</b>"; 
    } 
}
?>

So (oder so ähnlich) müsste es funktionieren. Deshalb niemals Variablen in Strings schreiben und drauf hoffen, dass die Sprache schon selbst damit klar kommt.
 
Es stimmt schon, was Kahler sagt. Am besten nutzt Du noch die 'einfachen Anführungszeichen' dann muss PHP den String auch nicht mehr nach Variablen durchsuchen.

Dein Problem liegt aber an einer anderen Stelle: HTTP_GET_VARS ist veraltet.

Nutze $_GET, $_POST oder gleich $_REQUEST.
 
Ok, danke erstmal! Ehrlich gesagt bin ich ja nicht so der non-printler! ;-) Ist das Aufwändig umzuschreiben bzw. wonach muss ich bei Google suchen?
 
kahler schrieb:
So (oder so ähnlich) müsste es funktionieren. Deshalb niemals Variablen in Strings schreiben und drauf hoffen, dass die Sprache schon selbst damit klar kommt.
naja, das wird von php aber explizit zur verfügung gestellt...variablen in doppelt angeführten strings werden textuell ersetzt.

teist:
im prinzip ersetzt du $HTTP_GET_VARS durch $_GET...müsste so sein.
 
Ja, cool! So funktioniert es schon. Danke! Habt ihr zufällig noch eine PHP-Buch-Empfehlung für mich? Möglichst mit vielen Praxisbeispielen?
 
Je nachdem wie tief Du in die Materie einsteigen willst. Wenn Du wirkliche Programmiertechniken anwenden möchtest und nicht nur 08/15 Scriptkiddie spielen willst (was für die eigene HP ja voll ok ist) empfehle ich Dir „Besser PHP programmieren“ von Carsten Möhrke (Galileo Verlag). Auch für Anfänger verständlich, jedoch schon höheres Niveau.

Für den ganz kleinen Einstieg, gibt's ein paar Dummy-Bücher bei Amazon. Den Empfehlungen da konnte ich bis jetzt immer gut trauen.
 
aus grundsaetzlichen überlegungen zum thema sicherheit ist davon abzuraten, einen include aus den uebergebenen werten zu erstellen. das file_exists ist ganz nett, aber nicht wirklich hilfreich. was ist wenn ich ein bisschen rumrate und z.b. mal "action=admi" ausprobieren. ist sichergestellt, dass ich nicht aus versehen dateien erwische, die mich gar nix angehen. was ist mit "../../../xxxx" oder noch schlimmer "action=http://boese.site/einbruch"?

markus
 
Du hast schon Recht, wenn man nach obigem Bsp. vorgeht. Muss man aber nicht, man kann das ja ausbauen. Übergabe der Parameter im $_GET Array, dann Prüfung derselben auf Validität (Typ/Wertebereich) und Verknüpfung des Parameters mit einem String in Abhängigkeit des Wertes. Passt der Wert nicht, wird ein Default gesetzt.

So kann nichts passieren.

2nd
 
Zurück
Oben Unten