Maison > php教程 > php手册 > le corps du texte

Partagez votre compréhension des valeurs PHP register_globals​​on et off_php basics

PHP中文网
Libérer: 2016-05-16 09:00:11
original
1549 Les gens l'ont consulté

Partagez votre compréhension des valeurs PHP register_globals​​on et off_php :

La valeur de register_globals peut être définie sur : On ou Off. Donnons un morceau de code. pour les décrire respectivement différemment.

Code :

<form name="frmTest" id="frmTest" action="URL">
<input type="text" 
name="user_name" id="user_name">
<input type="password" 
name="user_pass" id="user_pass">
<input type="submit" 
value="login">
</form>
Copier après la connexion



Lorsque register_globals=Off, le programme suivant devrait utiliser $_GET['user_name' ] et $_GET[ 'user_pass'] pour accepter la valeur transmise. (Remarque : lorsque l'attribut de méthode de

est post, vous devez utiliser $_POST['user_name'] et $_POST['user_pass'])

Lorsque register_globals=On, le programme suivant peut utiliser $user_name et $user_pass directement pour accepter les valeurs.

Comme son nom l'indique, register_globals signifie s'inscrire en tant que variable globale, donc lorsqu'elle est activée, la valeur transmise sera directement enregistrée en tant que variable globale et utilisée directement, et lorsqu'elle est désactivée, nous devons allez dans un tableau spécifique Allez le chercher. Par conséquent, les amis qui rencontrent les problèmes ci-dessus de ne pas pouvoir obtenir la valeur doivent d'abord vérifier si votre paramètre register_globals correspond à votre méthode d'obtention de la valeur. (Pour vérifier, vous pouvez utiliser la fonction phpinfo() ou vérifier directement php.ini)

Voyons ce qui ne va pas ici ?

Regardez le script PHP suivant, qui permet d'autoriser l'accès à une page Web lorsque le nom d'utilisateur et le mot de passe saisis sont corrects :

Le code est le suivant :

<?php
// 检查用户名及口令
if ($username == &#39;kevin&#39; and $password == 
&#39;secret&#39;)
$authorized = true;
?>
<?php if (!$authorized): 
?>
<!-- 未授权的用户将在这里给予提示 -->
<p>Please enter your username 
and password:</p>
<form action="<?=$PHP_SELF?>" 
method="POST">
<p>Username: <input type="text" name="username" 
/><br />
Password: <input type="password" name="password" 
/><br />
<input type="submit" 
/></p>
</form>
<?php else: ?>
<!-- 有安全要求的HTML内容 
-->
<?php endif; ?>
Copier après la connexion

Le problème avec le code ci-dessus est que vous pouvez facilement y accéder sans fournir le nom d'utilisateur et le mot de passe corrects. Ajoutez simplement ?authorized=1 à la fin de la barre d'adresse de votre navigateur. Étant donné que PHP crée automatiquement une variable pour chaque valeur soumise -- qu'elle provienne d'une soumission de formulaire, d'une chaîne de requête d'URL ou d'un cookie -- cela définira $authorized sur 1, afin qu'un utilisateur non autorisé puisse dépasser les restrictions de sécurité.

Ce qui précède est de partager la compréhension des valeurs PHP register_globals ​​​​sur et off_php contenu de base Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal