繁体   English   中英

为用户的公开个人资料创建隐私设置

[英]Creating privacy settings for a users public profile

我试图通过为用户提供个人资料设置选项来选择公开显示的信息,从而为用户设置个人隐私设置。

我正在测试此示例查询以尝试找出答案。

例:

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

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

新列称为pe,pph和paph。 (第一个p代表私有)。 pe等于电子邮件,pph等于电话,pap等于替代电话

默认情况下,该信息设置为“否”,以便非公开查看。

我的问题:

我该如何联系

  1. pe到电子邮件
  2. PPH到电话
  3. 到alt_phone

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

我在这方面超出了我的舒适范围,所以请不要让我变得很糟糕,但这是我尝试过的。

<?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 } ?>

因此结果应该输出:“用户电子邮件”和“用户备用电话号码”,而不是“用户第一电话号码”。

当用户更改设置时,只需将pe,ph和paph的值更新为0或1。0 =使其保持私有状态,而1 =保持公共状态。

然后剩下的就很简单了:

    <?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 } ?>

如果查询查询每个值的设置是0还是1,我所做的就是使用速记。如果它是0(即false ),则不显示数字/地址,而只是说“ Hidden”。 如果为1 (ie true),则显示从查询中收集的变量。

该代码未经测试,可能有小错误/错别字。 (当然,只有在如上所述使用pe,pph和paph字段时,它才有效。

当有人“查看”配置文件时,您应该在数据库中查询所有必填字段(包括pe,pph等),并且如果将privacy字段设置为“ true”以隐藏详细信息,则可以使用条件语句来显示详细信息。 不要回避私人的细节

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM