[PHP] Globals Register On

Gebarle

Well-known member
29 April 2007
241
21
auf meinem server steht leider dieses Off.
und dadurch laüft mein Script nicht,

Ich wollte fragen wie ich das ändern kann und zwar so das ich es auch hin bekomme,

Bin nemlich nicht grade beste in sachen Proggen und Server Technik
 
Bin nemlich nicht grade beste in sachen Proggen und Server Technik
Und genau aus diesem Grunde ist es wohl das beste, dass diese Einstellung auf "off" bleibt :yes:
Lies dir im Manual die entsprechenden Pages für die Gründe dafür durch.

P.S. in der nächsten PHP-Version gibt es die Einstellung nicht mehr. Da ist die automatische Registrierung globaler Variablen auf alle Ewigkeit deaktiviert :D Spätestens da wirst du lernen müssen, korrekt zu programmieren.

P.P.S. FG §2: Übertreibungen im Threadtitel sind nicht gestattet. Danke für die Zukunft.
 
theHacker versteht dich schon sehr gut, nur anscheinend du ihn nicht :ugly:
Er wollte dir nur klar machen, dass dein Script mit Register Globals ON viel unsicherer ist ...

Ja aber habe auch gelesen das is im Prinzip keine gefahr ist wenn das script fehlerfrei geproggt wurde,

Weil wenn nicht auf on Steht funkt mein Script nicht . dann nützt es mir auch nichts wenn es sicherer ist
 
Du verstehst nicht ganz.
Ich verstehe sehr wohl, da ich die Konsequenz dieser Einstellung kenne.

Auf Grund von hohen Sicherheitsrisiken wurde die Einstellung mit der PHP-Version 4.2.0 per default auf off gesetzt, eben um stümperhafter und folglich risikoreicher Programmierung einen Riegel vorzuschieben.
Wenn das nicht auf On steht Funkt mein Script nicht mehr
Dein Script ist genau so programmiert, wie es nicht sein soll.

Ersetze alle Variablen, die über GET/POST kommen auch durch entsprechende Zugriffe auf die Superglobalen $_GET[] und $_POST[], dann funktioniert dein Script auch wieder.

Und wie schon angedeutet: Es ist nur noch eine Frage der Zeit, bis solche Scripts gar nicht mehr funktionieren werden, weil die Einstellung in der nächsten stabilen PHP-Version endgültig abgeschafft wird.
 
Ich verstehe sehr wohl, da ich die Konsequenz dieser Einstellung kenne.

Auf Grund von hohen Sicherheitsrisiken wurde die Einstellung mit der PHP-Version 4.2.0 per default auf off gesetzt, eben um stümperhafter und folglich risikoreicher Programmierung einen Riegel vorzuschieben.
Dein Script ist genau so programmiert, wie es nicht sein soll.

Ersetze alle Variablen, die über GET/POST kommen auch durch entsprechende Zugriffe auf die Superglobalen $_GET[] und $_POST[], dann funktioniert dein Script auch wieder.
Und wie schon angedeutet: Es ist nur noch eine Frage der Zeit, bis solche Scripts gar nicht mehr funktionieren werden, weil die Einstellung in der nächsten stabilen PHP-Version endgültig abgeschafft wird.

Dann frag ich mich warum so Scripte noch verkauft werdem.
tzz.

Ok dann werde ich ma anfangen mein Script umzuschreiben
 
Hier noch kurz ein Beispiel, da du mich per PN gefragt hast - hier haben wohl mehr Leute was davon.

Das Formular:
HTML:
<form action="script.php?foo=1" method="post">
<input type="text" name="bar" value="test" />
<!-- ... -->
Falsch: (funktioniert nicht mehr)
PHP:
<?php
if($foo == 1)
  echo "Du hast $bar eingegeben.";
?>
Richtig: (nur noch so coden, dass Scripts für die Zukunft funktionieren)
PHP:
<?php
if($_GET['foo'] == 1)
  echo "Du hast ".$_POST['bar']." eingegeben.";
?>
 
Und wenn dein Script wirklich sicher ist, kannst du folgende Zeilen in den Quellcode packen bis das Script umgeproggt wurde:
PHP:
extract($_GET); 
extract($_POST); 
extract($_COOKIES);

Habe früher (vor 2-3 Jahren) leider auch mit globalen gearbeitet, habe ständig alles unsetet :roll:
 
PHP:
extract($_GET); 
extract($_POST); 
extract($_COOKIES);

(sry, jipii) warum führt eigentlich jeder "Depp" extract an? Für dieses Problem gibt es doch extra import_request_variables().
Also einfach ganz an den Anfang des Scriptes folgendes und fertig:
PHP:
import_request_variables('GPS');



Zum Glück sind wir in absehbarer Zeit die ganze register_globals-Diskussionen los, ach ne, ich vergas, die BilligHoster werdn ja gar nicht auf PHP6 umstellen :-?
 
Zum Glück sind wir in absehbarer Zeit die ganze register_globals-Diskussionen los, ach ne, ich vergas, die BilligHoster werdn ja gar nicht auf PHP6 umstellen :-?
Mit PHP5 wars doch dasselbe. Da wollte am Anfang auch keiner umstellen. Zu Zeiten von 5.1.0 liefen die Provider dann doppelgleißig; also zumindest wenn ich irgendwelche Werbung gesehen hab, stand immer PHP4/PHP5 da. Bei meinem Hoster konnte man z.B. einfach umstellen lassen, man is zwar auf nen anderen Server gekommen, aber das ging ohne Probleme.
Und jetzt, wo wir kurz vor PHP6 stehen, haben doch alle PHP5 installiert. Oder kennt jemand einen Hoster, wo man nur PHP4 bekommt ?
 
also ich kenn einen ^^

lycos/tripod

Based on PHP-4.4.6

bin da grad angemeldet zum bissel php lernen, bin zu faul local server unter vista einzurichten
 
Gebarle schrieb:
Bin nemlich nicht grade beste in sachen Proggen und Server Technik
Richtig: (nur noch so coden, dass Scripts für die Zukunft funktionieren)
PHP:
<?php
if($_GET['foo'] == 1)
  echo "Du hast ".$_POST['bar']." eingegeben.";
?>
In dem Fall ist das Beispiel aber auch nicht ganz ungefährlich.
Ungeprüfte Werte in ein Skript übernehmen ... *tststs* ;)

Ich denke ganz allgemein dürfte hier PHP-FAQ.de eine gute Hilfe sein.
 
(sry, jipii) warum führt eigentlich jeder "Depp" extract an? Für dieses Problem gibt es doch extra import_request_variables().
Also einfach ganz an den Anfang des Scriptes folgendes und fertig:
PHP:
import_request_variables('GPS');



Zum Glück sind wir in absehbarer Zeit die ganze register_globals-Diskussionen los, ach ne, ich vergas, die BilligHoster werdn ja gar nicht auf PHP6 umstellen :-?


Vielen dank das hat geklappt