2011-03-06 121 views
0

早上所有 - 修正的问题,因为现在的数据进入数据库正确,添加到数据库 - 表单元素不添加到数据库

我是一个新手到PHP/MySQL的,而是通过各种文章和导游有建立了一个表单,提交时我希望用户被发送到单独的谢谢页面(这样我可以跟踪转换等)。

这里是我目前使用的代码,当表单没有错误提交,在同一页上提供了一个“谢谢”消息:

<?php 
if(isset($error)) 
    {echo "<span id='Warning'>Please enter all areas marked with *</span>";} 
else if (isset($sent)) 
    {echo "<span id='Normal'>Thank you for your enquiry, we will contact you shortly</span>";} 
?> 

以前我是使用后的以下MySQL查询(其中字段中输入DB),但这个用户发送到“谢谢您”页即使有与他们完成

header('Location: http://www.THANK-YOU-PAGE'); 
} 
?> 

任何人都可以看到什么错得离谱形式的错误?我是新来的,所以任何帮助表示赞赏。

感谢

+1

[Bobby tables](http://xkcd.com/327/)发送问候! – 2011-03-06 11:51:07

+0

你是否收到任何MySql错误? – 2011-03-06 11:51:41

+0

请考虑使用绑定变量来帮助防止SQL注入攻击。 – 2011-03-06 11:52:54

回答

0

也许,你缺少的插入一些字段的值到声明。如果不指定字段,则必须为每个字段输入恰好一个值,否则mysql将不知道哪个值会在该字段中出现。 因此,为了避免这种情况,尝试写你的发言像下文中,要填充在书面声明中的字段:

INSERT INTO field1, field2 VALUES ('value1', 'value2'); 

反正你的查询是非常不安全的。您应至少使用mysql_real_escape_string来逃避用户输入。您可以在同一链接或here中阅读有关SQL注入的信息。还有其他我更喜欢的选择,例如使用PDO class of PHP

+0

谢谢你 - 我删除了 标题('Location:http://www.THANK-YOU-PAGE'); } 从刚才我的sql查询和数据现在出现在数据库中的正确字段。所以我想我不需要按照你的建议去做,但是,当有人提交表单时,我怎么知道这样做,他们被重定向到一个THANK YOU页面?目前,以下是用于: 请输入标有*所有领域”;} \t其他如果(isset($发送)) \t \t {回声 “谢谢您的垂询,我们将尽快与您联系”;}? \t> – Motley9735 2011-03-06 12:10:10

+0

你可以使用JavaScript做,或检查了这一点http://stackoverflow.com/questions/1614241/redirect-after-post – fiunchinho 2011-03-06 13:45:31

+0

发送任何HTML数据后,你不能使用'header()'重定向。 – smdrager 2011-04-05 16:27:44