使用PHP的不同用户的不同页面

使用PHP的不同用户的不同页面,php,mysql,Php,Mysql,我想知道如何让用户“McKenzie”看到他自己可以操作的独特页面,“Wendy”在登录时看到她自己的页面 我已经创建了登录和页面,将它们连接到一个MySQL数据库,给它们ID等,所以我可以做所有这些,我知道会话等 那么,有人能告诉我,我将如何做到这一点,我会为每个单独的用户制作不同的页面吗?我在想一些关于 注册页面: 将数据存储在数据库中,获取用户ID并使用?pageid=1将用户带到基于ID的页面 但我不知道如何在不手动创建页面的情况下创建每个页面,因为您可以想象为每个单独的用户创建一个新页

我想知道如何让用户“McKenzie”看到他自己可以操作的独特页面,“Wendy”在登录时看到她自己的页面

我已经创建了登录和页面,将它们连接到一个MySQL数据库,给它们ID等,所以我可以做所有这些,我知道会话等

那么,有人能告诉我,我将如何做到这一点,我会为每个单独的用户制作不同的页面吗?我在想一些关于

注册页面:

将数据存储在数据库中,获取用户ID并使用?pageid=1将用户带到基于ID的页面

但我不知道如何在不手动创建页面的情况下创建每个页面,因为您可以想象为每个单独的用户创建一个新页面将是一件痛苦的事情。。。而且效率很低。有什么想法吗


请给我一个例子和代码,这将是非常感谢!提前谢谢大家

下面是一个您可以做的示例:

<?php

  if (!isset($_SESSION['user_id'])) && (!isset($_SESSION['user_name'])) {
    echo '<p class="login"><a href="login.php">log in</a></p>';
    //exit();
  }
  else {
$user_name = $_SESSION['user_name'];

    echo('<p class="login"><a href="mypage.php">' . $user_name .'\'s page</a> | <a href="logout.php">Log out</a></p>');
  }

?>

您可以添加更多内容,但这只是为了生成有关他们是否已登录的信息。。如果设置了$\u会话['user\u id'],则可以基于该信息生成代码。注意,您需要创建$user_name或任何变量,可能来自sql查询

我的答案是假设您希望创建完全可自定义的用户数据,并增加在用户之间共享页面的可能性,如配置文件页面。通过创建一个php页面,通过$\u GET或$\u POST数据搜索MySQL表,就可以实现这一点

我将把这个答案扩展为几个步骤

SQL表

您首先需要的是MySQL设置,我假设您已经完成了一个基本设置,但我将继续创建一个简单的设置

基本设置将是登录数据和自定义用户数据,您可以查看我的设置

php用户页

最简单的方法是从$\u get数据中获取请求的用户。为此,我们只需获取数据并请求用户提供信息:

$requested_user = $_GET['id'];

$db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'root', 'MyPassword');

try {

    $stmt = $db->prepare("SELECT * FROM c_userpage WHERE id = ?");

    $stmt->execute(array($requested_user));

    $mydata = $stmt->fetch();

} catch (Exception $e) {

    //error with mysql
    die();

}
现在我们可以简单地将用户数据添加到页面中

echo "Hello! my name is {$mydata['username']}!\n";
echo "About Me: {$mydata['custom_data']}";
将用户发送到他们的页面

我们可以简单地使用www.page.com/user.php?id=2,这将为id=2的用户请求数据

额外费用

如果您想保持用户页面的私密性,只需使用$\u POST或$\u SESSION请求id,然后检查用户是否登录


您可能需要查找有关会话ID的信息。您的要求很高,可能需要几个脚本才能完成您需要的任务。我建议在SO中提出类似问题之前先阅读一些教程。这里有一个例子:我知道关于会话我知道如何使用开始结束它们等等,我只是不知道如何使用它们来创建新页面,会话不能创建新页面?它只存储一个新变量,但感谢您提供的链接,您不会使用它们来创建新页面。您可以使用php实现这一点,然后使用会话id来标识登录的用户。你需要一个脚本来创建一个用户,用密码我希望你能加密这个,然后是一个允许登录的页面,然后是一个允许登录用户添加内容的页面,以及一个显示他们添加的所有项目的页面,等等,请显示你的尝试。提出问题所有这些,我都做了。我只想问一件事,我如何让不同的用户看到不同的页面而不实际创建页面我制作了登录脚本和注册脚本以及mysql加密数据库。它不会返回通知/错误,因为mypage.php“user_name”页面不存在吗?当然可以。我将对此进行编辑,使其更加清晰。现在看一看注意,这假设用户名也存储为会话变量。如果不是的话,你可以从你的数据库中从user_id查询,然后把它带进来。好吧,这对我来说已经澄清了一件事,但是现在我如何创建这个页面而不必手动创建呢?有没有:如果mypage.php/mckenzie不存在,那么创建它并包含homepage.tmpl.php你明白我说的吗?谢谢你的帮助:谢谢,这太棒了!这正是我要找的!伟大的如果您需要添加任何信息,请询问!解释得很好。但是存在一些安全漏洞,特别是在将用户id存储为$GET变量时。根据这个网站的用途,它会使它相对容易阅读:很容易访问另一个用户的个人页面。是的,但正如我上面所说,这是围绕着共享用户的个人或可定制页面而建立的。最后,我为一个只有用户才能看到的私有页面添加了代码。但是,使用www.page.com/user.php?id=2,对于已经登录的用户来说,只需将id更改为其他内容,就可以很容易地开始浏览其他人的页面。有一个简单的解决方案;只需将id作为会话id存储在登录页面中,然后使用$\u session['id']获取该id即可。这是我自己用艰苦的方式学会的