繁体   English   中英

Joomla 3 Jfactory使用户php代码卡住了

[英]Joomla 3 Jfactory get user php code stuck logged in

我曾尝试编写代码来告诉用户他们需要登录才能查看链接,并且该链接的一部分也将由Jfactory生成,我正在将此代码编写在单独的php文件中,并且尝试了各种来自stackoverflow的事情,而我不断让您登录,并可以得到不同的结果,这是我的代码:

    <?php
    define( 'DS', DIRECTORY_SEPARATOR );
    $rootFolder = explode(DS,dirname(__FILE__));
    //current level in diretoty structure
    $currentfolderlevel = 9;
    array_splice($rootFolder,-$currentfolderlevel);
    $base_folder = implode(DS,$rootFolder);
    if(is_dir($base_folder.DS.'libraries'.DS.'joomla'))   
    {
    define( '_JEXEC', 1 );
    define('JPATH_BASE',implode(DS,$rootFolder));
    require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
    require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
    $userid='';
    $usertype='';
    $mainframe =& JFactory::getApplication('site');
    $mainframe->initialise();
    $user =& JFactory::getUser();
    $userid = $user->get('id');
    $usertype = $user->get('usertype');
    }
    if ($user->guest) {
    echo 'You are not logged in';
    } else {
    echo 'You are logged in';
    }
    ?>

我的joomla版本也是Joomla 3.2.4,我要引用的代码的网址是https://wgalive.com/teamspeakinfo.php

我设法找到解决问题的方法,我不得不安装扩展程序以将php代码嵌入到我在joomla上的文章中:Sourcerer Code Helper,然后不得不使用以下代码,它才有效:

<?php
defined('_JEXEC') OR die("Restricted access"); // Prevent direct Access to the program
$user =& JFactory::getUser(); // get user
if ($user->guest) {
echo "<h3>Please log in to see your teamspeak login link! </h3>"; // Show this message if user not yet log in
} else {

echo "<h3>Hello {$user->name}! Below is a link to logging into our teamspeak server with your username!</h3>";

echo '<p><a href="ts3server://srv.wgalive.com?port=9987&nickname='.$user->username.'&password=passwordhere&addbookmark=WGA-Server">Login to Teamspeak</a></p>';



}
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM