簡體   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