2011-07-08 12 views
0

私はクッキーの代わりにセッションを必要とするプロジェクトに取り組んでいます。 クッキーで、私はちょうどこのようなものだろう:

$x = serialize(array('username', sha1('pwd'))); 
setcookie('cookieName', $x, time()+60); 
... 
$myCookie = unserialize($_COOKIE['cookieName'])); 
echo $myCookie[0]; 

をしかし、私はセッションでそれについて移動する方法が非常にわかりません。

答えて

5

セッションでデータをシリアル化する必要はありません。それはあなたのために連載されます。

また、これはセキュリティと何が関係しているのかわかりません。クッキー内のパスワードのSHA1ハッシュ?あなたはパスワードをクライアント側に送るべきではありません!少なくとも変数はサーバー側に保存されます(セッションはデフォルトでサーバー側のファイルに格納されます)

+0

ユーザーがログインしているかどうかを確認するにはどうすればよいですか?私は通常、パスワードがデータベース内のユーザーの電子メールで正しいかどうかをチェックします。これは間違っていますか? – Brandon

+0

@Brandon - ユーザーが正常にログインした場合にのみセッションを作成し、それを識別する値(IDを使用)を入力するのが最も良い方法です。 PHPはクッキーにハッシュされたキーを作成し、アクセスすることができるので、それだけで安全です。 (ユーザーは、クッキーを使用してセッションの変数に直接影響を与えることはできません)セキュリティを強化するために、session_idを自分で設定して回転させることができます。セッションを終了することもできます。 http://php.net/sessionを参照してください。 – Cfreak

0

セッションにシリアル化されたデータを保存することもできます。また、あなたがしたい場合、あなたはデータベースにsearilaizedフォームにすべてのセッションデータを格納し、sesionのIDを維持することができます

$_SESSION['key']= serialize(array('username', sha1('pwd'))); 
1

いけないセッションやクッキーに重要なデータを置きます。 IDとハッシュIDをDBとセッションの両方に保存し、ハッシュキーに基づいて正しいデータをデータベースにチェックインするだけです。 md5( 'username')も使用できます。それをセッションに保存した後、データが必要なときはセッションのユーザ名/ハッシュとmd5( 'username')を比較するだけです。現在のユーザーの

関連する問題