Identification par cookies simple et adaptable

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 469 fois - Téléchargée 16 fois

Contenu du snippet

S'identifier sur une page simplement avec les cookies, protéger un petit espace de gestion comme une page administration pour une galerie de photos ... (php5)

Source / Exemple :


<?php
$username = "login"; // à personnaliser
$password = "pass";  // à personnaliser
$randomword = "fshjjsfjsf"; // ce que tu veux

//on peut mettre l'IP du visteur pour plus de securité
// decommenter la ligne çi-dessous
// $randomword .= $_SERVER['REMOTE_ADDR']; 

$cookie = md5($password.$randomword);

//deconnection
if (isset($_GET['p']) && $_GET['p'] == "logout") {
setcookie('MyLoginPage', md5(time()) );
header("Location: $_SERVER[PHP_SELF]");exit;
}

//test pour valider la connection

if (isset($_GET['p']) && $_GET['p']=="login") {
   
   if ($_POST['name'] != $username) {
      echo "<p>Login ?</p>";
      //si on veut cacher le control çi-dessus decommenter la ligne çi-dessous
      //header("Location: $_SERVER[PHP_SELF]");exit;
   } else if ($_POST['pass'] != $password) {
      echo "<p>Password ?</p>";
      //si on veut cacher le control çi-dessus decommenter la ligne çi-dessous
      //header("Location: $_SERVER[PHP_SELF]");exit;
   } else if ($_POST['name'] == $username && $_POST['pass'] == $password) {
      
               if(setcookie('MyLoginPage', md5($_POST['pass'].$randomword))) {
               header("Location: $_SERVER[PHP_SELF]");exit;} else {
               exit('Activer les cookies sur votre navigateur !');
               }
   
   } else {
      echo "<p>Erreur rafraichir la page !</p>";
      //si on veut cacher le control çi-dessus decommenter la ligne çi-dessous
      //header("Location: $_SERVER[PHP_SELF]");exit;
   }
}

// On affiche le contenu AUTREMENT on doit s'identifier ... 

if (isset($_COOKIE['MyLoginPage']) && $_COOKIE['MyLoginPage'] == $cookie) {

?>
      <center>
      <a href="?p=logout">Me deconnecter !</a><br />
      
      CONTENT HERE <!-- ou un include php -->
      
      </center>

<?php
exit;

} else {

$form = '
<form action="'.$_SERVER['PHP_SELF'].'?p=login" method="post">
<fieldset>
<label><input type="text" name="name" id="name" /> Votre login</label><br />
<label><input type="password" name="pass" id="pass" /> Votre password</label><br />
<input type="submit" id="submit" value="Login" />
</fieldset>
</form>';

//mauvais cookie
echo "<p>IDENTIFIER VOUS !</p>";
echo $form;
exit;
}
?>

A voir également

Ajouter un commentaire

Commentaires

cod57
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
10
@ norton
Remarques judicieuses pour la sécurité !
= OU == ,oui on peut demander un controle strict !

- supprimer le cookie oui mais !

Dans mon script il y a un contrôle de l'existence du cookie
ou plutot de sa gestion ... sinon le script ne marche pas il affiche :
ligne 33 --> exit('Activer les cookies sur votre navigateur !');
+ lors de la deconnection je cree un cookie aleatoire;

- md5 ou sha1 je suis pas assez pointu pour le dire
Nort0n
Messages postés
41
Date d'inscription
jeudi 27 novembre 2003
Statut
Membre
Dernière intervention
18 octobre 2010

Bonsoir,

Je n'ai pas testé le script, mais plusieurs choses à dire après lu d'un oeil :

- MD5 n'est plus considéré comme sûr, mieux vaut utiliser SHA1;- Utilises l'opérateur d'égalité plutôt que qui est plus lent et moins sûr;
- Pourquoi ne pas supprimer le cookie au lieu de mettre au autre contenu ?
- Une fonction serait plus facile à intégrer.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.