Variablen in URL
Michi M.
- php
Hallo zusammen
Bei mir zu Hause habe ich eine Entwicklungsumgebung mit Apache, PHP und einem MS-SQL Server. Alles läuft einwandfrei.
Jetzt habe ich, dasselbe noch auf einer VMWare installiert und habe jetzt aber das Problem, dass in meinem Script eine Variable zwar in die URL übernommen wird, diese aber in der Ziel php Datei nicht mehr mit zB. $id auslesbar ist. Ausser ich mache in der Ziel Datei eine neue Variable die heisst $id = $_GET["id"]...dann läufts.
Warum kann ich auf einem System $id auslesen und auf dem anderen muss ich $id = $_GET["id"] schreiben.
Kommt mir in den Sinn...ich habe nicht auf beiden Orten die selbe Apache Version (XAMPP installation).
Bin dankbar für jeden Tipp.
Gruss
Michi
Entschuldigt mein übereifriges Posting....habe die Lösung in den weiten des Dr. Google doch noch gefunden.
Warum kann ich auf einem System $id auslesen und auf dem anderen muss ich $id = $_GET["id"] schreiben.
Kommt mir in den Sinn...ich habe nicht auf beiden Orten die selbe Apache Version (XAMPP installation).
Im php.ini mussten die register_globals auf On gestellt werden.
Schönen Tag noch
Michi
Im php.ini mussten die register_globals auf On gestellt werden.
Bitte überlege Dir nochmals warum die register Globals neuerdings auf OFF stehen! Diese einfach wieder auf ON zu stellen wäre nicht gerade vorteilhaft und bezüglich Häckern gefährlich.
Guma
Im php.ini mussten die register_globals auf On gestellt werden.
Bitte überlege Dir nochmals warum die register Globals neuerdings auf OFF stehen! Diese einfach wieder auf ON zu stellen wäre nicht gerade vorteilhaft und bezüglich Häckern gefährlich.
Bin noch daran mich aus den anderen Postings schlau zu machen. Leider habe ich jetzt gerade keinen Zugriff auf mein Testsystem zu Hause um zu schauen, wie dort die Globals eingestellt sind. Ansonst wäre es aber nicht so schlimm, da ich nicht am Netz bin, mit diesem Server. Bin noch nicht all zu lange am PHP programmieren...muss mal schauen, wie du sagst, wieso diese auf OFF gestellt sind...bzw. für was diese Globals überhaupt gut sind!
Dank an alle
Gruss
Michi
echo $begrüßung;
[...] muss mal schauen, wieso diese auf OFF gestellt sind...bzw. für was diese Globals überhaupt gut sind!
Siehe Using Register Globals (in der deutschen Übersetzung fehlen Teile).
echo "$verabschiedung $name";
Hi,
Ansonst wäre es aber nicht so schlimm, da ich nicht am Netz bin, mit diesem Server.
es ist selten ratsam, das Entwicklungssystem signifikant von potenziellen Deploymentsystemen abweichen zu lassen.
Cheatah
Hallihallo!
Bin noch nicht all zu lange am PHP programmieren...muss mal schauen, wie du sagst, wieso diese auf OFF gestellt sind...bzw. für was diese Globals überhaupt gut sind!
Bei diesem Wissensstand ist es umso wichtiger, sich gleich die bessere und sicherere Methode, also die Verwendung von $_GET, $_POST etc. anzueignen. Später, wenn Du die Gefahr wirklich verstanden hast, fällt die Umgewöhnung sonst nur unnötig schwer.
Viele liebe Grüße,
Der Dicki
(auch PHP- Neuling. Ich spreche aus Erfahrung, den meisten erfahrenen Postern hier kann man, gerade in Sicherheitsfragen, durchaus vertrauen)
echo $begrüßung;
Im php.ini mussten die register_globals auf On gestellt werden.
Das ist im Allgmeinen eine schlechte Idee. Verwende lieber $_GET/$_POST, das klappt auf jedem System (außer auf hornalten) und es werden auch nicht ohne dein Wissen globale Variablen angelegt. Es ist auch nicht erforderlich Extra-Variablen mit den $_GET/$_POST-Werten anzulegen ($x = $_GET['x']).
echo "$verabschiedung $name";
Hi,
Kommt mir in den Sinn...ich habe nicht auf beiden Orten die selbe Apache Version (XAMPP installation).
daran liegt es nicht. Es liegt eher an verschiedene Einstellungen für Registerglobals.
Weitere Infos dazu findest du z.B. hier: < http://manuals.phpforum.de/php/security.globals.php> oder hier: < http://de2.php.net/register_globals>
MfG,
Juan
echo $begrüßung;
[...], dass in meinem Script eine Variable zwar in die URL übernommen wird, diese aber in der Ziel php Datei nicht mehr mit zB. $id auslesbar ist. Ausser ich mache in der Ziel Datei eine neue Variable die heisst $id = $_GET["id"]...dann läufts.
Warum kann ich auf einem System $id auslesen und auf dem anderen muss ich $id = $_GET["id"] schreiben.
"PHP-Variablen" und "URL" passt nicht wirklich zueinander. In der URL kann ein Querystring übertragen werden, der, wenn er eine bestimmte Form hat, von PHP analysiert und aufgedröselt in $_GET bereitgestellt wird. Früher wurden auch noch automatisch Variablen angelegt, doch dieses Feature ("Register Globals") ist seit geraumer Zeit standardmäßig nicht mehr eingeschaltet.
echo "$verabschiedung $name";
Hi,
Bei mir zu Hause habe ich eine Entwicklungsumgebung mit Apache, PHP und einem MS-SQL Server. Alles läuft einwandfrei.
Jetzt habe ich, dasselbe noch auf einer VMWare installiert und habe jetzt aber das Problem, dass in meinem Script eine Variable zwar in die URL übernommen wird, diese aber in der Ziel php Datei nicht mehr mit zB. $id auslesbar ist.
falsch. Du hast das Problem, dass auf Deinem heimischen System ein URL-Parameter in einer gleichnamigen Variablen im globalen Scope resultiert. Korrigiere die Konfiguration Deines lokalen Servers.
Warum kann ich auf einem System $id auslesen
Das ist mir ebenfalls schleierhaft. Dieses Sicherheitsrisiko sollte eigentlich vor Jahren schon ausgemerzt worden sein. Es scheint aber wie Unkraut ständig wieder empor zu sprießen.
Cheatah