PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : datei.php?action= funktioniert nicht



Easyy-S
18.10.04, 22:46
Ich betreibe seit gut einem Jahr ein eigenes board ( woltlab burning board ).
Dieses war bis dato mittels webpack gehostet.
Das board lief anstandslos.

Nun hab ich das board auf einen root-server umgehostet auf dem suse 9.1 und der apache2 läuft.
Soweit auch alles gut.
Was aber nicht funktioniert sind urls, die ein "action" enthalten.

http://www.url.de/datei.php?ACTION=

Wir haben im board drei Sachen die dieses "action" nutzen und alle drei funktionieren nicht.
Daher meine Vermutung, daß es an dem "action" liegt.

Was ist zu tun, damit dies funktioniert ??!

Please help :(

WilliaM
18.10.04, 22:49
mrunix.de <- da mal fragen...

Easyy-S
18.10.04, 23:14
Danke für den Tipp.

Hab mein Glück mal bei mrunix versucht.

Aber ich denke, daß sich hier bestimmt auch jemand finden wird, der mir helfen kann.

digitaltom
18.10.04, 23:23
Hallo, eine Vermutung:
Du mußt über

$HTTP_GET_VARS['action']
auf den Parameter zugreifen, das war bei älteren PHP-Versionen
noch nicht notwendig.

Easyy-S
18.10.04, 23:42
Hallo, eine Vermutung:
Du mußt über

$HTTP_GET_VARS['action']
auf den Parameter zugreifen, das war bei älteren PHP-Versionen
noch nicht notwendig.

Öhm. Da muss ich doch mal ganz dumm fragen, wo dieser Parameter eingetragen oder geändert werden muss ?! :confused:

digitaltom
18.10.04, 23:56
> wo dieser Parameter eingetragen oder geändert werden muss ?

an der Stelle im PHP-Code, wo du auf den Parameter "ACTION" zugreifen willst.
Ich bin mir aber nicht so sicher ob dein Problem verstanden wurde,
die Beschreibung läßt doch einigen Spielraum zur Spekulation ;-)
MfG

Easyy-S
19.10.04, 00:00
an der Stelle im PHP-Code, wo du auf den Parameter "ACTION" zugreifen willst.

Ach so.
Ich dachte, daß wäre ein Problem des webservers oder des installierten php´s.
Dann werd ich mich mal durch den code der betroffenen Seiten wuseln und nach entsprechenden Passagen suchen.
Wenn es funktioniert hat, geb ich bescheid.

Easyy-S
19.10.04, 00:24
Ich hab deinen Tipp gerade mal getestet.
Wenn ich dich richtig verstanden hab, dann trage ich in die php-Datei mit der ich Probleme habe,
einfach in eine der ersten Zeilen

$HTTP_GET_VARS['action'];
ein ??!

Das führte leider zu keinem Erfolg.

WilliaM
19.10.04, 05:25
sagmal, dumme frage... kannst du ueberhaupt php oder schreibst du in irgend nem forum jetzt einfach ohne plan rum?

Easyy-S
19.10.04, 05:32
Ich würde nicht behaupten, daß ich php kann.
Auf keinen Fall.
Um etwas ganz neues zu entwickeln fehlt mir die nötige Ahnung.
Ich habe mich bisher immer nur mit Änderungen und Überarbeitungen gekümmert.

sowatt
19.10.04, 06:14
Hi,
schreib mal den ganzen Link hier rein, und kontrolliere
gleich mal ob die register_globals auf 'off' stehen.
Dann sollten wir doch wohl eine Lösung finden...

Außerdem ist $HTTP_GET_Vars['wert'] schon längst überholt, das globale
Arry heisst jetzt $_GET['wert'].

MfG
sowatt

MichlS
19.10.04, 16:58
ich würd mal in deiner php.ini nach der zeile "REGISTER_GLOBALS" suchen und das OFF auf ON ändern

dann wird eine GET auch an den HTTP übergeben ...

:eek:

Easyy-S
20.10.04, 08:59
Hi,
schreib mal den ganzen Link hier rein,

Eine Seite unseres boards wäre zB diese hier: http://www.deronlinetreffpunkt.de/wbb2/kniffel_play.php?sid=
Dort findest du drei links ( Anleitung, Spielen, Highscore ) welche alle nicht mehr funktionieren.

