J'ajouterais quelque chose sur les variables hidden dans les formulaire....
##################################
Attention dans les formulaires, les variables hidden ne sont pas si caché que ca...
Si vous utilisez un formulaire d'identification simple du type:
<form method="post" action="admin.php">
<input name="login" type="text>
<input name="mdp" type="text>
<input name="connexion" value="en_cours" type="hidden">
<input value="Connexion" style type="submit">
</form>
et pour conserver la connexion entre les differentes pages, vous faites des tests sur la variable "connexion"
exemple
if (isset($_POST["connexion"]))
{
if ($_POST["connexion"]=="en_cours")
{
afficher le formulaire d'identification;
}else
{
recuperer $_POST["login"]
afficher la page admin pour "$_POST["login"]";
}
}else
{
afficher la page d'identification;
}
Il est facile pour quelqu'un de creer le formulaire:
<form method="post" action="htt://www.votresite.com/admin.php">
<input name="login" value="admin" type="text">
<input name="mdp" value="on_s_en_fout" type="text">
<input name="connexion" value="quelquechose" type="text">
<input value="Connexion" style type="submit">
</form>
de l'heberger sur un autre site. Alors si le pseudo admin existe, il sera connecté sur votre site avec le pseudo admin.
pour corriger ca il vaut mieux utiliser des variables d'environement.
Ceci montre aussi qu'il est dangereux de faire des tests "if" avec des "else" qui donnent acces à des pages protegées. Le contenu des "else" doit toujours avoir une "confidentialité" moins importante que celle des "If".
Autre chose:
Supposons le formulaire suivant:
<form method="post" action="traitement.php">
<input name="a_traiter" value="a_faire" type="hidden">
<input value="Fait le" style type="submit">
</form>
et qu'apres ce formulaire, vous utilisiez des fonction PHP sur la variable "a_traiter", faites attention à appliquer les memes règles de sécurité que pour les variables de type "text" ou provenant de GET, c'est à dire addslash(), HTMLentities ... car ces variables peuvent etre modifiées par l'utilisateur.
Dsl si ce post n'est pas tres clair...
Annubis45