从唯一标识符动态加载页面

时间:2016-01-12 17:50:19

标签: php dynamic

我该怎么做?

我允许用户通过各种社交网站登录。我得到了他们唯一的标识符,而不是将它们重定向到其他页面

$id = ($profile->identifier);
$newURL = "/your-data/$id";
header('Location: '.$newURL);

,他们将能够存储一些关于他们自己的数据。

我知道,我将在此处获取所有必要的数据并将其保存到数据库中。

我想,/ your-data / 98432048320

显示他们从/template/header,index,footer.php

生成的网站

这是我到目前为止所做的工作:

on your-data / index.php

<?php
include("templates/header.htm");

// Set the default name
$action = 'index';
// Specify some disallowed paths
$disallowed_paths = array('header', 'footer');
if (!empty($_GET['action'])) {
   $tmp_action = basename($_GET['action']);
   // If it's not a disallowed path, and if the file exists, update $action
   if (!in_array($tmp_action, $disallowed_paths) && file_exists("templates/{$tmp_action}.htm"))
       $action = $tmp_action;
}
// Include $action
include("templates/$action.htm");

include("templates/footer.htm");
?>

我无法让它运行。它只是普通的PHP,没有框架......

1 个答案:

答案 0 :(得分:0)

您不应为每个唯一身份用户生成数十个模板。这将是多余的 相反,制作一个php文件,我们称之为content.php(无论如何) 此类文件可以分别包含动态生成的数据给特定用户。
包括content.php到您的主index.php
您的数据/ index.php的

<?php
include("templates/header.htm");

$action = 'index';   // Set the default name

if (!empty($_GET['action'])) {
   $tmp_action = basename($_GET['action']);

   if (is_numeric($tmp_action)){   // check if user identifier was passed in
       include("templates/content.php");
   }
}

include("templates/footer.htm");
?>

$tmp_action内可以自由访问content.php变量 content.php

<?php

    $userId = (int) $tmp_action;

    // possible case
    $query = "SELECT name, age, activity FROM social_users WHERE id = ". $userId;

    // here you can get all needed data for certain user 
    // which can be shown in #mainContainer div

?>
<div id="mainContainer"></div>