创建PHP注册类+模板系统?

时间:2011-08-31 21:03:44

标签: php sql class

截至目前,我已经创建了一个模板类,并且我已经创建了一个注册类。但我无法让两者正常工作,以便我可以在模板文件中显示变量。

以下是我的模板类的基础知识:

class siteTemplate {
    function getTemplate($file, $varesc=false) {
        if (file_exists("templates/" . $file)) {
            $data = file_get_contents("templates/" . $file);
            $data = str_replace("\"","\\\"", $data);
            $data = str_replace("\'","\\\'", $data);
            $data = str_replace("\\n","\\\n", $data);
            if($varesc)
                $data = str_replace("\$","$", $data);
                return $data;
            } else {
                die("Error.<br />Could not find <strong>" . $file . "</strong>.");
            }
    }
    function createGlobal() {
        global $siteName, $siteUrl;
        global $content;
        eval("\$main = \"".$this->getTemplate("main.html")."\";");
        echo $main;
    }
}

$tp = new siteTemplate();

我的注册类中的一个函数:

public function get_username($uid) {
    $result = mysql_query("SELECT username FROM users WHERE uid = $uid");
    $user_data = mysql_fetch_array($result);
    echo $user_data['username'];
}

我可以回复index.php

中注册类的数据
echo $user->get_username($uid);

但我不能在我的模板文件中做同样的事情。我需要做出哪些调整才能使其协同工作。实例:http://www.aarongoff.com/i 用户名:test 密码:测试

如果你看起来我正在回应“登录为:测试” 但是当我尝试在我的模板文件中调用该变量时,它只显示“登录为:”

(我知道有SQL漏洞,我只是测试让我的课程运行)

1 个答案:

答案 0 :(得分:1)

对此的真正答案是PHP IS 模板!使用纯PHP代码作为模板。然后,您不必在广告模板类中重新实现PHP的每个功能。

这称为http://en.wikipedia.org/wiki/Inner-platform_effect,您应该避免使用它。只需直接使用PHP,它就是它的用途。

你应该做的就是命名PHP文件,并在逻辑上分离概念。但是不要试图在PHP中重新实现PHP。