【问题标题】:How to start validation only after the user's INPUT in PHP如何仅在用户输入 PHP 后才开始验证
【发布时间】:2019-07-11 02:43:38
【问题描述】:

我需要使用 PHP 创建一个“联系我们”页面,并且我必须在发送前验证数据。

下面是我试过的代码。

<?php
$error_messages = [];
if (!filter_var($_POST[email_user], FILTER_VALIDATE_EMAIL)) {
array_push($error_messages, 'O E-mail informado não é válido!');
} if(!empty($_POST[subject_user])) {
array_push($error_messages, 'O campo assunto não pode está vazio!');
} if(!empty($_POST[message_user])) {
array_push($error_messages, 'Você precisa escrever uma mensagem para que possamos ajudar você!');
}
if(empty($error_messages)) {
$headers = "FROM: contact@example.com";
mail("personal-email@example.com", $subject_user, $message_user, $headers );
} else {
echo "<div class='alert alert-danger' role='alert'>";
echo "Você precisa corrigir isso antes de fazer o envio deste formulário:<br>";
foreach ($error_messages as $item) {
echo "- ".$item."<br>";
}
echo "</div>";
}
?>

你可以在这里看到完整的代码: https://pastebin.com/5PKYqgn4

Você precisa corrigir isso antes de fazer o envio deste 公式:

  • O E-mail informado não é válido!

【问题讨论】:

  • 你想要什么样的验证?
  • 一共有三个。 1) 如果电子邮件有效。 2) 如果“主题”字段不为空。 3) 如果“消息”字段不为空。正如您在上面看到的,我已经在 PHP 代码中完成了此操作,但是当执行页面时,此验证已完成。我希望仅在用户输入后验证数据。
  • 在将问题发布到 Stackoverflow 之前,请多尝试几次。互联网上应该有数百个代码在 Php 中展示表单验证。如果您不能使用它们,请告诉我们您想做的独特部分是什么。
  • 我是 php 初学者

标签: php forms validation email bootstrap-4


【解决方案1】:

你需要把你所有的验证规则都放进去:

if (isset($_POST['submit'])) { 
//here goes your validations
}

【讨论】:

  • 您好,绝对不能使用 Javascript 来解决此问题。这是因为它是一种客户端技术,这意味着它可以轻松绕过并将无效数据发送到我的表单。稍后我会做 Javascript 等价物,以便在输入过程中指导用户,但目前有必要通过 PHP 进行验证。
  • 您应该更改问题的标题,以更清楚地表明您希望代码仅在表单提交后执行。我编辑了答案以适合您对 catcon 评论的回复。
  • 标题正确。请参阅最后的“在 php 中”。谢谢你们的cmets,我会测试的,我会回来的。
  • 我认为您应该使用 java 脚本的客户端验证以及使用 php 的服务器端验证。
  • 确切地说,理想情况下应该使用两种验证,但是服务器端是强制性的,而客户端是可选的。我正在完成项目,我选择不使用任何 Javascript,这是因为如果您将“输入类型电子邮件”放在 HTML 中,浏览器本身将进行必要的验证并在输入时通知用户。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-06
  • 2011-06-26
  • 1970-01-01
  • 2022-11-17
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多