截至目前,我已经创建了一个模板类,并且我已经创建了一个注册类。但我无法让两者正常工作,以便我可以在模板文件中显示变量。
以下是我的模板类的基础知识:
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漏洞,我只是测试让我的课程运行)
答案 0 :(得分:1)
对此的真正答案是PHP IS 模板!使用纯PHP代码作为模板。然后,您不必在广告模板类中重新实现PHP的每个功能。
这称为http://en.wikipedia.org/wiki/Inner-platform_effect,您应该避免使用它。只需直接使用PHP,它就是它的用途。
你应该做的就是命名PHP文件,并在逻辑上分离概念。但是不要试图在PHP中重新实现PHP。