2012-12-20 1 views
0

Je veux passer à l'utilisation de cookies pour mon authentification, j'ai trouvé le code suivant et je chercherai à implémenter quelque chose comme ça dans ma page user_check.php.Utiliser les cookies PHP sur Session_start()

$username = $_POST['username']; 
$ClientIP = $_SERVER['REMOTE_ADDR']; 
date_default_timezone_set('Europe/London'); 
$date = date('m/d/Y h:i:s a', time()); 

$LoginAudit = $Con->prepare("INSERT INTO loginaudit ('ID', 'emailaddress, 'date') VALUES ('', '$username', '$date'"); 
$LoginAudit->execute(); 
setcookie("LoginAuthentication", $username , time()+3600); 
header("location:member_area.php"); 

Et mon script pour vérifier si le cookie a été défini?

setcookie("LoginAuthentication", $username , time()+3600); 

if (!isset($_COOKIE['LoginAuthentication'])) 
{ 
    /// Re-direct To Main Menu 
    break; 
} 

Je ne peux pas comprendre pourquoi mon LoginAuthentication cookie n'est pas repris par mon script de site Web et auto-vous connecter?

+0

Les cookies ne sont envoyés avec le reste des en-têtes HTTP, de sorte que la page doit remplir la demande avant 'setcookie' Prend effet. –

+0

@ExplosionPills Pourriez-vous me diriger dans la bonne direction pour créer et vérifier correctement les cookies dans PHP? –

+1

Donc, si je crée un cookie sur mon système avec la clé 'LoginAuthentication', je suis connecté? Génial! lien s'il vous plaît. – PeeHaa

Répondre

1

L'utilisation de cookies est une très mauvaise idée car les cookies sont éditables et/ou peuvent être créés à tout moment avec des informations arbitraires (comme indiqué par PeeHaa). Vous devriez regarder PHP sessions. avec des sessions PHP toutes les variables sont stockées sur le serveur et liées à un ID de session. Cet ID de session est créé au début de chaque session et stocké (généralement) dans un cookie.

Cela tend à être une méthode beaucoup plus sûre car l'ID de session spécifique est unique et aucune donnée (autre que l'ID de session) n'est stockée côté client.

Réfs: