我正在使用PHP / MySQL创建社交网络脚本。一切都很好。主页,个人资料,编辑个人资料等。但个人资料页面包含网址 - http://www.localhost/socialnetwork/profile.php。
我有5个虚拟用户,并且使用用户名/密码访问配置文件时。可以在浏览器上看到相同的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'];
}
答案 0 :(得分:1)
$_GET['u']
读取网址答案 1 :(得分:0)
BEFORE PROFILE.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”。 Here more info about $_GET
检索完用户名后,您可以查询数据库以获取该用户的所有信息并根据它们构建页面!
这样,基于$ _GET ['u'],你总会得到一个不同的页面!如果数据库中不存在用户名,请考虑制作正确的错误页面
希望有所帮助
答案 2 :(得分:0)
在你的while循环中添加它
$id=$record['id'];
然后在你的while循环中建立一个链接 像这样
echo '<p>
<a href="the url of your profile page.php?id='$id'">
'.$fname.'
</a></p>';
这将回显数据库中的所有名称,并为它们添加唯一性。 当您在个人资料页面上,您可以使用
获取该特定用户的IDecho $_GET[id'];