« Programmation PHP/Variables superglobales » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
DannyS712 (discussion | contributions)
m <source> -> <syntaxhighlight> (phab:T237267)
Ligne 11 :
 
Par exemple pour extraire l'URL de la page courante :
<sourcesyntaxhighlight lang=PHP>
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
</syntaxhighlight>
</source>
 
==== Références ====
Ligne 24 :
Prenons comme exemple, le prénom 'Paul' :
 
<sourcesyntaxhighlight lang=PHP>
<?php
echo 'Mon nom d\'utilisateur est ' .$_ENV["USER"] . '!';
?>
</syntaxhighlight>
</source>
 
En imaginant que l'utilisateur 'Paul' exécute ce script, on aura alors :
Ligne 45 :
Un petit exemple pour illustre cela :
 
<sourcesyntaxhighlight lang=PHP>
<?php
echo 'Bonjour ' . htmlspecialchars($_COOKIE["name"]) . '!';
?>
</syntaxhighlight>
</source>
 
On suppose que le cookie "name" a été définit précédemment, (on prendra Paul encore une fois)
Ligne 67 :
Pour illustrer ces propos, imaginons que l'utilisateur ai entrée l'URL suivant : ''http://example.com/?name=Paul''
 
<sourcesyntaxhighlight lang=PHP>
<?php
echo 'Bonjour ' . htmlspecialchars($_GET["name"]) . '!';
?>
</syntaxhighlight>
</source>
 
L'exemple ci-dessus va afficher alors :
Ligne 94 :
{{Exemple
| contenu =
<sourcesyntaxhighlight lang="php">
<html>
<body>
Ligne 118 :
</html>
 
</syntaxhighlight>
</source>
}}
 
Ligne 133 :
{{Exemple
| contenu =
<sourcesyntaxhighlight lang="php">
<html>
<body>
Ligne 157 :
</html>
 
</syntaxhighlight>
</source>
}}
 
Ligne 174 :
{{Exemple
| contenu =
<sourcesyntaxhighlight lang="php">
<?php
$x = 75;
Ligne 187 :
echo $z;
?>
</syntaxhighlight>
</source>
}}
Lorsqu'on exécute ce code, on obtient "100" (=> résultat de la variable 'z' + 'y').
Ligne 195 :
 
Pour des raisons de sécurité, on évitera donc d'appeler directement les tableaux des variables superglobales comme dans les paragraphes précédents, pour leur préférer la syntaxe <code>filter_input()</code><ref>http://php.net/manual/fr/function.filter-input.php</ref> :
<sourcesyntaxhighlight lang="php">
<?php
echo filter_input(INPUT_GET, 'password'); // bien
echo $_GET['password']; // pas bien
?>
</syntaxhighlight>
</source>
 
Ne pas confondre avec la fonction filter_var() qui permet d'appliquer des validations ou nettoyages de certaines données<ref>http://php.net/manual/fr/filter.filters.validate.php</ref> (ex : email, URL, adresse IP, booléen...).