用戶空間訪問(wèn)提示“用戶名已被刪除”的問(wèn)題存在許久了...真的很久額。柏拉圖說(shuō)5.5 0824版本已經(jīng)解決這個(gè)問(wèn)題,但是據(jù)我所知,目前流行的apache+liunx/uinx和iis6.0+2003的2種服務(wù)環(huán)境下,因?yàn)楦鞣N原因,依然沒有得到徹底解決,本人的空間服務(wù)環(huán)境非常特別是 iis 7.0 + 2008 空間商說(shuō)什么也不給我解決這個(gè)問(wèn)題!郁悶之極!
我仔細(xì)查看過(guò)member下的文件源碼后發(fā)現(xiàn)每個(gè)地方都是以u(píng)id進(jìn)行傳參,如果單純的吧所有的uid替換為mid后,會(huì)出現(xiàn)用戶A訪問(wèn)用戶B的空間并給用戶B留言或者短消息的時(shí)候,就會(huì)丟失掉UID,那么用戶看到的留言里的用戶名就全部是數(shù)字,或者根本留言不了!
于是用另一個(gè)方法:保留uid的訪問(wèn)方式新增mid訪問(wèn),方法很簡(jiǎn)單只需修改member/index.php這個(gè)文件就可以實(shí)現(xiàn)...
這樣不會(huì)出現(xiàn)上面的問(wèn)題也不會(huì)影響后續(xù)版本的升級(jí)!
具體辦法:
打開member/index.php這個(gè)文件
找到
以下為引用的內(nèi)容:
if(empty($uid))
{
$uid = '';
}
else
{
$tmpstr = @gb2utf8($uid);
$tmpstr2 = @utf82gb($tmpstr);
if($tmpstr2==$uid) $uid = $tmpstr;
}
if(empty($action))
{
$action = '';
}
if(empty($aid))
{
$aid = '';
}
|
替換為:
以下為引用的內(nèi)容:
if(empty($uid))
{
if (empty($_REQUEST['mid']))
{
$uid = '';
}else{
$uid=$dsql->GetOne("Select userid From `dede_member` where mid='".$_REQUEST['mid']."'; ");
if (!is_array($uid)){
$uid='';
}else{
$uid=$uid['userid'];
}
}
} //LIEHUO.NET
if(empty($action))
{
$action = '';
}
if(empty($aid))
{
$aid = '';
}
|
至此以用戶名和UID的形式都可以訪問(wèn)了。但是中文的問(wèn)題還沒有解決,例如:http://www.dedecms51.net/index.php?uid=柳絮隨風(fēng),解決方法只能是讓訪客訪問(wèn)UID的形式。修改方法如下:
打開member/emplets/head.htm,找到:
以下為引用的內(nèi)容:
<li><a href="<?php echo $myurl; ?>" title="我的空間">我的空間</a></li>
改為:
以下為引用的內(nèi)容:
<li><a href="../member/index.php?mid=<?php echo $cfg_ml->M_ID; ?>" title="我的空間">我的空間</a></li>
接下來(lái)要做的就是 用偽靜態(tài)規(guī)則重寫一下url 讓其他用戶訪問(wèn)起來(lái)也很容易比如:http://www.veryhuo.net/member/1
將member/emplets/head.htm中的
以下為引用的內(nèi)容:
<li><a href="../member/index.php?mid=<?php echo $cfg_ml->M_ID; ?>" title="我的空間">我的空間</a></li>
修改為:
以下為引用的內(nèi)容:
<li><a href="<?php echo $cfg_ml->M_ID; ?>" title="我的空間">我的空間</a></li>
IIS偽靜態(tài)規(guī)則下載(IIS6.0與7.0文件):DedeCMS_Space_ReWrite.rar 用APACHE的朋友自己修改一下規(guī)則。