PHP重定向检查Joomla:需要排除内容页面被重定向

时间:2012-03-09 20:09:04

标签: php redirect joomla

我在我的一个Joomla PHP文件中创建了一个函数。本质上,该函数检查是否在数据库中找到用户的ID。如果找不到用户的ID,则会重定向到Content-A。如果在数据库中找到用户的ID,则它会重定向到内容B.在下面的代码中,如果$ result返回true,则找到用户的ID。

这是目前的工作形式:

    else

    {

        // Get Current Users Joomla ID            
        $user =& JFactory::getUser();        

        // Search Database for Joomla Users ID

        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query->select('user_id');
        $query->from('database_table');
        $query->where('user_id = ' . $user->id);
        $db->setQuery($query);
        $result = $db->loadResult();  

    if ($result && ((JRequest::getCmd('option') != 'com_content') || (JRequest::getCmd('view') != 'article') || (JRequest::getInt('id') != 'XXX')))

{ 

此代码表示如果有$ result,并且浏览器中加载的当前页面不是内容ID XXX,则执行以下功能。我需要做的还包括2个其他页面ID来检查。因此,如果用户使用这三个页面ID中的一个,则不会重定向它们。

我尝试了以下内容,但它似乎不起作用:

    if ($result && ((JRequest::getCmd('option') != 'com_content') || (JRequest::getCmd('view') != 'article') || ((JRequest::getInt('id') != 'XXX') || (JRequest::getInt('id') != 'YYY') || (JRequest::getInt('id') != 'ZZZ'))))

{

我认为我很接近,但是当我保存此代码时,网站会进入重定向循环。有人可以建议一种方法来修复语法吗?在此先感谢您的帮助!

编辑:此工作流程中确实需要处理4种内容类型。

Content-A =显示用户是否已登录并且在数据库中找不到他们的用户ID

Content-B =显示用户是否已登录并且在数据库中找到了他们的用户ID

Content-C =通过链接从Content-B访问

内容-D =显示在内容A,B和& C通过灯箱弹出(RocketTheme的RokBox)

1 个答案:

答案 0 :(得分:0)

只是让它变得有点干净,如果条件有助于找到问题那么简单。

$articleId = (JRequest::getVar('option')==='com_content' && JRequest::getVar('view')==='article')? JRequest::getInt('id') : 0; //Get the article's ID

$dont_redirect = array('12','13','15'); //ID's of those specific articles

if($result && !in_array($articleId , $dont_redirect))
{

如果它仍然不起作用,它可能是$ result变量,它的价值是多少? 使用:

var_dump($result);

之前的条件。