【问题标题】:Joomla 3.3 get session variableJoomla 3.3 获取会话变量
【发布时间】:2018-06-27 15:24:09
【问题描述】:

在此网址中(网址 SEF 有效): www.mysite.com/test/test-test?source=mycampaign

我想在不同的页面上传递变量(mycampaign)。

使用此代码可以在 2 页中正常工作:

第 1 页(www.mysite.com/index.php/test/test-test?source=mycampaign):

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

第 2 页

session_start(); 
$source = $_SESSION['source'];

第 3 页

session_start(); 
$source = $_SESSION['source'];

当我到达第 3 页时,该变量不再起作用。网址更改为:www.mysite.com/index.php?option=com_users&view=registration&Itemid=371

此代码在禁用 URL SEF 和使用 url 字符串“&source=mycampaign”而不是“?source=mycampaign”时完美运行

有人可以帮助我吗?谢谢

【问题讨论】:

  • 如果您想通过 sef url 传递变量,那么您需要更改该组件的路由器文件。如果它没有正确解析 url,它将无法工作。你能分享你的代码让我看看吗?
  • 我能够用这段代码解决(在索引模板页面中): session_start(); if (isset($_GET["source"])) { $_SESSION["source"] = $_GET["source"];并在第 3 页: session_start(); if (isset($_SESSION["source"])){ } session_destroy();对吗?
  • 这段代码看起来不安全。小心使用 $_GET。我不是安全专家,但最好听取其他人的意见。 joomla 有不同的方式来处理会话docs.joomla.org/…

标签: php session variables joomla


【解决方案1】:

您可以为此使用 Joomla 3 中的会话实例。
第 1 页:

$session = JFactory::getSession();
$session->set('source',JFactory::getApplication()->input->get('source'));

第 2 页和第 3 页:

$session = JFactory::getSession();
$source = $session->get('source');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-13
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    • 2012-09-24
    • 1970-01-01
    相关资源
    最近更新 更多