Ajout d'un mot de passe sur une page

Petit nouveau ! | 2 Messages

09 mai 2008, 12:04

Bonjour,

Je développe un petit outils en php. J'ai déjà sécurisé l'entrée via une identification avec .htaccess. Par contre je voudrais rajouter a moindre cout un mot de passe sur une pages précise. J'aimerai savoir la façon la plus simple de faire ceci.

Merci d'avance.

x0s
Eléphanteau du PHP | 22 Messages

09 mai 2008, 12:44

L'une des façons les plus simple de protéger une page est d'écrire un simple formulaire (1 champ de saisie+ 1 bouton de validation) et de vérifier que le mot de passe saisi est correct (au rechargement de la page par exemple).

Je tiens à préciser qu'il faut absolument éviter d'effectuer une protection de page en utilisant Javascript, car le mot de passe est tout simplement visible dans le code source, à contrario PHP exécute le code coté serveur.

Mammouth du PHP | 881 Messages

09 mai 2008, 14:30

Tu peux aussi mettre ta page protégée dans un sous-répertoire et protéger ce sous-répertoire par un mot de passe avec .htaccess

Bien souvent, il arrive que les bonnes idées en entraînent d'autres et que - par conséquent - une page protégée en demandent d'autres. Aussi bien commencer au début et mettre ta première page protégée dans un sous-répertoire protégé, ainsi tu seras prêt pour d'autres pages protégées.
Soyez artisans de paix

Eléphant du PHP | 224 Messages

09 mai 2008, 14:56

Bonjour :)

Voici une petite suggestion de formulaire d'identification, très très basique à vrai dire, puisqu'il ne conserve aucune mémoire des identifiés, qui devront commencer l'identification chaque fois qu'ils accéderont à cette page.

Ce formulaire se contente de demander un mot de passe, il s'assure qu'il existe bien dans le tableau des mots de passes autorisés, puis il redirige l'utilisateur vers la page de ton choix (variable "$cible") :
<?php
$mdp = array('pass'); // Tableau des mots de passe autorises
if (isset($_POST['mdp']) && in_array($_POST['mdp'], $mdp)) {
	$cible = "dossier/page_cible.html"; // Chemin relatif vers le fichier cible
	$url = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/";
	header("Location: ".$url.$cible); // Redirection vers la page cible
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html>
<head><title>Identification</title></head>
<body style="font-family: Arial, sans-serif; font-size: 12px;">
<div style="width: 300px; margin: 10px auto;">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
	<fieldset><legend>Identification</legend>
	<label for="mdp">Mot de passe&nbsp;:</label>
	<input type="password" name="mdp" id="mdp" size="12" value="" />
	<input type="submit" value="Valider" style="width: 80px;" />
	</fieldset>
</form>
</div>
</body>
</html>


Ce qui donne :

Image

Ceci étant, je suis quand-même d'accord avec Patriboom, un ".htaccess" dans un dossier peut s'avérer plus souple d'utilisation qu'une simple redirection par mot de passe... faut voir selon tes besoins...

à+ :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Petit nouveau ! | 2 Messages

09 mai 2008, 15:23

Merci pour vos réponses et ce petit morceau de code sources.

Eléphanteau du PHP | 20 Messages

09 mai 2008, 20:53

A propos des .htaccess : j'ai remarqué que dans une "session IE" l'éventuel mot de passe imposé par le .htaccess n'est demandé qu'UNE fois : si on sort de la page et qu'on y retourne on "passe directement" sans redemander le mdp.
Une question alors : est-il possible de récupérer le login d'une "session IE" pour "tracer" l'auteur des modifs saisies ?
Merci !
(Car je trouve que c'est LE principal inconvénient du .htaccess par rapport au formulaire de saisie ...)
Je changerais bien de boite : marre d'Atos-Origin !