首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为用户公共配置文件创建隐私设置

为用户公共配置文件创建隐私设置
EN

Stack Overflow用户
提问于 2014-05-28 07:56:39
回答 2查看 544关注 0票数 0

我试图设置个人隐私设置的用户在他们的个人资料,让他们可以选择选择什么信息,公众可以看到。

我正在测试这个示例查询,以尝试解决这个问题。

示例:

用户提交他们的电子邮件、电话号码和另一个电话号码。所有这些信息都存储在用户数据库表中。

通过在user表中创建3个新列,我给用户提供了显示该信息的选项。然后,用户可以选择“是”或“否”,如果他们希望通过隐私表单向公众显示该信息。

新列称为pe、pph和paph。(第一页代表私人)。pe等于电子邮件,pph等于电话,pph等于。

默认情况下,该信息设置为否,用于非公开查看。

我的问题:

我怎么能联想到

  1. pe到电子邮件
  2. pph呼叫
  3. 对alt_phone

然后在查询中运行它,因此如果pe的值为Yes,它将出现在输出中,如果pph的值为No,则它不会出现在页面的输出中。

在这件事上,我已经超出了我的舒适范围,所以请不要逼我做坏事,但这是我尝试过的。

代码语言:javascript
复制
<?php
$id = (int)$_GET['id'];
$users = DB::getInstance()->query("SELECT `id`, `email`, `phone`, `alt_phone`, `pe`, `pph`, `paph`
FROM `users` WHERE `id` = $id AND `pe`='Yes' AND `pph`='No' AND `paph`='Yes'");

'pe' == ('email');
'pph' == ('phone');
'paph' == ('alt_phone');

foreach($users->results() as $u){
    ?>

<p align="center"><?php echo escape($u->email); ?></p>
<p align="center"><?php echo escape($u->phone); ?></p>
<p align="center"><?php echo escape($u->alt_phone); ?></p>
<?php } ?>

因此,结果应该输出:用户电子邮件和用户的替代电话号码,而不是用户第一个电话号码。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-28 08:34:47

当用户更改他们的设置时,只需将pe、ph和paph的值更新为0或1.0=保持私有,而1= public。

剩下的就很简单了:

代码语言:javascript
复制
    <?php

    $id = (int)$_GET['id'];
    $users = DB::getInstance()->query("SELECT `id`, `email`, `phone`, `alt_phone`, `pe`, `pph`, `paph` FROM `users` WHERE `id` = $id");

/*
Use this query if you make a new table:

$users = DB::getInstance()->query("SELECT `users`.`id`, `users`.`email`, `users`.`phone`, `users`.`alt_phone`, `users_settings`.`pe`, `users_settings`.`pph`, `users_settings`.`paph` FROM `users` LEFT JOIN `users_settings` ON `users_settings`.`userid` = `users`.`id` WHERE `users`.`id` = $id");

*/

    foreach($users->results() as $u){

?>

    <p align="center"><?php echo ($u->pe === false ? 'Hidden' : escape($u->email)); ?></p>
    <p align="center"><?php echo ($u->pph === false ? 'Hidden' : escape($u->phone)); ?></p>
    <p align="center"><?php echo ($u->paph === false ? 'Hidden' : escape($u->alt_phone)); ?></p>

    <?php } ?>

我所做的就是使用简短的if查询来检查每个值的设置是0还是1,如果是0(即false),那么不要显示数字/地址,只需说‘隐藏’。如果1(i.e.true``),则显示从查询中收集的变量。

该代码未经测试,可能存在一些小错误/输入错误。(当然,只有在使用上面描述的pe、pph和paph字段时才能工作。

票数 1
EN

Stack Overflow用户

发布于 2014-05-28 08:01:54

您应该查询数据库中所有必要的字段(包括pe、pph等)。当某人“查看”配置文件并有一个条件语句显示详细信息时,如果隐私字段设置为"true“,则将细节隐藏起来。不要重复设置为私有的细节

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23905825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档