我是前端开发者,所以我的PHP有点缺乏,我被卡住了。
我正在尝试将表单中的一些数据写入Joomla数据库
它只是一个电子邮件地址,所以并不复杂。我在数据库中创建了一个表单和一个表来保存电子邮件地址。但是我无法写入数据库而且我不确定我缺少什么
我不确定我的代码中需要包含哪些类。我包括joomla / factory所以我没有收到错误告诉我JFactory不是一个对象,但我不知道我是否需要包含其他内容。
这是我的PHP代码:
$emailAdd = $_POST['email'];
require_once ('../../libraries/joomla/factory.php');
$db =& JFactory::getDBO();
$query = "INSERT INTO '#__pdfemails' ('emailaddress')
VALUES ('thevalue')";
$db->setQuery($query);
$db->query();
我根本没有任何错误,但它没有写入数据库。
有人可以帮忙吗?
答案 0 :(得分:5)
这是一个简单的答案 - http://extensions.joomla.org/extensions/contacts-and-feedback/forms
有2页表单构建器。我知道Chronoforms(它也是免费的)会完全按照你的意愿行事。您可以在10分钟内完成,包括安装时间。此外,您将获得验证和其他功能,如数据卫生,而无需自己编写。
根据您发布的代码判断,您将走向XSS和SQL注入攻击的道路。帮自己一个忙,并获得有效的扩展。
答案 1 :(得分:2)
您的SQL中有错误。这样:
$query = "INSERT INTO '#__pdfemails' ('emailaddress')
VALUES ('thevalue')";
应该是这样的:
$query = "INSERT INTO '#__pdfemails' (emailaddress)
VALUES ('thevalue')";
请注意列名称周围缺少单引号。
如果再次遇到这样的错误,请先尝试直接在MySQL中执行SQL。在Joomla环境中,可能存在许多错误被“隐藏”的点。这对于实际站点来说非常明智,尽管您应该能够配置开发站点以显示SQL错误以简化故障排除。