Variables externes
Les variables externes de PHP sont des variables spécifiées par PHP lors de l'utilisation. Cette variable est spécifiée comme telle et utilisée comme telle.
Expliquons d'abord quelques-uns des exemples les plus couramment utilisés. Nous nommons le formulaire suivant user.html :
<html> <head> </head> <body> <form action="reg.php" method="get"> <input type="text" name="username" /> <input type="password" name="pwd" /> <input type="submit" value="提交" /> </form> </body> </html>
Ce qui précède est un code HTML très basique dans la partie principale de ce code. Cela signifie utiliser la méthode get pour envoyer l'utilisateur et le mot de passe à reg.php (spécifié à la ligne 6 du code ci-dessus). reg.php trouve un moyen de recevoir les valeurs de nom d'utilisateur et de mot de passe transmises par l'utilisateur.
Nous obtenons notre première variable externe : $_GET.
La fonction principale de $_GET est d'obtenir les données transmises par get.
Écrivons un reg.php et essayons d'utiliser $_GET pour recevoir la valeur :
<?php //$_GET后面加上中括号,将username作为字符串放在中括号里面,就得到了表单里面的<input type="text" name="username" /> 的值 $u = $_GET['username']; echo $u.'<br />'; //$_GET['pwd'] 得到表单<input type="text" name="username" /> 的值 $passwd = $_GET['pwd']; echo $passwd.'<br />'; ?>
Vous pouvez afficher la valeur pour voir le résultat. Grâce à l'expérience ci-dessus, nous savons que la valeur saisie à partir du formulaire peut être obtenue via la variable externe $_GET.
Lorsque vous expérimentez, vous trouverez une fonctionnalité sur la barre d'adresse :
D'après l'image ci-dessus, observez la fonctionnalité :
reg. php est suivi d'un ? (point d'interrogation)
Le nom d'utilisateur dans le formulaire change dans la barre d'adresse
La valeur du nom d'utilisateur dans le formulaire est root, et le nom d'utilisateur est suivi de = (numéro etc.) La valeur saisie
nom d'utilisateur (nom) = root (valeur) Le mot de passe suivant est mot de passe (nom) = 123123 (valeur), séparé par un & (et caractère) au milieu
Le mot de passe est Visible, comment assurer la sécurité ? Que faire si mon mot de passe n'est pas visible dans la barre d'adresse pendant le processus d'inscription ?
À ce stade, nous devons utiliser la valeur de publication. La valeur de publication est invisible dans la barre d'adresse.
Nous modifierons le même code dans l'exemple ci-dessus. Le code html est le suivant :
<html> <head> </head> <body> <!-- 这一行method 对应的值改为了post --> <form action="reg.php" method="post"> <input type="text" name="username" /> <input type="password" name="pwd" /> <input type="submit" value="提交" /> </form> </body> </html>
$_GET dans le code PHP a été remplacé par $_POST :
<?php //$_POST后面加上中括号,将username作为字符串放在中括号里面,就得到了表单里面的<input type="text" name="username" /> 的值 $u = $_POST['username']; echo $u.'<br />'; //$_POST['pwd'] 得到表单<input type="text" name="username" /> 的值 $passwd = $_POST['pwd']; echo $passwd.'<br />'; ?>
Fonctionnalités d'observation : le ? (point d'interrogation) après
reg.php est manquant. Le nom d'utilisateur et le mot de passe au dos sont également manquants. Alors, comment transmet-il les données ?
Il s'agit des données transmises via le fichier d'en-tête de requête du navigateur que nous ne pouvons pas voir. La colonne URL n'est donc pas visible.
Remarque : Il existe un processus de démonstration sur la façon d'afficher les résultats du transfert via Firebug du navigateur Firefox en annexe. Cette partie correspond à toute la méthode de transmission spécifiée par le protocole HTTP.
De plus, nous avons également $_REQUEST pour recevoir des données. Maintenant, nous le traitons comme ceci :
Changez tous les $_POST dans l'extrait de code php en $_REQUEST, le code est le suivant :
<?php $u = $_REQUEST['username']; echo $u.'<br />'; $passwd = $_REQUEST['pwd']; echo $passwd.'<br />'; ?>
Changez la méthode dans cette ligne dans l'utilisateur de la page Web. html pour exécuter get une fois, puis remplacez-le par Post et exécutez-le à nouveau pour voir le résultat :
<form action="reg.php" method="post">
Grâce à l'expérience ci-dessus, vous constaterez que $_REQUEST peut recevoir la valeur transmise par get ou la valeur transmise par poste.
De plus, nous résumons certaines variables externes et exigeons le niveau d'apprentissage des points de connaissance : comprendre le sens, et mémoriser l'écriture et la fonction de ce mot.
全局变量名 | 功能说明 |
---|---|
$_COOKIE | 得到会话控制中cookie传值 |
$_SESSION | 得到会话控制中session的值 |
$_FILES | 得到文件上传的结果 |
$_GET | 得到get传值的结果 |
$_POST | 得到post传值的结果 |
$_REQUEST | 即能得到get的传值结果,也能得到Post传值的结果 |
N'oubliez pas encore une chose : toutes les variables ci-dessus sont super-globales. (La signification de super global sera expliquée plus tard).
Remarque :
1. Nous pensons que toutes les données saisies par les utilisateurs ne sont pas dignes de confiance. La seconde moitié de ce livre expliquera spécifiquement les restrictions et le filtrage
2. Lors de la soumission de données, nos méthodes couramment utilisées sont get et post. On peut comprendre que la valeur transmise par get est visible dans l'url, mais la valeur transmise par post n'est pas visible dans l'url.
La valeur de la publication n'est pas visible dans l'URL. Les données sont envoyées au serveur désigné via la partie en-tête du navigateur. Vous devez utiliser des outils spéciaux pour voir la valeur envoyée par la poste. Vous pouvez télécharger le plug-in Firefox (firebug) pour le visualiser.
Icône Firefox :
Ouvrir Firebug :
Afficher le données de transfert d'en-tête (réseau, cliquez sur POST reg.php et sélectionnez Post), et vous verrez le nom transféré et la valeur des données transférées :
1. Si vous utilisez réellement get pour transmettre le mot de passe, le mot de passe sera affiché dans la barre d'adresse. L'historique du navigateur enregistre automatiquement les adresses visitées. Un utilisateur malveillant pourra obtenir les mots de passe que vous avez saisis en consultant l'historique de votre navigateur. Par conséquent, la méthode get ne peut pas être utilisée pour la transmission du mot de passe.
get
Prononciation : [get]
Explication : Get, dans les ordinateurs, désigne un moyen de transmettre des données
post
Prononciation : [poʊst]
Explication : Fait référence à une méthode de transmission de données dans les ordinateurs
requête
Prononciation : [rɪˈkwɛst]
Explication : Demande
soumettre
Prononciation : [səbˈmɪt]
Explication : Soumettre, soumettre
action
Prononciation : [ˈækʃən]
Explication : Action, activité