【问题标题】:Email Validation and Deletion from text file - PHP来自文本文件的电子邮件验证和删除 - PHP
【发布时间】:2013-11-05 11:18:13
【问题描述】:

我正在尝试进行电子邮件验证。

我有一个输入文本字段,当用户在输入字段中输入数据时,我会将其写入文件。

我想要一个简单的代码来检查电子邮件是否有效,如果电子邮件无效,请返回原始页面并且不要将其添加到 .txt 文件中

目前我有:

// only do file operations when appropriate
if(isset($_POST['email']) && (filter_var($a, FILTER_VALIDATE_EMAIL)) {
    $a = $_POST['email'];
    $myFile = "email.txt";
    $fh = fopen($myFile, 'a') or die("can't open file");
    fwrite($fh, $a);
    fclose($fh);
}
else
{
    echo "Email is not Valid" . "<script>history.back()</script>";
}

如您所见,我还没有弄清楚如何不将其添加到文本文件中,但是我想先让电子邮件过滤器工作。谁能帮我解决这个问题?

编辑:我也不断收到错误:

解析错误:语法错误,出现意外的“{” "C:.......\authorized.php 第 59 行

if 语句的左括号是什么?

【问题讨论】:

  • 我想我没抓住重点。你到底有什么问题?根据 FILTER_VALIDATE_EMAIL 标志,您的代码似乎仅在电子邮件有效时才写入文件。你到底有什么问题?
  • 我认为您还没有启用完整的错误报告,因此在定义之前没有通知您$a 已被使用。这是您在更进一步之前需要解决的问题;如果没有错误消息的帮助,就不可能正确编码。这是brief explanation
  • 关于您的编辑:Stack Overflow 绝对不是在线语法检查器,但我们无法帮助您在第 59 行使用 11 行 sn-p 找到错误。
  • 问题是 filter_var 之前的 '(',所以现在它只在电子邮件是有效电子邮件时才写入文件。

标签: php validation email text


【解决方案1】:

我认为问题可能是您使用的 $a 未在您的 if 条件检查中定义

我觉得你应该有

if(isset($_POST['email']) && (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))) 

而不是

if(isset($_POST['email']) && (filter_var($a, FILTER_VALIDATE_EMAIL))

【讨论】:

    【解决方案2】:

    您的代码中有错误。您正在“if”中检查 $a 变量,但该变量是在 if 之后定义的。 您可以使用 filter_input 代替 filter_var:

    $a = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
    

    【讨论】:

    • 你遗漏了一些括号:(isset($_POST['email']) && ($a = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL)))) {
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-27
    • 2012-07-13
    • 2015-03-17
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    相关资源
    最近更新 更多