Php URL中的变量

Php URL中的变量,php,parameter-passing,Php,Parameter Passing,早上好 我正在为一个客户建立一个网站,我遇到了一个巨大的问题。我允许公共搜索,用户可以从下拉列表中选择搜索字段,然后在输入字段中输入搜索值。SQL查询运行并发送retunrs结果。然后,未注册用户可以通过单击查看来选择查看该特定用户的详细信息。现在很明显,点击视图链接,它们会被重定向到另一个使用php的页面 > <td><a href='http://localhost/mygiftsite/pub_list_view.php?user=<?php echo $us

早上好

我正在为一个客户建立一个网站,我遇到了一个巨大的问题。我允许公共搜索,用户可以从下拉列表中选择搜索字段,然后在输入字段中输入搜索值。SQL查询运行并发送retunrs结果。然后,未注册用户可以通过单击查看来选择查看该特定用户的详细信息。现在很明显,点击视图链接,它们会被重定向到另一个使用php的页面

> <td><a href='http://localhost/mygiftsite/pub_list_view.php?user=<?php echo $user_id;?>'>View</a></td>
但我想允许未注册的用户搜索和查看公共列表。请你帮我解决这个问题

是否可以隐藏变量,以便无法更改值? 如何通过单击URL阻止用户简单地更改列表变量的值 如果他们通过简单地更改URL来更改值,那么我如何保护我的用户列表隐私是否应设置为私有? 我不想使用.htaccess方法,因为您仍然可以简单地更改参数值。
我主要关心的是,可以在地址栏中简单地更改参数。如何阻止这种情况发生?

您需要在每个私人页面中检查加载它的用户是否是登录用户。 例如:


听起来你在问如何在这里建立一个完整的网站。。。不想冒犯你,但这个问题对这个网站来说太广泛了。你的注册用户已经有隐私设置了吗?我真的听不懂那句话。就像重定向未登录的用户一样,如果他们试图查看的配置文件的隐私设置设置为private,您也可以这样做。我不是要求您构建整个站点。你读过请求了吗?我需要通过简单地更改参数值来阻止已设置为private的列表被访问。我不是要求你编写任何代码。我要求通过一个简单的用法.htaccess或告诉我使用这段代码来引导我正确的方向。我很抱歉,但我不确定这显然太广泛了…每个列表都有一个隐私字段,可以设置为私有或公共。公共列表应该可以访问,而私人列表不应该访问,但是这并不能解决我的问题。我的问题是,任何人都可以简单地更改参数的值,以打开他们没有搜索的列表。我该怎么阻止呢?阿里斯,谢谢你回答我的问题。这是我用于只有注册用户才能访问的页面,但我需要为公共页面做类似的事情。我允许我的注册用户创建公共列表我希望公共数据可访问,但标记为私有的列表不可访问。您如何知道列表是私有的还是公共的?当用户创建新列表时,他们会通过下拉菜单选择“公共”或“私有”选项。这作为字段隐私存储在表列表中,只能是private/public。您需要检索列表记录,并根据private字段展开登录。请参阅更新的答案。谢谢,这看起来会起作用。我正在重建我的pub_search.php页面。我会让你知道结果的。提前感谢您抽出时间提供帮助。
<?php
    session_start();
    if(!isset($_SESSION['userid'])){
        header("location: http://localhost/mygiftsite/login.php");
    }
?>
//keep logged user. Store in session during sign-in
$loggedUserId = $_SESSION['loggedUserId'];

//from URL GET parameter
$otherUserId = $_GET['userid'];
$listId = $_GET['list'];

if($loggedUserId==$otherUserId)
      //do something, allow access
else {
      //retrieve the list record based on $listId, get $isPrivate field

      //do something else, don't allow access
      if($isPrivate == true )
           header("location: http://localhost/mygiftsite/login.php");
}