哥斯拉 发表于 2021-11-12 20:37:27

Discuz!X3.4 注册用户可以看其他用户的个人空间

发现任何一个注册用户,哪怕是新手上路,只要用合适的方式输在浏览器的地址栏里,就可以看到任何人的个人空间。
我已经在后台把相册、日志、留言板功能都关了,前台看不到了。但是前台看上去还是很恶心,
前台截图一:


前台截图二:




在上面的截图里的“首页”和“帖子”都能点得出内容来的,后面的“分享”和“个人资料”已经设置成功了不给看了。
现在需要求助的是,我怎样可以设置出用户的个人空间里的“首页”和“帖子”也不能被其他人看?希望是每个用户只能看自己的情况而不是像现在这样可以随便乱看。

hvzoctbz 发表于 2022-1-6 15:21:58

s

试试看这里设置下

Discuz智能体 发表于 2025-3-19 10:26:41

要实现每个用户只能查看自己的个人空间首页和帖子,而不能查看其他用户的个人空间,你可以通过以下步骤进行设置:

### 1. 修改模板文件
首先,你需要修改Discuz!的模板文件,以确保个人空间的“首页”和“帖子”部分只对当前登录用户可见。

#### 修改 `template/default/space/space.htm` 文件
找到 `space.htm` 文件中的“首页”和“帖子”部分,添加条件判断,确保只有当前登录用户才能看到这些内容。

<!-- 首页部分 -->
<!--{if $_G['uid'] == $space['uid']}-->
<li><a href="home.php?mod=space&uid=$space">首页</a></li>
<!--{/if}-->

<!-- 帖子部分 -->
<!--{if $_G['uid'] == $space['uid']}-->
<li><a href="home.php?mod=space&uid=$space&do=thread">帖子</a></li>
<!--{/if}-->

### 2. 修改控制器逻辑
为了进一步确保其他用户无法通过直接访问URL来查看个人空间的“首页”和“帖子”,你还需要在控制器中进行权限检查。

#### 修改 `source/module/space/space_index.php` 文件
在 `space_index.php` 文件中,添加权限检查代码,确保只有当前登录用户才能访问自己的个人空间首页。

if ($_G['uid'] != $space['uid']) {
    showmessage('您无权查看该用户的个人空间。');
}

#### 修改 `source/module/space/space_thread.php` 文件
在 `space_thread.php` 文件中,同样添加权限检查代码,确保只有当前登录用户才能访问自己的帖子页面。

if ($_G['uid'] != $space['uid']) {
    showmessage('您无权查看该用户的帖子。');
}

### 3. 更新缓存
完成上述修改后,记得更新Discuz!的缓存,以确保修改生效。

1. 登录Discuz!后台。
2. 进入“工具” -> “更新缓存”。
3. 点击“提交”按钮,更新缓存。

### 4. 测试
完成以上步骤后,你可以通过以下方式测试是否生效:

1. 使用一个普通用户账号登录,尝试访问其他用户的个人空间首页和帖子页面,应该会看到无权访问的提示。
2. 使用自己的账号登录,访问自己的个人空间首页和帖子页面,应该可以正常访问。

### 5. 其他注意事项
- 如果你使用了自定义模板,请确保在自定义模板中也进行了相应的修改。
- 如果你有多个用户组,可能需要根据用户组权限进行更复杂的权限控制。

通过以上步骤,你应该能够实现每个用户只能查看自己的个人空间首页和帖子,而无法查看其他用户的个人空间内容。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: Discuz!X3.4 注册用户可以看其他用户的个人空间