munkmill
20.10.04, 09:54
ich würd mal in deiner php.ini nach der zeile "REGISTER_GLOBALS" suchen und das OFF auf ON ändern

dann wird eine GET auch an den HTTP übergeben ...

:eek:

Das würde ich nicht tun, da damit ein Sicherheitsrisiko entstehen kann.

Sicherer und auch empfohlen ist die Lösung von sowatt. Auf GET- und POST-Variable wird inzwischen per $_GET bzw. $_POST zugegriffen.

Jan

sowatt
20.10.04, 14:46
Hi,
was steht den in 'kniffel.php' drin? Dort werden die per GET übertragenen
Daten nämlich nicht empfangen.
Vermutlich wird direkt auf die Variable $action zugegriffen, das kann aber
nicht klappen wenn das Board auf einer neueren PHP Version mit
register_globals = off läuft.

Schieb mal eine Datei auf den Server die Du tester.php nennst und in der
nur folgendes steht:
<?php
phpinfo ();
?>

Wenn Du diese Datei aufrufst, solltest du sehen können wie die register_globals eingestellt sind.

Ansonsten mal die kniffel.php herzeigen dann kann man das warscheinlich schnell erkennen.

MfG
sowatt

Easyy-S
21.10.04, 08:21
Hi,
Ansonsten mal die kniffel.php herzeigen dann kann man das warscheinlich schnell erkennen.

MfG
sowatt

Hier ist die kniffel.php




Wenn Du diese Datei aufrufst, solltest du sehen können wie die register_globals eingestellt sind.

Wie du schon richtig vermutet hast, steht register_globals auf "off".

Easyy-S
21.10.04, 08:38
Das würde ich nicht tun, da damit ein Sicherheitsrisiko entstehen kann.

Sicherer und auch empfohlen ist die Lösung von sowatt. Auf GET- und POST-Variable wird inzwischen per $_GET bzw. $_POST zugegriffen.

Jan

Ich habe gerade mal getestet ob es funktioniert, wenn ich register_globals auf "on" stelle.
Ergebnis: es funktioniert wieder alles so wie es soll.

Nun sagt munkmil aber, daß dadurch ein Sicherheitsrisiko entstehen kann.
Somit tendiere ich dazu, es wieder auf "off" zu stellen.
Dann stellt sich mir aber die Frage, wie aufwändig es in Zukunft wird, php-Dateien umzuschreiben, die alle noch das "alte action" verwenden.
Müssen in einer php-Datei alle "$action=" dann ausgetauscht werden, oder kann ich eine zentrale Variable in den jeweiligen php´s setzen ?!

sowatt
21.10.04, 11:37
Hi,
das beste wäre wenn es eine Aktualisierte Version deiner Skripte
gibt. Diese register_globals Einstellung ist ja nicht ganz neu(seit Version 4.1.1).

Ansonsten, um dein Kniffel erstmal wieder zum laufen zu bringen, musst Du
das if z.B. in Zeile 22 in $_GET['action']=="anleitung" anstatt $action=="anleitung" umschreiben.

Das kann schon einiges an Arbeit sein, ist aber besser als die register_globals
auf on zu setzen.

MfG
sowatt

delmonico
21.10.04, 11:56
Wenn du weißt, welche Variablen alle per HTTP GET übertragen werden sollen, kannst du diese doch am Anfang des Scripts mit "$variable=$_GET['variable'];" zuweisen, dann brauchst dus nicht überall im Code zu ändern...

MfG, del

MichlS
21.10.04, 12:02
Ansonsten, um dein Kniffel erstmal wieder zum laufen zu bringen, musst Du
das if z.B. in Zeile 22 in $_GET['action']=="anleitung" anstatt $action=="anleitung" umschreiben.

Das kann schon einiges an Arbeit sein, ist aber besser als die register_globals
auf on zu setzen.


wenns ein gästebuch script wäre würde ich sagen, ja umschreiben
aber bei nen zb. grossn forum mit 80 hacks und mods viel spass beim umcoden ... das würd ich mir nicht antun .. software wechseln welche auf reg. glob. off auch funzt.