En fait, si tu n'initialise pas tes variables, tu risque qu'elles soient écrasées :
Code :
<?php if($user === 'admin' && $password === 'admin') { $admin = true; } if($admin) { } ?>
|
Ici, register_globals est activé.
$user et $password sont entrés par l'utilisateur.
$admin est un boolean qui vaut true si les paramètres d'authentification sont OK.
Or, la page est appelée ainsi :
L'élément $_GET['admin'] sera copié dans $admin qui vaudra true dans tous les cas.
Pour remédier au problème :
Code :
<?php $admin = false; if($user === 'admin' && $password === 'admin') { $admin = true; } if($admin === true) { } ?>
|
Alors, au début du script, la valeur est initialisée (false).
Mais je te conseille fortement de désactiver cette directive. Je crois qu'elle est dépreciée sous PHP 6 et en tout cas n'est plus activée par défaut depuis PHP 4.2.0