Essayez d'enlever le paramètre nom
de l'URL ou de donner « admin » comme nom.
Le tableau $_GET
contient :
array ( 'nom' => 'toto', 'x' => '12', )
Code source de ce fichier :
<!DOCTYPE html>
<title>Démo GET en PHP</title>
<?php
if (key_exists('nom', $_GET)) {
/* Il y a bien une clef 'nom' dans les paramètres d'URL : on récupère la valeur */
$nom = $_GET['nom'];
if ($nom === 'admin') {
/* Si le nom donné est «admin», on change les couleurs de la page */
echo '<style> html { color: white; background-color: #333; }</style>';
}
/* TRÈS IMPORTANT: avant d'afficher le nom, on utilise la fonction htmlspecialchars
* pour *échapper* les caractères spéciaux du HTML. Cela permet d'éviter les problèmes
* d'affichage (par exemple si le nom contient un chevron), et surtout, cela
* évite les risques d'injection de code JavaScript (faille XSS). */
$nom_html = htmlspecialchars($nom);
echo "<h2>Bienvenue, $nom_html !</h2>";
echo "<p>Essayez d'enlever le paramètre <code>nom</code> de l'URL ou de donner « admin » comme nom.</p>";
}
echo "<p>Le tableau <code>\$_GET</code> contient :</p>";
echo "<pre>";
echo htmlspecialchars(var_export($_GET, true));
echo "</pre>";
echo "<p>Code source de ce fichier :</p>\n";
echo "<figure style=\"border: 1px solid black; padding: .5em;
background: linen; width: 60em; \">";
highlight_file(__FILE__);
echo "</figure>";
?>