8796 sujets

Développement web côté serveur, CMS

Bonjour à tous ! Smiley smile

voilà j'ai un petit soucis avec mon code PHP, j'ai créé un petit code qui permet de sécuriser un site. On accède à une page d'accueil où il faut se connecter à l'aide d'un mot de passe. Si le mdp est bon on accède au site, sinon on reste sur la page d'identification.

Le tout grâce aux Cookies, dans le menu lorsqu'on clique sur déconnecter, on vide le cookie.

Le soucis c'est que ça marche sur Mac , mais quand je test sur PC sa marche plus Smiley bawling et j'ai cette erreur qui s'affiche :

Notice: Undefined index: passe2 in C:// .... on line 38


Voici mon code :



<?

if($_POST["pass"]=="toto") {
	setcookie("passe2","ok");
	Header("Location: ".$_SERVER["PHP_SELF"]);
	
	


} elseif($_GET["pass"]=="deco") {
	setcookie("passe2");	
	Header("Location: ".$_SERVER["PHP_SELF"]);
}

?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="style.css">
<title>Premier essai </title>


</head>

<body>

<div id="conteneur">

<div id="contenu">

<?php



$isOK = ($_COOKIE["passe2"] != "");  // LIGNE 38 ICI !



if($isOK) { 
	
<center>
	<a href="?pass=deco">Déconnecter</a> -
        <a href="page1.php">Page 1</a>
	<a href="page2.php">Page 2</a> 
	<a href="page3.php">Page 3</a>
</center><hr>


} else { ?>
   <form method="post" id="form1">
    	<ul>
         <li><input type="password" name="pass"></li>
         <li><input type="submit" style="cursor:pointer;" value="ok"/></li>
        </ul>
      
   </form>
<?php } ?>

</div>

</div>

</body>
</html>





Voila j'espère que je vous ai bien informé et que quelqu'un trouvera une solution.. Merci d'avance ! Smiley sweatdrop
Modifié par walid01300 (24 Apr 2010 - 09:59)
walid01300 a écrit :
Bonjour à tous ! Smiley smile

Le soucis c'est que ça marche sur Mac , mais quand je test sur PC sa marche plus Smiley bawling et j'ai cette erreur qui s'affiche :

Notice: Undefined index: passe2 in C:// .... on line 38
[/code]

Plutôt rudimentaire, comme sécurisation...

Pour ne plus avoir de notice, il faut changer la ligne en question par quelque chose du genre

$isOK = (isset($_COOKIE["passe2"]) &&  $_COOKIE["passe2"] == "ok");
J'ai plus de message d'erreur.. par contre le problème est toujours là..

En fait quand je suis sur Mac :
Je tape le mot de passe, j'appuie sur OK et j'ai ma page qui apparaît.

Sur PC : Je tape mon mot de passe , j'appuie sur OK et la sa reste sur la même page (celle de la demande de mot de passe)

c'est assez bizarre comme problème..
Les cookies sont-ils désactivés sur PC?

Rajouter le var_dump suivant, pour visualiser les cookies sur les deux systèmes et voir s'il y a des différences, pourrait être révélateur.



var_dump($_COOKIE);

$isOK = ($_COOKIE["passe2"] != "");  // LIGNE 38 ICI !