我在jumi附加的.php文件中使用会话遇到问题
如何在该页面中设置会话?当我使用时:
//this define and require I use from reading the other papers
define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(dirname(__FILE__)));
define( 'DS', DIRECTORY_SEPARATOR );
require_once (JPATH_BASE . DS . 'includes' . DS . 'defines.php');
require_once (JPATH_BASE . DS . 'includes' . DS . 'framework.php');
$mainframe = JFactory::getApplication('site');
$session = &JFactory::getSession();
if(isset($_GET['id'])){
var_dump($id= $_GET['id[i]']);
} else {echo "No session ";}
// code connect to db
// render out the items
//
foreach($rows as $i=>$row){
$id[$i] = $row['rid'];
$name[$i] = $row['rname'];
$view .= '<tr>
<td>'.$id[$i].'</td>
<td><a href="http://www.thispage.php?id='.$id[$i].'">'.$name[$i].'</a></td>';
?>
}
<p><?php echo $view.'</tr></table>'; ?> </p>
...
它不会让我找到我点击的id = 1的子页面。 处理这类事情的更好方法是什么? 谢谢。
答案 0 :(得分:0)
你有一个语法错误试试这个之后再继续:
</php
//this define and require I use from reading the other papers
define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(dirname(__FILE__)));
define( 'DS', DIRECTORY_SEPARATOR );
require_once (JPATH_BASE . DS . 'includes' . DS . 'defines.php');
require_once (JPATH_BASE . DS . 'includes' . DS . 'framework.php');
$mainframe = JFactory::getApplication('site');
$session = &JFactory::getSession();
if(isset($_GET['id'])){
var_dump($id= $_GET['id[i]']);
} else {
echo "No session ";
}
// code connect to db
// render out the items
//
foreach($rows as $i=>$row){
$id[$i] = $row['rid'];
$name[$i] = $row['rname'];
$view .= '<tr>
<td>'.$id[$i].'</td>
<td><a href="http://www.thispage.php?id='.$id[$i].'">'.$name[$i].'</a></td>';
}
?>
<p><?php echo $view.'</tr></table>'; ?></p>
答案 1 :(得分:0)
看看Jumi包含PHP文件的方式,你应该从:
开始defined('_JEXEC') or die('Restricted access');
这将阻止PHP文件通过直接HTTP请求执行(如果您查看Jumi附带的示例博客文件,您将看到此行)。你拥有的define
语句,初始化Joomla的全局变量!代码用于确保请求通过正确的路径进入。
除此之外,如@travega所述,在关闭?>
foreach()
关闭了PHP