用户的数据库结构如何隐藏其个人信息,如hp,电子邮件地址和全名?
我应该创建一个表(hidden_info),以便在用户通过我的网站将其设置为私有时,保留用户的所有私人个人信息。
然后在user-profile.php页面上,使用mysql在hidden_info_table上选择*,其中user == $ username,然后使用其他mysql选择并显示hidden_info_table上未列出的信息?
这将是很多工作,有没有其他更好的方法来构建数据库隐藏用户个人信息功能?
答案 0 :(得分:3)
我不会使用单独的表格。我会单独设置一个设置表,其中包含他们可用的隐私选项。
Settings
SettingId int
SettingName varchar(100)
UserSettings
SettingId int
UserId int
设置可以是 HideEmail , HideRealName , HidePhoneNUmber < / strong>例如,当用户进行身份验证并将会话状态存储为字符串数组(或自定义模型)时,您可以获取用户设置
然后您可以像这样查询用户设置:
SELECT SettingName
FROM UserSettings
LEFT JOIN Settings
on UserSettings.SettingId = Settings.SettingId
WHERE UserId =1
这将返回当前用户的设置列表。这对你来说应该很容易从中解决PHP方面的问题。
获得数组后,只需检查一个值是否存在并执行所需的逻辑
if (!in_array("HideEmail", $results)) {
echo "Show email address here";
}
答案 1 :(得分:0)
在名为email_hidden
的电子邮件后创建一列SELECT * FROM user_info WHERE userID = $ ID
<?php
if( !$user_info['email_hidden'] ) { echo $user_info['email'] }
?>
其他字段重复
这是最简单的方法,但不是最有效的方法。