Sécuriser page avec cookie

Fermé
iTeush - Modifié par iTeush le 14/08/2011 à 17:13
 Ikalou - 14 août 2011 à 21:55
Bonjour,

Je souhaite sécuriser une page pour ne pouvoir y accéder qu'une seule fois par session.

<?php 
//cookie 
if ( isset($_COOKIE['CODE_OK'])){ 
echo "Veuillez relancer votre navigateur internet."; 
} 
else{ 
//Reportage erreures php 
error_reporting(E_ALL); 
//Infos Database 
$dbhost = '******'; 
$dbuser = '******'; 
$dbpass = '*******'; 
$dbname = '*******'; 
$dbtable = ******'; 
//Connexion à la base 
$player = $_POST['Pseudo']; 
$conn = mysql_connect ($dbhost, $dbuser, $dbpass) or die ('Error: ' . mysql_error()); 
mysql_select_db($dbname) or die(mysql_error()) ; 
$query = "SELECT * FROM iConomy WHERE username='".$player."'";  
$result = mysql_query($query, $conn) or die($query . " - " . mysql_error()); 
$row = mysql_fetch_row($result); 
mysql_query("UPDATE iConomy SET balance=balance+500 WHERE id=".$row[0]); 
//Déconnexion 
mysql_close();  
//Cookie set 
setCookie( "CODE_OK", "1", 0, "/", ".myriapulse.com", true ); 
} 
?> 
<head> 
<SCRIPT LANGUAGE="JavaScript"> 
     document.location.href="http://minesword.myriapulse.com"  
</SCRIPT> 
</head> 


En gros j'aimerais que lorsque que l'utilisateur va sur cette page, un cookie CODE_BON lui soit attribué. Si le cookie existe déjà l'utilisateur et redirigé vers une autre page sans qu'il n'y ai eu la connexion à la base de donnée. Si il n'existe pas la suite du script est exécutée.

Sauf que rien ne se passe, dans la même session je peux réaccéder à la page et le script sera exécuter. COmment faire pour que cela fonctionne ?

Merci d'avance :)
A voir également:

1 réponse

Ce n'est pas plutôt ça que tu cherches à faire ?

if ( isset($_COOKIE['CODE_OK'])){
header("Location: http://minesword.myriapulse.com");
die();
}
else{
...
}

Et cela n'a rien a voir avec ta question, mais prend l'habitude d'échapper *systématiquement* tout ce qui viens de $_GET, $_POST ou $_COOKIE, ainsi que certaines variables de $_SERVER tel que le user-agent (voir mysql_real_escape_string), même si c'est pour faire des tests.
1