一页上有两个工作表单

时间:2018-04-07 20:17:31

标签: php html forms phpmailer

我想在我的页面上使用相同脚本的两个表单。第一个是正确发送,但第二个不是。我是PHP的初学者,我不知道该怎么做。我试图解决这个问题,遗憾的是没有结果。我正在使用phpmailer。

第一种形式:

<div id="form-main">
   <form class="montform" id="reused_form" enctype=&quot;multipart/form-data&quot;>
      <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=&quot;multipart/form-data&quot;>
   <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);

1 个答案:

答案 0 :(得分:0)

首先:我非常确定您的表单都已发送/提交,没有任何问题。您的第二个表单错过了div结束标记 </div> ,但不应该出现此类问题。

通过&#34; 正确发送第一个,但第二个不正确。&#34;我假设您的意思是在使用第二个表单时,您没有收到所选地址的任何电子邮件。如果是这样的话,那么:

我不确定您的验证器如何运作,但看起来您的问题验证过程

为什么呢? :在您的PHP代码中,您正在验证姓名,电子邮件,电话,公司,消息,但只有您的第一个表单有机会满足这些,因为它有这些字段。您的第二个表单没有必须验证的所有字段,因此,您的验证将失败。因此,您不会收到任何电子邮件(如果验证器以这种方式运行)。

为了让你的第二个表单在这个PHP代码上运行,你要么: 1.在PHP代码中区分这两种形式并对它们应用正确的验证 2.在第二个表单中添加缺少的字段(您仍然可以使用html / css隐藏它们,但是您需要设置它们的默认值并完全提交它们,我不建议这样做。)