1

我正试图从我的表单中阻止一点垃圾邮件。这是一个电子邮件列表,只需将框中的任何文本提交到我的数据库中即可。有没有办法让我检查用户是否在字段中添加了@?

echo '<style type="text/css">';
include 'style.css';
echo '</style>';
if( $_POST )
{
    $con = mysql_connect("localhost","flickey_emails","");

    if (!$con)
    {
        die('Could not connect: ' . mysql_error());
    }

    mysql_select_db("flickey_emailsubscribe", $con);

    $users_email = $_POST['email'];

    $users_email = htmlspecialchars($users_email);

    $query = "INSERT INTO `flickey_emailsubscribe`.`emails` (`id`, `email`) VALUES (NULL, '$users_email');";

    mysql_query($query);

    echo "<h2>Thanks for joining the email list!</h2>";

    mysql_close($con);

HTML

    <form action="contact.php" method="post">
Email: <input type='text' name='email' id='email' /><input type='submit' value='Submit' />  
</form>
4

2 回答 2

1

如果你只是想检查提交的是否有@,你可以使用 indexOf():

var form_text = "random text";
if(form_text.indexOf("@") == -1) {
  //@ was not found, show message, error, etc.
} else {
  //submit form
}
于 2012-11-30T03:30:41.800 回答
1

我建议您在这种情况下使用正则表达式。Tyr this

`'/^[^\W][a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*\@[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*\.[a-zA-Z]{2,4}$/'`

您可以严格用户。@即使这也可以用于验证完整的电子邮件地址格式
这是测试脚本

$string = "first.last@domain.co.uk";
if (preg_match(
`'/^[^\W][a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*\@[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*\.[a-zA-Z]{2,4}$/'`,
$string)) {
echo "example successful.";
}>


您也可以为此使用filter_var

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
  echo "Valid email address.";
} else {
  echo "Invalid email address.";
}
于 2012-11-30T03:31:01.053 回答