如何根据用户加载代码的变体?

时间:2011-03-29 22:44:31

标签: php customization

我希望能够根据用户提供不同的代码变体。因此,如果USer A登录,我希望他们看到与他们的偏好相关的代码/页面。

我知道我们可以用php / mysql来保存路径。但是我如何在同一页面上提供代码。所有用户都有相同的页面index.php,home.php,profile.php,但我希望能够使用同一页面来提供这些请求,只需显示特定的代码即可。

2 个答案:

答案 0 :(得分:1)

试一试......

您可以在会话变量中存储从数据库加载的首选项。 下一步是在页面上简单地打印这些变量。这样每个用户都可以获得自己的页面。

示例:

echo "<p>Welcome ".$_SESSION['username']." to your domain!</p><br />";  
echo "<p>I heard you like ".$_SESSION['fav_food']." a lot.</p>";

这将推出:

Welcome Barney to you domain!  
I head you like chocolate coockies a lot.

您也可以尝试使用Ajax,但我自己也是Ajax中的菜鸟,所以我无法帮助您,但您可以进行一些搜索。

我希望它可以帮到你!

<强>更新

要设置会话变量,您可以从源代码中加载一个值,并像任何其他变量一样存储它。 像:

$_SESSION['username'] = $queryresult['user'];

确保您通过以下方式启动每个页面来启用会话:

session_start();

我希望这是你问题的答案。

您从哪里获得用户a的信息?我想一个数据库?

答案 1 :(得分:1)

不完全确定这是否是你所追求的,但也许它会帮助你走上正确的道路......

<?php
    // sample preferences, read from database
    $userPrefs = array(
        'block1' => true,
        'block2' => false,
        'block3' => true
    );

    $block1 = '<div id="block1">This is Block #1!</div>' . PHP_EOL;
    $block2 = '<div id="block2">This is Block #2!</div>' . PHP_EOL;
    $block3 = '<div id="block3">This is Block #3!</div>' . PHP_EOL;

    if ($userPrefs['block1'] == true) { echo $block1; }
    if ($userPrefs['block2'] == true) { echo $block2; }
    if ($userPrefs['block3'] == true) { echo $block3; }
?>

<强>输出:

<div id="block1">This is Block #1!</div>
<div id="block3">This is Block #3!</div>