通过在URL中添加唯一ID使配置文件页面唯一.但是如何


Making profile page unique by adding unique ID in URL. But how?

我正在使用PHP/MMySQL创建一个社交网络脚本。一切都很好。主页、个人资料、编辑个人资料等。但个人资料页面有URL-http://www.localhost/socialnetwork/profile.php.

我有5个虚拟用户,当使用他们的用户名/密码访问配置文件时。在浏览器上可以看到相同的URL。

但我想要类似的东西

URL-http://www.localhost/socialnetwork/profile.php?u=testuser.

其中"u"可以是数据库中唯一的用户Id。如何实施?这是我的代码-

<?php  
include("includes/session.php");
include("includes/database.php");
include("includes/user.php");
include("includes/functions.php");
if(!$session->is_logged_in()) { redirect_to("login.php");}
?>
 <?php
$user_id = $_SESSION['id'];
// - Here's What I have added  - But nothing changes. The URL is same.
if(isset($_GET['id'])){
$uid =   $_GET['id']; 
}
$sql    = "SELECT * FROM users WHERE id = '$user_id' LIMIT 1"; 
$result = $database->query($sql);
while($record = $database->fetch_array($result)){
$fname      = $record['fname'];
$lname      = $record['lname'];
$email      = $record['email'];
$sex        = $record['sex'];
$password   = $record['password'];
$phone      = $record['phone'];
$birthday   = $record['birthday'];
$display    = $record['dp'];
$bio        = $record['bio'];
 }
  1. 使用$_GET['u']读取url
  2. 在您的DbTable中有一个带有唯一索引的列用户名
  3. 使用将两者结合的SQL查询来读取用户配置文件

在配置文件之前。PHP

当用户"foo"(一个伪用户名)登录时,他被重定向到页面

http://www.localhost/socialnetwork/profile.php?u=foo

太棒了!但是我们该怎么做呢?重定向是用PHP进行的,类似于:

header('location: /socialnetwork/profile.php?u=' . $theusername_just_logged);

header()函数基本上重定向到另一个页面。调用该函数后,您将进入页面

http://www.localhost/socialnetwork/profile.php?u=foo

INTO PROFILE.PHP

在profile.php文件中,通过变量$_GET检索用户名。在这种特殊情况下,$_GET['u']将包含用户名,即"foo"。此处提供有关$_GET 的更多信息

一旦检索到用户名,就可以查询数据库以获取该用户的所有信息,并基于这些信息构建页面!

这样,基于$_GET['u'],您将始终获得不同的页面!如果数据库中不存在用户名,请考虑制作一个正确的错误页面

希望它能帮助

将其添加到while循环中

$id=$record['id'];

然后在while循环中创建一个链接像这个

echo '<p>
<a href="the url of your profile page.php?id='$id'">
'.$fname.'
    </a></p>';

这将呼应数据库中的所有名称,并为它们添加唯一性。当你在个人资料页面上时,你可以使用获得特定用户的id

echo $_GET[id'];