如何在 joomla 中获取 sql 中的会话 ID
How to get session ID in sql in joomla
我在 Joomla 中使用 vcharts 并尝试根据登录者实现图表。遗憾的是 vcharts 只允许我使用 SQL 进行查询而不是 PHP 所以我将如何然后获取会话 ID。
我发现这种方法:使用 joomla api
<?php
$link = mysqli_connect("localhost", "joomla_usr", "geheim", "joomla_db");
define('_JEXEC', 1);
define('JPATH_BASE', dirname(__FILE__));
define('DS', DIRECTORY_SEPARATOR);
require_once(JPATH_BASE . DS . 'includes' . DS . 'defines.php');
require_once(JPATH_BASE . DS . 'includes' . DS . 'framework.php');
require('libraries/joomla/factory.php');
$mainframe = JFactory::getApplication('site');
$mainframe->initialise();
$session = JFactory::getSession();
$query_user = "SELECT name, username, email FROM joomla_users WHERE id=(SELECT userid FROM joomla_session WHERE session_id='" . $session->getId() . "')";
$result_user = mysqli_query($link, $query_user);
$row_user = mysqli_fetch_array($result_user);
?>
也许您可以直接使用查询从您的平台访问 mysql 数据库。或者以任何方式嵌入PHP。
基于 SO 问题 Variables added to vchart joomla sql query not picked up(它公开了 joomla 用户通常必须付费才能看到的 vcharts 手册的相关部分...)似乎可以在 [=25] 中使用占位符=] 是:
{loggedinuserid}
所以,你可以这样写
SELECT * FROM #__users WHERE id = {loggedinuserid}
当然这只是一个猜测,因为我从未使用过 vcharts,也没有看过实际的文档。
如果它不喜欢 #__
前缀占位符,那么我想您需要像这样手动替换它:
SELECT * FROM lmnop_users WHERE id = {loggedinuserid}
综上所述,我对 Plotalot 扩展有一些经验,它的文档非常好。
我在 Joomla 中使用 vcharts 并尝试根据登录者实现图表。遗憾的是 vcharts 只允许我使用 SQL 进行查询而不是 PHP 所以我将如何然后获取会话 ID。
我发现这种方法:使用 joomla api
<?php
$link = mysqli_connect("localhost", "joomla_usr", "geheim", "joomla_db");
define('_JEXEC', 1);
define('JPATH_BASE', dirname(__FILE__));
define('DS', DIRECTORY_SEPARATOR);
require_once(JPATH_BASE . DS . 'includes' . DS . 'defines.php');
require_once(JPATH_BASE . DS . 'includes' . DS . 'framework.php');
require('libraries/joomla/factory.php');
$mainframe = JFactory::getApplication('site');
$mainframe->initialise();
$session = JFactory::getSession();
$query_user = "SELECT name, username, email FROM joomla_users WHERE id=(SELECT userid FROM joomla_session WHERE session_id='" . $session->getId() . "')";
$result_user = mysqli_query($link, $query_user);
$row_user = mysqli_fetch_array($result_user);
?>
也许您可以直接使用查询从您的平台访问 mysql 数据库。或者以任何方式嵌入PHP。
基于 SO 问题 Variables added to vchart joomla sql query not picked up(它公开了 joomla 用户通常必须付费才能看到的 vcharts 手册的相关部分...)似乎可以在 [=25] 中使用占位符=] 是:
{loggedinuserid}
所以,你可以这样写
SELECT * FROM #__users WHERE id = {loggedinuserid}
当然这只是一个猜测,因为我从未使用过 vcharts,也没有看过实际的文档。
如果它不喜欢 #__
前缀占位符,那么我想您需要像这样手动替换它:
SELECT * FROM lmnop_users WHERE id = {loggedinuserid}
综上所述,我对 Plotalot 扩展有一些经验,它的文档非常好。