【網頁設計】Xoops使用AD認證登入後抓取使用者姓名的問題 - Rafael Lab

Breaking

BANNER 728X90

2018年3月13日 星期二

【網頁設計】Xoops使用AD認證登入後抓取使用者姓名的問題



問題:AD使用者可以順利登入xoops,不過在抓取AD使用者姓名欄位時,可能因為Windows語系的問題,在xoops顯示的使用者姓名是亂碼。


解決:修改紅色程式碼
           //$xoopsUser->setVar(trim($fields[0]), utf8_decode($datas[trim($fields[1])][0]));



        
$xoopsUser->setVar(trim($fields[0]), $datas[trim($fields[1])][0]);



    function change(&$xoopsUser, $datas, $uname, $pwd = null)


    {

        $ret = false;

        $member_handler =& xoops_gethandler('member');

        $xoopsUser->setVar('pass', md5(stripslashes($pwd)));

        $tab_mapping = explode('|', $this->ldap_field_mapping);

        foreach ($tab_mapping as $mapping) {

            $fields = explode('=', trim($mapping));

            if ($fields[0] && $fields[1]) {

                //$xoopsUser->setVar(trim($fields[0]), utf8_decode($datas[trim($fields[1])][0]));

    $xoopsUser->setVar(trim($fields[0]), $datas[trim($fields[1])][0]);

            }

        }

        if ($member_handler->insertUser($xoopsUser)) {

            return $xoopsUser;

        } else {

            redirect_header(XOOPS_URL . '/user.php', 5, $xoopsUser->getHtmlErrors());

        }

沒有留言:

張貼留言