Heim > php教程 > PHP开发 > Erfahren Sie mehr über register_globals

Erfahren Sie mehr über register_globals

黄舟
Freigeben: 2016-12-13 17:43:42
Original
2090 Leute haben es durchsucht

register_globals ist in dedecms zwangsweise eingeschränkt

Da die Einstellung „register_globals“ den PHP-Variablenzugriffsbereich steuert, verursacht sie unnötige Sicherheitsprobleme, daher wird sie hier vom Webmaster zwangsweise deaktiviert Da Space dies nicht unterstützt, können Sie es zur Referenz für Webmaster auf folgende Weise ändern:

* Wenn Sie ein eigenständiger Serverbenutzer sind, können Sie php.ini in der PHP-Konfigurationsdatei ändern und register_globals= ändern Ein bis „register_globals=Off“. Starten Sie dann Apache neu. 0).

*Erstellen Sie eine neue .htaccess-Datei im Website-Verzeichnis und fügen Sie php_flag register_globals off hinzu. Fügen Sie diese einfach in einer neuen Zeile hinzu 🎜>* Wenn es nicht funktioniert, gibt es nur noch einen letzten Ausweg: Gehen Sie einfach zu include/common.inc.php und löschen Sie den folgenden Code (nicht empfohlen).

//Öffnen Sie register_globals haben viele unsichere Möglichkeiten, daher ist es zwingend erforderlich, register_globalsif(ini_get ('register_globals')){ exit(' zu schließen. php.ini register_globals muss Off sein! Beginnen Sie also am besten jetzt mit dem Programmieren im Off-Stil!
Der Wert von register_globals kann auf „On“ oder „Off“ gesetzt werden. Geben wir einen Code an, um die jeweiligen Unterschiede zu beschreiben.

Code:




Wenn register_globals=Off, sollte das nächste Programm $_GET['user_name'] und $_GET['user_pass'] verwenden Akzeptieren Sie den übergebenen Wert. (Hinweis: Wenn das Methodenattribut von

post ist, sollten Sie $_POST['user_name'] und $_POST['user_pass'] verwenden)

Wenn register_globals=On, kann das nächste Programm verwenden $user_name und $user_pass direkt, um Werte zu akzeptieren.

Wie der Name schon sagt, bedeutet register_globals die Registrierung als globale Variable. Wenn es also aktiviert ist, wird der übergebene Wert direkt als globale Variable registriert und direkt verwendet. Wenn es deaktiviert ist, müssen wir dies tun Gehen Sie zu einem bestimmten Array. Holen Sie es sich. Daher sollten Freunde, die auf die oben genannten Probleme stoßen und den Wert nicht abrufen können, zunächst prüfen, ob Ihre register_globals-Einstellung mit Ihrer Methode zum Abrufen des Werts übereinstimmt. (Um dies zu überprüfen, können Sie die Funktion phpinfo() verwenden oder php.ini direkt überprüfen.) Mal sehen, was hier falsch ist?


Sehen Sie sich das folgende PHP-Skript an, das verwendet wird, um den Zugriff auf eine Webseite zu autorisieren, wenn der eingegebene Benutzername und das Passwort korrekt sind:

// Benutzernamen überprüfen und Passwort
if ($username == 'kevin' and $password == 'secret')
$authorized = true;

< " method="POST">

Benutzername:

Passwort:

form>