簡體   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