php中的动态页面/链接如何工作

时间:2013-02-20 17:27:17

标签: php url dynamic-pages

我为用户创建了一个小型登录系统,他们可以登录并在account_setting页面上更改用户信息。

但是因为我对php很新,我想知道如何为每个用户提供自己的页面?一个公开的页面。

Ex,用户“Steven”有user_id=17

如何为该用户创建页面,以便在那里显示他的信息。 像website.com/user=17 ...他的信息。

此外,如果页面可以作为模板,只需要根据用户的不同信息/网址。

我不是要求任何人为我写这个,一个好教程的链接会工作得很好:) 但请,关于这个话题没有5年的帖子。

4 个答案:

答案 0 :(得分:0)

您需要 userprofile.php?userid = 17 并使用 $ _ GET ['userid'] 根据该用户绘制信息。 userprofile.php上的HTML应该相同,只有数据会根据用户ID而改变。如果未设置userid,则显示错误消息或其他内容

答案 1 :(得分:0)

一般说:

if (!empty($_GET['user']) && is_numeric($_GET['user'])){
  //Find him in database
  if (user_found($_GET['user'])){
    include "left_column.php" ;
    include "user_info.php" ;
  } else {
    echo "Page is not found" ; //or set header error 404
  }
} else {
  include "news_column.php" ;
}

答案 2 :(得分:0)

website.com/index.php?user=17

<?php
require_once 'db/connect.php';

//Pull in 'user' from the query string.
$user = isset($_GET['user']) ? trim($_GET['user']) : null;

//Try to pull that user's info from the database.
$stmt = $dbh->prepare("SELECT * FROM user WHERE user_id = :user_id");
$stmt->bindParam(':user_id', $user);
$stmt->execute();
$user= $stmt->fetch(PDO::FETCH_ASSOC);

if(!is_array($user)){
    //User not found. Throw 404 or redirect.
    header('HTTP/1.0 404 Not Found');
    exit;
}
?>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title><?php echo htmlentities($user['name'], ENT_QUOTES, "utf-8"); ?></title>
    </head>
    <body>
        <h1><?php echo htmlentities($user['name'], ENT_QUOTES, "utf-8"); ?></h1>
        <p>
            <?php echo nl2br(htmlentities($user['bio'], ENT_QUOTES, "utf-8")); ?>
        </p>
    </body>
</html>

答案 3 :(得分:-1)

我将假设您将用户信息存储在数据库中。为了争论,我们会说它是一个mysql数据库。您需要做的是捕获用户标识,然后从数据库中只读取该列。

如果您的网址是website.com/user/view.php?id=17,则您的用户变量将位于$ _GET ['id']

这样的事情:

$id = mysqli_real_escape_string($_GET['id']);
$results = mysqli->query("select * from users where id = '$id'");
$results = $results->fetch_assoc();

...将为用户提供信息;然后你只需要构建一个页面来显示它。