如何在Zen Cart的EZ-Pages中显示客户邮箱?嵌入PHP代码无法运行求助
在Zen Cart EZ-Pages中显示登录客户邮箱的解决方法
EZ-Pages默认不会解析页面内容中的PHP代码,直接将代码写入后台内容框的话,代码会被当作纯文本输出,自然无法执行。以下是两种可行的解决方式:
方式一:直接利用Zen Cart内置会话变量(推荐)
Zen Cart在客户登录后,已经将邮箱地址存在$_SESSION['customer_email_address']会话变量中,无需额外查询数据库。你可以修改EZ-Pages的模板文件来输出这个变量:
- 找到对应模板的EZ-Pages页面文件,路径通常为
/includes/templates/你的模板目录/templates/tpl_ezpages_default.php - 在需要显示邮箱的位置插入以下代码:
<?php // 检查客户是否已登录 if (isset($_SESSION['customer_email_address'])) { echo $_SESSION['customer_email_address']; } ?>
方式二:模板中直接查询数据库(适合自定义场景)
如果因为特殊需求需要自行查询数据库,可在模板文件中添加以下代码(注意做好安全防护):
<?php if (isset($_SESSION['customer_id']) && $_SESSION['customer_id'] > 0) { // 强制类型转换防止SQL注入 $customer_id = (int)$_SESSION['customer_id']; $email_results = $db->Execute("SELECT customers_email_address FROM customers WHERE customers_id = $customer_id"); if (!$email_results->EOF) { echo $email_results->fields['customers_email_address']; } } ?>
注意事项
- 不要直接在EZ-Pages后台的内容编辑框中写入PHP代码,默认机制下无法解析执行。
- 任何直接使用用户输入的地方都要做好安全处理,比如对
customer_id做强制类型转换,避免SQL注入风险。
内容的提问来源于stack exchange,提问作者xb yang
相关产品推荐
相关产品推荐

