我想在我的页面上使用相同脚本的两个表单。第一个是正确发送,但第二个不是。我是PHP的初学者,我不知道该怎么做。我试图解决这个问题,遗憾的是没有结果。我正在使用phpmailer。
第一种形式:
<div id="form-main">
<form class="montform" id="reused_form" enctype="multipart/form-data">
<p class="company">
<input name="company" type="text" class="feedback-input" placeholder="Nazwa firmy" id="company"/>
</p>
<p class="name">
<input name="name" type="text" class="feedback-input" required placeholder="Imię i Nazwisko" id="name"/>
</p>
<p class="phone">
<input name="phone" type="tel" required class="feedback-input" id="phone" placeholder="Telefon"/>
</p>
<p class="email">
<input name="email" type="email" required class="feedback-input" id="email" placeholder="Adres e-mail"/>
</p>
<p class="text">
<textarea name="message" class="feedback-input" id="comment" placeholder="Opis zamówienia"></textarea>
</p>
<button type="submit" class="button-blue">Send</button>
</div>
</form>
</div>
第二种形式:
<div id="second-form">
<form class="montform" id="reused_form" enctype="multipart/form-data">
<p class="name">
<input name="name" type="text" class="feedback-input" required placeholder="Imię i Nazwisko" id="name"/>
</p>
<p class="phone">
<input name="phone" type="tel" required class="feedback-input" id="phone" placeholder="Telefon"/>
</p>
<button type="submit" class="button-blue">Send</button>
</form>
handler.php:
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
/*
Tested working with PHP5.4 and above (including PHP 7 )
*/
require_once './vendor/autoload.php';
use FormGuide\Handlx\FormHandler;
$pp = new FormHandler();
$validator = $pp->getValidator();
$validator->fields(['name','email','phone','company'])->areRequired()-
>maxLength(50);
$validator->field('email')->isEmail();
$validator->field('message')->maxLength(6000);
$pp->attachFiles(['image']);
$pp->sendEmailTo('sadowm1990@gmail.com'); // ← Your email here
echo $pp->process($_POST);
答案 0 :(得分:0)
首先:我非常确定您的表单都已发送/提交,没有任何问题。您的第二个表单错过了div结束标记 </div>
,但不应该出现此类问题。
通过&#34; 正确发送第一个,但第二个不正确。&#34;我假设您的意思是在使用第二个表单时,您没有收到所选地址的任何电子邮件。如果是这样的话,那么:
我不确定您的验证器如何运作,但看起来您的问题验证过程。
为什么呢? :在您的PHP代码中,您正在验证姓名,电子邮件,电话,公司,消息,但只有您的第一个表单有机会满足这些,因为它有这些字段。您的第二个表单没有必须验证的所有字段,因此,您的验证将失败。因此,您不会收到任何电子邮件(如果验证器以这种方式运行)。
为了让你的第二个表单在这个PHP代码上运行,你要么: 1.在PHP代码中区分这两种形式并对它们应用正确的验证 2.在第二个表单中添加缺少的字段(您仍然可以使用html / css隐藏它们,但是您需要设置它们的默认值并完全提交它们,我不建议这样做。)