Php 如何停止接收插入数据库的空白数据?
在我们的网站上有一个注册表格,用户可以在其中订阅我们的时事通讯。表单有名字和姓氏字段、电子邮件地址字段、城市、州和国家字段。当订阅者注册该列表时,他们将被插入到数据库中 有时我们会收到幻影或空白电子邮件注册,但没有将任何信息插入数据库,尽管6个字段中有3个是必需的。我最近意识到,只要在Dreamweaver中打开php文件,就会提示使用空白信息访问数据库 总是通过的电子邮件地址是一个熟悉的地址。我们使用Godaddy托管两个站点,第二个站点是有问题的站点,访问数据库的电子邮件地址来自第一个站点 有没有办法阻止这些虚幻的电子邮件 以下是我的php代码:Php 如何停止接收插入数据库的空白数据?,php,mysql,Php,Mysql,在我们的网站上有一个注册表格,用户可以在其中订阅我们的时事通讯。表单有名字和姓氏字段、电子邮件地址字段、城市、州和国家字段。当订阅者注册该列表时,他们将被插入到数据库中 有时我们会收到幻影或空白电子邮件注册,但没有将任何信息插入数据库,尽管6个字段中有3个是必需的。我最近意识到,只要在Dreamweaver中打开php文件,就会提示使用空白信息访问数据库 总是通过的电子邮件地址是一个熟悉的地址。我们使用Godaddy托管两个站点,第二个站点是有问题的站点,访问数据库的电子邮件地址来自第一个站点
<?php
define('DB_NAME', '');
define('DB_USER', '');
define('DB_PASSWORD', '');
define('DB_HOST', '');
$first = Trim(stripslashes($_POST['First']));
$last = Trim(stripslashes($_POST['Last']));
$city = Trim(stripslashes($_POST['City']));
$state = Trim(stripslashes($_POST['State']));
$country = Trim(stripslashes($_POST['Country']));
$email = Trim(stripslashes($_POST['Email']));
$tempt = $_POST['tempt'];
$tempt2 = $_POST['tempt2'];
if ($tempt == 'http://' && empty($tempt2)) {
$error_message = '';
$reg_exp = "/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/";
if(!preg_match($reg_exp, $email)) {
$error_message .= "<p>A valid email address is required.</p>";
}
if (empty($first)) {
$error_message .= "<p>Please provide your first name.</p>";
}
if (empty($last)) {
$error_message .= "<p>Please provide your last name.</p>";
}
if (!empty($error_message)) {
$return['error'] = true;
$return['msg'] = "<p>The request was successful, but the form was not filled out correctly.</p>".$error_message;
echo json_encode($return);
exit();
} else {
$return['error'] = false;
$return['msg'] = "<p style='top:9px; color:#ff6000; left:63px; text-align:left; font-size:1.50em;'>".$first .", <p style='top:0px; width:100%; left:63px; text-align:left; line-height:1.1em;'>your subscription request has been processed.</p>";
echo json_encode($return);
}
} else {
$return['error'] = true;
$return['msg'] = "<p>There was a problem while sending this form. Try it again.</p>";
echo json_encode($return);
}
$to = "3elementsreview@gmail.com, marlonfowler@yahoo.com";
$subject = "New Email Address for Mailing List";
$headers = "From: $email\n";
$headers .= "Content-type: text/html\r\n";
$message = "<span style='color:#252525; font-size:1.2em;'>A visitor to 3Elements Review has entered the following information so they can be added to your mailing list.</span><br>\n
<br>
<span style='color:#252525; font-weight:bold; font-size:1.35em;'>$first $last</span><br>
<span style='color:#252525; font-weight:bold; font-size:1.35em;'>$city, $state</span><br>
<span style='color:#252525; font-weight:bold; font-size:1.35em;'>$country</span><br>
<span style='color:#252525; font-weight:bold; font-size:1.35em;'>$email</span>";
mail($to,$subject,$message,$headers);
mail($user,$usersubject,$usermessage,$userheaders);
$link = mysql_connect('xxxx.somedomain.com', 'myusername', 'mypassword');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
$db_selected = mysql_select_db('mefowler', $link);
if (!$db_selected) {
die('Can\'t use ' . 'mefowler' . ': ' . mysql_error());
}
$value = mysql_real_escape_string($_POST['First']);
$value2 = mysql_real_escape_string($_POST['Last']);
$value3 = mysql_real_escape_string($_POST['City']);
$value4 = mysql_real_escape_string($_POST['State']);
$value5 = mysql_real_escape_string($_POST['Country']);
$value6 = mysql_real_escape_string($_POST['Email']);
$sql = "INSERT INTO members (First, Last, City, State, Country, Email, Date) VALUES('$value','$value2','$value3','$value4','$value5','$value6',NOW() + interval 2 hour)";
if (!mysql_query($sql)){
die('Error: ' . mysql_error());
}
mysql_close();
?>
HTML -------->
<form class="contact-me" action="php-signup/sign-up-complete.php" method="post" name="contact-me">
<div id="response2"><!-----------------CONTAINS FORM ERROR MESSAGE--------------></div>
<input name="First" pattern="[A-Za-z]{2,15}" title="Your First Name is Required" id="first" autofocus placeholder="First Name" type="text" maxlength="15"></input><br>
<input name="Last" pattern="[A-Za-z]{2,15}" title="Your Last Name is Required" id="last" placeholder="Last Name" type="text" maxlength="15"></input><br>
<input name="Email" pattern="[A-Za-z0-9\@\.com]{7,50}" title="Your E-Mail Address is Required" id="email" placeholder="E-Mail Address" type="email" maxlength="50"></input><br>
<input name="City" pattern="[A-Za-z\s]{3,40}" id="city" title="Please fill in your 'City'" placeholder="City" type="text" maxlength="40"></input><br>
如果页面未发布到,请停止脚本运行
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//put code here}
else {}
我建议删除ur db的登录详细信息,如果它们是真实的。在前端使用JS检查所有字段是否完整。在后端用PHP验证。没有电子邮件吗?你应该更新所有使用该密码的帐户……或者干脆删除这个问题,重新开始。基纳,我相信这是可行的。非常感谢。