• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] php "verschluckt" Variablen bei der Ausg

ForestJump

Newbie
Hi,

ich habe folgendes Problem:

Immer wenn ich auf meinem Http Server folgenden PHP-code
Code:
echo "Notiz = $notiz";
ausführen lasse, bekomme ich folgendes ergebniss:
Fehler an meinem Code kann ich ausschliessen, da ich die entsprechenden Dateien auf meinen Webserver geladen und getestet habe. Dort funktionierte dann alles so wie es sollte.

Meine Frage ist jetzt, da der Fehler bei meinem Testserver liegt, ob ich PHP neu aufspielen soll oder nicht richtig eingebunden habe.
Da ich weiss wie ich weiter vorgehen soll. Kann ich auch leider keine weitern Informationen geben.

Ausser die Daten unter denen der http-Server läuft.
Suse 8.1
php 4.2.2

Wenn noch irgentwelche Informationen fehlen liefere ich sie natürlich nach (insofern ich das kann.)

Danke jetzt schonmal für eure Mühen.
 

nbkr

Guru
Lass mich mal meine Kristallkugel rausholen. Also ich sehe hier auf deinem Webserver läuft PHP 4.1.x oder kleiner. Auf dem Testserver läuft PHP 4.2.2. $notiz eine Variable die Du per URL oder per Formular übergeben hast. Auf dem Testsystem hast Du in der php.ini register_globals auf "off" gestellt.

Wenn ich in etwa richtig liege, dann mach auf dem Testsystem entweder "register_globals" auf on, oder was besser ist, benutze $_GET['notiz'] oder $_POST['notiz'], je nachdem wie die Notiz übertragen wird.

Da steht noch mehr dazu:
http://www.selfphp.com/forum/showthread.php?t=9534&highlight=standardposting
 
OP
ForestJump

ForestJump

Newbie
Hut ab!

Danke für die schnelle Hilfe.

Ich bin abermals von diesem Forum begeistert.

*freu*

aso. Habe den Wert auf on gesetzt. Werde das andere jetzt ausprobieren, da es wohl besser ist. Ich kann das zwar nicht beurteilen vertraue aber erfahreren "Hackern".
 

nbkr

Guru
ForestJump schrieb:
aso. Habe den Wert auf on gesetzt. Werde das andere jetzt ausprobieren, da es wohl besser ist. Ich kann das zwar nicht beurteilen vertraue aber erfahreren "Hackern".

Folgendes Beispiel verdeutlich das Problem welches mit den $_ Variablen gelöst wurde:

Du hast ein PHP Script, welches eine Formularvariable prüft (ein Passwort) und falls es richtig ist, eine andere Variable setzt.
Code:
if ($passwort == 'blubb') {
$zeigegeheim = true;
}

if ($zeigegeheim == true) {
echo 'Ganz geheimer Teil der Seite';
}

Wenn register_globals of on steht kann ein Angreife die Seite einfache mit seite.php?zeigegeheim=true aufrufen und sieht den geschützten Teil auch ohne Passwort. Mit register_globals auf off geht das nicht mehr.

Eigentlich wäre die Änderung nicht nötig gewesen, wenn die Leute ordentlich programmieren würden. Folgendes hätte das Problem nämlich auch gelöst:

Code:
$zeigegeheim = false;
if ($passwort == 'blubb') {
$zeigegeheim = true;
}

if ($zeigegeheim == true) {
echo 'Ganz geheimer Teil der Seite';
}
 
Oben