0

ID がサイト全体でユーザーを追跡し、フォームに入力したときにキャプチャされるように、URL からセッション ID をキャプチャしようとしています。

URLは次のようになります。

http://www.mysite.co.za/?campaign=the_campaign_name

次に、このコードを Joomla テンプレート ファイルの先頭に挿入しました。

session_start();
$_SESSION['campaign']=$_GET['campaign'];

これはセッション (the_campaign_name) をキャプチャしますか? Joomla が独自のセッション ID を使用していることを知っているので、これは Joomla で機能しますか?

セッションを確認すると、そのセッションを示す PHPSESSID が表示されます。

前もって感謝します。

4

3 に答える 3

3

これが誰かに役立つ場合、これは私にとってはうまくいったようです:

<?php

    if (isset($_GET['campaign'])) {
        $campaign = $_GET['campaign'];
    }

    setcookie('CampaignName', $campaign);
?>

それが正しい方法であるかどうかはわかりませんが、Joomlaでうまくいきました。

于 2012-10-30T13:44:27.437 に答える
0

はい、動作するはずです。joomla は PHP です。やろうとしているのはPHPです。作成されたすべてのセッション変数を確認したい場合は、試してください

session_start();
var_dump($_SESSION);

アップデート:

このようにjoomlaでセッション変数を設定してアクセスする必要があるドキュメントによると、joomlaはセッション変数をデータベースに保存しているようです。

セッション変数を設定する

$session =& JFactory::getSession();
$session->set('campaign', $_GET['campaign']);

セッション変数を取得する

$session =& JFactory::getSession();
echo $session->get('campaign');

初期化時に joomla が何らかのセキュリティ上の理由で通常のセッション変数を破棄しているようです。ここにjoomlaのドキュメントからのリンクがあります。

お役に立てれば。適切な検証でユーザー入力をサニタイズすることを常に忘れないでください。使用する前に。

于 2012-05-17T11:20:35.827 に答える
0

Joomla を使用しているのであれば、Joomla フレームワークを利用してみませんか?

設定するには:

JFactory::getSession()->set('campaign', JRequest::getVar('campaign'), $optional_namespace);

取得するため:

JFactory::getSession()->get('campaign', $optional_default_value, $optional_namespace);
于 2012-05-18T00:49:50.463 に答える