![](/img/trans.png)
[英]Using PHP, Kohana 3, and the Auth module, how to structure database for additional user info beyond username, email and password
[英]database structure for the user hide their personal info
用户的数据库结构如何隐藏其个人信息,例如hp,电子邮件地址和全名?
我应该创建一个表(hidden_info)来保留用户通过我的网站将其设置为私人用户的所有私人个人信息。
然后在user-profile.php页面上,使用mysql在hidden_info_table上选择*,其中user == $ username,然后使用其他mysql选择并显示未在hidden_info_table上列出的信息?
那将是很多工作,还有其他更好的方法来构建数据库以隐藏用户的个人信息功能吗?
我不会使用单独的表。 我将单独有一个设置表,其中包含它们可用的隐私选项。
Settings
SettingId int
SettingName varchar(100)
UserSettings
SettingId int
UserId int
设置可以是例如HideEmail , HideRealName , HidePhoneNUmber ,当用户进行身份验证并将其以会话状态存储为字符串数组(或自定义模型)时,便可以获取用户设置。
然后,您可以查询用户设置,如下所示:
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";
}
在名为email_hidden的电子邮件之后创建一列
SELECT * FROM user_info WHERE用户ID = $ ID
<?php
if( !$user_info['email_hidden'] ) { echo $user_info['email'] }
?>
与其他字段重复
这是最简单的方法,尽管不是最有效的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.