PHP Grundaufbau/Seitenaufruf

Stefan Brinkers

Angesehenes Mitglied
ich baue meine Seiten oft wie folgt auf:

CODE
<?php

if (!isset($site)) { $site="./news/index"; }

if (file_exists($site.".html")) { include($site.".html"); }

else if (file_exists($site.".php")) { include($site.".php"); }

else { echo " <br><b><center>Error 404<br><br>Seite
noch in Arbeit</center></b><br> "; }

?>


also mit übergabe von z.B. $site im link und die passende site wird dann included

Ist das eigentlich die intelligenteste Variante, oder gibt es noch bessere/andere?
 
Es ist eigentlich eine gute Lösung. Kenne gerade keine andere.
Nur würde ich exit einbauen oder eine else.

CODE
<?php

if (!isset($site)) {
$site="./news/index";
exit();
}

if (file_exists($site.".html")) { include($site.".html"); }

else if (file_exists($site.".php")) { include($site.".php"); }

else { echo " <br><b><center>Error 404<br><br>Seite
noch in Arbeit</center></b><br> "; }

?>



Oder:



CODE
<?php

if (!isset($site)) {
$site="./news/index";
} else {


if (file_exists($site.".html")) {
include($site.".html");
}
else if (file_exists($site.".php")) {
include($site.".php");
}
else {
echo " <br><b><center>Error 404<br><br>Seite
noch in Arbeit</center></b><br> ";
}
}
?>



Würde aber das hier:
echo " <br><b><center>Error 404<br><br>Seite
noch in Arbeit</center></b><br> ";

weglassen und stattdesen
$site="./news/index"; und dann die Datei includen.

Benutzt du noch eine "alte" PHP Version?
$POST_['site'] statt $site
 
QUOTE (Patrick- @ Mo 20.6.2005, 7:49)Benutzt du noch eine "alte" PHP Version?
$POST_['site'] statt $site

Du meisten wohl $_POST['site'], hier müsste jedoch $_GET['site'] eher verwendet werden, außerdem kann auch bei neueren PHP-Versionen $site verwendet werden bei der Übergabe, dazu muss jedoch innerhalb der "php.ini" ein Eintrag verändert werden.

Ich versuche sowas, wie im Beispiel genannt, zu vermeiden. Dies ist wohl auch mehr Geschmackssache und was einem selber wichtiger ist.


MfG Sascha Ahlers
 
Hatte mich verschrieben.
An die "php.ini" kommt man meist schlecht heran, außer man besitzt einen Rootserver oder ein teures Paket.
 
Yup, aber man kanns wahrscheinlich mit .htaccess steuern.

ini_set()-funktion würd in dem Fall glaub nicht gehn ..
 
Hallo.

QUOTE (madox @ Mo 20.6.2005, 8:33) Yup, aber man kanns wahrscheinlich mit .htaccess steuern.

ini_set()-funktion würd in dem Fall glaub nicht gehn ..

Beides hängt vom Anbieter ab.



QUOTE (Patrick- @ Mo 20.6.2005, 8:12)Hatte mich verschrieben.
An die "php.ini" kommt man meist schlecht heran, außer man besitzt einen Rootserver oder ein teures Paket.


Jepp, drum hab ich das Problem auch nicht. Aber es kann ja sein, dass dies auch vom Anbieter bereits so eingestellt wurde um auch ältere Script zu erlauben, auch wenn es rein sicherheitstechnisch unsinnig wäre.


MfG Sascha
 
QUOTE außerdem kann auch bei neueren PHP-Versionen $site verwendet werden bei der Übergabe, dazu muss jedoch innerhalb der "php.ini" ein Eintrag verändert werden.


Der Eintrag heisst register_globals und muss auf "ON" stehen, um die GET-Parameter gleich in Skriptvariablen zu verwandeln. Dass dies eine grosse Sicherheitslücke sein kann will ich an dieser Stelle nicht nochmal erwähnen.
wink.gif
 
thx@all


QUOTE Der Eintrag heisst register_globals und muss auf "ON" stehen, um die GET-Parameter gleich in Skriptvariablen zu verwandeln. Dass dies eine grosse Sicherheitslücke sein kann will ich an dieser Stelle nicht nochmal erwähnen.


...gut zu wissen. ich habs auf jedenfall nicht eingeschaltet.


statt $_POST['site'] bzw. $_GET['site']
nutze ich normalerweise $_REQUEST['site']

gibts es etwas was dagegen spricht?
 
Sicherheit.
$_POST['site'] bzw. $_GET['site'] sind sicherer als $site.

$_REQUEST['site']
und
$site

müssten doch identisch sein- Sicherheitstechnisch gesehen, oder?
 
QUOTE (Patrick- @ Mo 20.6.2005, 12:20) Sicherheit.
$_POST['site'] bzw. $_GET['site'] sind sicherer als $site.

$_REQUEST['site']
und
$site

müssten doch identisch sein- Sicherheitstechnisch gesehen, oder?

$_REQUEST['site'] ist sicherer als $site, aber im Grunde ist es nur wirklich sicher so lange auch register_globals auch auf Off steht, dies gilt auch für $_GET und $_POST.


MfG Sascha Ahlers
 
QUOTE

QUOTE

Yup, aber man kanns wahrscheinlich mit .htaccess steuern.

ini_set()-funktion würd in dem Fall glaub nicht gehn ..


Beides hängt vom Anbieter ab.



Nein, das kann man nicht mit ini_set() machen. Das geht nur via. php.ini, .htaccess oder httpd.conf.

Greets,
Joel
 
Zurück
Oben