-2

私が書いているニュースレターの購読に問題があります。問題は、誰かが送信をクリックしたときにエラーが発生したり、実際には何も発生していないように見えることです。空白の白いページが表示され、それ以上何も表示されないため、診断が困難です。

基本的に、ポリシー リマインダー フォームには、newslettersubscribe と呼ばれるフィールドがあります。これが yes の場合、ユーザーは、サインアップしているポリシー リマインダー リストだけでなく、ニュースレター リストにも登録されます。real_escape_string 関数を正しく使用しているかどうかは 100% わかりません。

<?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'

送信を押すと、おそらく白いページが説明されますが、上記のエラーはどういう意味ですか?.

編集 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   test@1testdsdsfswqewed.csdom
4

1 に答える 1

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 クエリにどのように影響するかをトラブルシューティングするだけです。

于 2012-06-01T14:13:19.977 に答える