2012-06-01 171 views
-2

我在订阅电子报订阅时遇到问题。问题是,当有人点击提交时,我似乎没有收到任何错误或者实际上什么都没有,只发生了一个空白页面,没有其他东西,所以很难诊断。订阅电子报订阅没有错误

基本上,政策提醒表单上有一个名为newslettersubscribe的字段,如果这是等于是用户也订阅了新闻通讯列表以及他们正在注册的政策提醒列表。我不是100%确定是否正确使用real_escape_string函数吗?

<?php 
$email = real_escape_string($_POST['email']); 
$name = real_escape_string($_POST['name']); 
$newslettersubscribe = real_escape_string($_POST['newslettersubscribe']); 
if ($newslettersubscribe == 'no'){ 
} 
else{ 
mysql_query("INSERT INTO ymeg_chronoforms_data_NewsletterDesigner (email, name) 
VALUES ('$email', '$name')") or die(mysql_error()); 
} 
?> 

编辑>>>>>>>>>>>>>>>>>>>

如果我删除的真正转义字符串我得到的错误

Unknown column 'email' in 'field list' 

时点击提交,以便大概说明白页,以上错误是什么意思?

EDIT 2 >>>>>>>>>>>>>>>>>

这是从数据库中我尝试连接到一个样本记录:

cf_id 6 
cf_uid 5f04f21f80a596f17341cec92a48b197 
cf_created 2012-06-01 10:13:16 
cf_modified  
cf_ipaddress 217.154.186.84 
cf_user_id 44 
name Iain Simpson 
email [email protected] 
+1

你的html看起来像什么?这些值是否已经发布? – Grumpy

+0

使用'mysql_real_escape_string'。另外,'或die()'不是很好的做法,请使用适当的错误处理。 – Tikkes

+0

你怎么知道这是“垂死”?它看起来像是$ newslettersubscribe被设置为no,或者如果查询成功,则不会生成输出。也许你应该添加一些'echo'语句来看看真正发生了什么。 – nickb

回答

1

尝试呼应值,以确保它不与单纯默认为

$newslettersubscribe = 'no'; 

一个问题,你需要做一些简单的像下面这样:

$email = real_escape_string($_POST['email']); 
$name = real_escape_string($_POST['name']); 
$newslettersubscribe = real_escape_string($_POST['newslettersubscribe']); 

echo $email.' | '.$name.' | '.$newslettersubscribe; 
exit(); 

这应该至少向您显示您的值是为所需的变量。它的所有内容只是简单地解决即将发生的问题,以及它如何影响您的sql查询。

+0

我尝试了回显值,他们回声良好,当我尝试将它们添加到表中时,它变得疯狂。现在我临时删除了真正的转义字符串我得到的错误:'字段列表'中的未知列'email' –

+0

'字段列表'将意味着它的数据库架构缺少'email'列,什么是数据库架构?你可以发布它并添加到你的问题? – Jakub

+0

它发布到该DATEBASE是ymeg_chronoforms_data_NewsletterDesigner 列= CF_ID(主键) cf_uid 名 电子邮件 –