Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何限制用户可以在表单中键入的内容(必须在字段中有@)_Php_Html_Forms_Character_Limit - Fatal编程技术网

Php 如何限制用户可以在表单中键入的内容(必须在字段中有@)

Php 如何限制用户可以在表单中键入的内容(必须在字段中有@),php,html,forms,character,limit,Php,Html,Forms,Character,Limit,我正在尝试阻止我的表单中出现一点垃圾邮件。这是一个电子邮件列表,只需将框中的任何文本提交到我的数据库中即可。有没有办法让它检查用户是否在字段中添加了@ echo '<style type="text/css">'; include 'style.css'; echo '</style>'; if( $_POST ) { $con = mysql_connect("localhost","flickey_emails",""); if (!$con)

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

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);
echo';
包括'style.css';
回声';
如果(美元邮政)
{
$con=mysql\u connect(“localhost”、“flickey\u emails”和“);
如果(!$con)
{
die('无法连接:'.mysql_error());
}
mysql_select_db(“flickey_emailsubscribe”,$con);
$users\u email=$\u POST['email'];
$users\u email=htmlspecialchars($users\u email);
$query=“插入'flickey\u emailsubscribe`.'emails`('id`,'email`)值(NULL,$users\u email');”;
mysql\u查询($query);
echo“感谢您加入电子邮件列表!”;
mysql_close($con);
HTML


电邮:

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


我建议您在这种情况下使用正则表达式
`'/^[^\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.";
}>

您也可以为此使用

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
  echo "Valid email address.";
} else {
  echo "Invalid email address.";
}

你需要向我展示你的代码来帮助我。你可以在提交表单时使用我的代码,如果@is not found,则返回false。很抱歉,我不小心提交了我的评论。我的代码添加到了我上面的评论中。通过编辑原始问题将你的改进代码或原始代码添加到问题中。而不是在answe的评论中卢比。
$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.";
}>
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
  echo "Valid email address.";
} else {
  echo "Invalid email address.";
}