PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ?show=... verlinkung funktioniert nicht



pongmatrix
22.08.03, 23:59
Hi,

hab ein problem mit php bzw. apache.

will in meiner php datei links verwenden wie z.b. ?show=home. dann soll er die home.php includen. nur leider macht er das nicht. er zeigt immer noch die standard php datei an die ich includiert hab.
der code stimmt! dessen bin ich mir sicher, haben auch andere gesagt!

hab an den apache und php conf dateien nix verändert.

woran liegt das und wie kann ich machen, das das endlich geht???

Trendman
23.08.03, 00:08
hast Du Dir mal am Anfang Deines Skripts anzeigen lassen, was in der variable show drinsteht???

smf68
23.08.03, 00:11
include $_GET["show"] . ".php";

geht das nicht ?

LINUXRH7
23.08.03, 00:24
Register_Globals in der /etc/php.ini setzen. Die Übergabe von Variabeln in der URL geht bei den neuen Versionen nicht mehr bzw. ist deaktiviert aus Sicherheitsgründen.

cat /etc/php.ini | grep -i global
; Whether or not to register the EGPCS variables as global variables. You may
; want to turn this off if you don't want to clutter your scripts' global scope
; register_globals to be on; Using form variables as globals can easily lead
register_globals = on

Gruss
LiNUXrh7

Stanislaus
23.08.03, 11:27
Original geschrieben von LINUXRH7
Register_Globals in der /etc/php.ini setzen. Die Übergabe von Variabeln in der URL geht bei den neuen Versionen nicht mehr bzw. ist deaktiviert aus Sicherheitsgründen.

cat /etc/php.ini | grep -i global
; Whether or not to register the EGPCS variables as global variables. You may
; want to turn this off if you don't want to clutter your scripts' global scope
; register_globals to be on; Using form variables as globals can easily lead
register_globals = on

Gruss
LiNUXrh7
Lass das bloß sein! Register Globals sollte man NIEMALS aktivieren.
Steht auch tasuendfach auf php.net!

eine per ?dingens=bumens übergebene Variable kannst Du auf jeden Fall ohne register Globals per $_GET['dingens'] abfragen.

Wenn das nicht geht liegt das Problem irgendwo anders.

So denn ...

pongmatrix
23.08.03, 12:22
also wenn ich REGISTER_GLOBALS = on setze gehts!

mit $_GET['dingens'] hab ichs auch schon probiert gehabt. da wollte das aber auch nie so richtig

Stanislaus
23.08.03, 18:32
register Globals ist in Bezug auf Sicherheit sehr in Verruf geraten und daher auch eigentlich nicht mehr empfehlenswert.
Welche PHP Version setzt Du denn ein?
Ab der 4.3 gehts afaik wie o.g. problemlos.

Wenn das eh nur für einen lokalen Server ist oder Sicherheit eh nicht so die Rolle spielt kannst Du die Globalen Variablen auch anschalten. Manche Groupware etc.. dinger (z.B. phpNuke, Geeklog ...) benötigen auch unbedingt globale variablen.
Aber es ist mittlerweile hundertprozentig möglich auf diese zu verzichten und immer wieder wird dazu geraten.

So denn ...

[RCS]Axis
25.08.03, 22:24
Original geschrieben von smf68
include $_GET["show"] . ".php";

geht das nicht ?

ich würde das so machen:

include("./".$_GET['show'].".php");

allerdings handelst du dir eine gute sicherheitslücke ein...
man sollte die variable $_GET['show'] vor dem includen noch mal überprüfen, sonst könnte jemand ja "ausversehen" falsche seiten includen...

-Sensemann-
26.08.03, 06:59
www.mrunix.de schwesterforum für Programmierung.

niemals! Register GLobals auf ON!