php 保持 - Magentoの自分のセッション変数に値を保存するにはどうすればよいですか?




されない 消えない (5)

私はMagentoを使用しており、index.phpファイルに次のようにセッションの値を保存しようとしていますが、値は保持されていません。

$_SESSION['myvar'] = '1';

どうすればいいのですか?

ありがとう


Answers

  Mage::getSingleton('core/session')->setMySessionVariable('MyValue'); 

  $myValue  =  Mage::getSingleton('core/session')->getMySessionVariable();

  echo $myValue;

 Take Look For More: 

Magentoでセッションを取得、設定、および解除するコードは次のとおりです

Magentoでセッションを取得、設定、および解除するコードは次のとおりです


セッションの "welcome message"変数に値 "Hello world"を保存したいとしましょう。 コードは次のようになります。

$inputMessage = 'Hello World';
Mage::getSingleton('core/session')->setWelcomeMessage($inputMessage);

これで、あなたのコード/サイトのどこかにある "ようこそメッセージ"をエコーし​​たいと思っています。

$outputMessage = Mage::getSingleton('core/session')->getWelcomeMessage();
echo $this->__($outputMessage);

Ali Nasrullahによって与えられた例の後、私はこうするでしょう:

$session = Mage::getSingleton("core/session",  array("name"=>"frontend"));
// set data
$session->setData("device_id", 4);
// get data
$myDeviceId = $session->getData("device_id");

上記のコードを呼び出すためには、[Mage-root] /app/Mage.phpを必ず含めてください!

@Ali Nasrullah:device:idの値をsetData関数の第2引数として渡します。


frontend: Mage::getSingleton('core/session')->setYourNameSession($session_value);

backend: Mage::getSingleton('admin/session')->setYourNameSession($session_value);

HTTPはステートレスなので、リクエストを他のリクエストに関連付けるには、HTTPリクエストの間にユーザーデータを格納する方法が必要です。

CookieやURLパラメータ(例http://example.com/myPage?asd=lol&boo=no )は、2つ以上のリクエスト間でデータを転送するのに適した方法です。 しかし、クライアント側でそのデータを読み込み/編集できるようにしたくない場合には、それらはうまくいかないでしょう。

解決策は、そのデータサーバ側を格納し、それに "id"を与え、クライアントにそのidを知らせるだけです(すべてのhttp要求を渡します)。 そこに行って、セッションを実装しました。 または、クライアントを便利なリモートストレージとして使用することもできますが、データを暗号化してサーバー側の秘密を保持することができます。

もちろん、他のセッションをハイジャックしたくない、セッションが永遠に続くのではなく、期限切れにしたいなど、考慮すべき他の側面もあります。

特定の例では、ユーザーID(ユーザーデータベース内のユーザー名または別の一意のIDである可能性があります)は、識別に成功した後にサーバー側のセッションデータに格納されます。 次に、クライアントから取得したすべてのHTTP要求に対して、クライアントが指定したセッションIDが、認証されたユーザーIDを含む正しいセッションデータ(サーバーによって格納されている)を示します。話している。





php magento session