簡體   English   中英

Joomla 2.5.9,PHP 5.3.22,JFactory,獲取用戶

[英]Joomla 2.5.9, PHP 5.3.22, JFactory, Get User

我正在使用Joomla Easy Flash Uploader,上傳完成后,會自動發送一封電子郵件給管理員(或我選擇的人)。 它旨在在電子郵件中顯示已登錄用戶的名稱,但是即使僅由已登錄用戶訪問該表單,它也始終顯示“來賓”。 我迫切需要這個來正確提取用戶名。 消息顯示如下:(為了保護我的網站,僅刪除了文件名和位置。

一位訪客(來賓)已成功在2013年3月12日星期二14:56:07 -0500將文件名上傳到LOCATION。

  • 查看代碼:

//電子郵件通知if($ _POST ['notify']!= false && JMailHelper :: isEmailAddress($ _ POST ['recipient'])){//獲取郵件對象$ mailer =&JFactory :: getMailer();

    //set up the sender
    $config =& JFactory::getConfig();
    $sender = array( 
        $config->getValue( 'config.mailfrom' ),
        $config->getValue( 'config.fromname' )
    );
    $mailer->setSender($sender);

    //set up recipient
    $mailer->addRecipient($_POST['recipient']);

    //get user info
    $user_info = array();
    $user =& JFactory::getUser();
    if ($user->guest == true)
    {
        $user_info['name'] = 'A guest';
        $user_info['username'] = 'Guest';
    }
            else
    {
        $user_info['name'] = $user->name;
        $user_info['username'] = $user->username;
    }

    //set up message
    $body = $user_info['name']." (".$user_info['username'].") has successfully uploaded ".$fileName;
    $body.= "(".sizeToText($fileSize).") to ".JPATH_SITE.DS.$cleanedSubPath;
    $body.= " at ".date("r", time()).".\n";
    $mailer->setSubject('New File Uploaded - PC Scribe');
    $mailer->setBody($body);

    //send email
    $send =& $mailer->Send();
    if ($send !== true)
    {
        //error: DO NOTHING!!!
        /****DEBUGGING****/
        //$replaceText.= ' * Email error *';
        /****  CODE   ****/
    }
    else
    {
        //success: DO NOTHING!!!
        /****DEBUGGING****/
        //$replaceText.= ' (Email sent)';
        /****  CODE   ****/
    }
}

我真的認為代碼沒有任何問題(嗯,除了使用$ _POST的安全性問題之外)。

至少代碼本身可以完成工作。

$user_info = array();
$user = JFactory::getUser();
if ($user->guest == true)
{
    $user_info['name'] = 'A guest';
    $user_info['username'] = 'Guest';
}
        else
{
    $user_info['name'] = $user->name;
    $user_info['username'] = $user->username;
}

var_dump($user_info);

唯一的說明可能是該擴展在Joomla之外可以正常工作! 並且用戶會話以某種方式丟失。

自己做一些測試,使用$ user的var_dump($ user)檢查內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM