Question

Dans mon application PHP, j'ai utilisé le nom d'utilisateur & Pwd et consultez la table dans la base de données pour vérifier la validité des utilisateurs.Après la connexion est réussie, j'ai stocké les informations d'identification du Serveur de Session en tant que ci-dessous:

$_SESSION['username'] = $username;
$_SESSION['pwd'] = $pwd;

Et j'ai vérifié la session pour s'assurer que l'utilisateur est déjà connecté.Vous pouvez voir le code ci-dessous:

if (empty($_SESSION['userId']))
    header("Location: login.php");

Le problème est que si j'ai désactivé les cookies dans le navigateur, je ne pouvais pas aller sur une autre page, même si la connexion réussit.Je trouve que, à la session PHP utilise les cookies pour stocker des valeurs dans le navigateur.Est-il de toute façon à utiliser cookieless session en PHP5?

Était-ce utile?

La solution

Oui, mais vous devez ajouter le sessid ou sid pour chaque lien.

Il est décrit en détail ici:http://myles.eftos.id.au/blog/2005/11/26/cookie-less-sessions-in-php/

Vous avez également besoin de changement php.ini comme suit: php_value session.use_trans_sid = 1.

Autres conseils

Oui, mais vous ne voulez pas.En fait, vous devriez seulement utiliser des sessions à base de cookies.Ceci est la configuration par défaut à partir de PHP 5.3.Veuillez lire sur Fixation de session pour plus d'informations.

Quelles circonstances avez-vous cette force que vous souhaitez que les utilisateurs puissent utiliser votre site sans cookies?

Oui, vous pouvez, en permettant session.use_trans_sid.Cependant, il y a les problèmes de sécurité à le faire.

Il est généralement admis que pour la connexion, on doit accepter un cookie.

L'autre alternative est d'utiliser http autorisation au lieu des séances, mais cela a aussi ses inconvénients.

Voir session de passage de l'identifiant.

Vous pouvez générer une carte d'identité de session et l'ajouter à vos liens comme celui-ci

<?php
session_start();
$session_id = session_id();
header('Location: http://www.test.com/?sess_id='. $session_id);
?>

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top