用户空间访问提示“用户名已被删除”的问题存在许久了...真的很久额。柏拉图说5.5 0824版本已经解决这个问题,但是据我所知,目前流行的apache+liunx/uinx和iis6.0+2003的2种服务环境下,因为各种原因,依然没有得到彻底解决,本人的空间服务环境非常特别是 iis 7.0 + 2008 空间商说什么也不给我解决这个问题!郁闷之极!
  我仔细查看过member下的文件源码后发现每个地方都是以uid进行传参,如果单纯的吧所有的uid替换为mid后,会出现用户A访问用户B的空间并给用户B留言或者短消息的时候,就会丢失掉UID,那么用户看到的留言里的用户名就全部是数字,或者根本留言不了!
  于是用另一个方法:保留uid的访问方式新增mid访问,方法很简单只需修改member/index.php这个文件就可以实现...
  这样不会出现上面的问题也不会影响后续版本的升级!
  具体办法:
  打开member/index.php这个文件
  找到
以下为引用的内容:
if(empty($uid))
{
$uid = '';
}
else
{
$tmpstr = @gb2utf8($uid);
$tmpstr2 = @utf82gb($tmpstr);
if($tmpstr2==$uid) $uid = $tmpstr;
}
if(empty($action))
{
$action = '';
}
if(empty($aid))
{
$aid = '';
}
  替换为:
以下为引用的内容:
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的形式都可以访问了。但是中文的问题还没有解决,例如:http://www.dede58.net/index.php?uid=柳絮随风,解决方法只能是让访客访问UID的形式。修改方法如下:
  打开member/emplets/head.htm,找到:
以下为引用的内容:
<li><a href="<?php echo $myurl; ?>" title="我的空间">我的空间</a></li>
  改为:
以下为引用的内容:
<li><a href="../member/index.php?mid=<?php echo $cfg_ml->M_ID; ?>" title="我的空间">我的空间</a></li>
  接下来要做的就是 用伪静态规则重写一下url 让其他用户访问起来也很容易比如:http://www.veryhuo.net/member/1
  将member/emplets/head.htm中的
以下为引用的内容:
<li><a href="../member/index.php?mid=<?php echo $cfg_ml->M_ID; ?>" title="我的空间">我的空间</a></li>
  修改为:
以下为引用的内容:
<li><a href="<?php echo $cfg_ml->M_ID; ?>" title="我的空间">我的空间</a></li>
  IIS伪静态规则下载(IIS6.0与7.0文件):DedeCMS_Space_ReWrite.rar 用APACHE的朋友自己修改一下规则。

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。