【问题标题】:what value should i assign to the action attribute?我应该为 action 属性分配什么值?
【发布时间】:2021-04-10 14:20:31
【问题描述】:

所以我想在提交 HTML 表单后使用 PhpMailer 发送电子邮件。但是当我点击提交时,我的页面只是刷新并且我的收件箱中没有电子邮件。我错过了什么?另外,我应该为 action 属性分配什么值?

这是我的表格

            <form action="" method="POST" enctype="text/plain" id="contact-form">
              <span class="contacts-text" id="first-contacts-text">compile this form.</span>
              <span class="contacts-text">I will reply as soon as possible. Thank you!</span>
              <ul class="form-content">
                  <li class="form-input">
                      <label for="name" class="label">Full name</label>
                      <input class="input" id="name" type="text" name="name" required>
                  </li>
                  <li class="form-input">
                      <label for="email" class="label">E-mail</label>
                      <input class="input" id="mail" type="text" name="email" required>
                  </li>
                  <li class="form-input">
                      <label for="msg" class="label">Insert text</label>
                      <textarea class="input" id="comment" type="text" name="msg" cols="30" rows="10" style="resize: none;" required></textarea>
                  </li>
                  <li class="form-input" id="last-input">
                      <input class="input" id="form-button" type="submit" value="submit" name="submit">
                  </li>
              </ul>
            </form>

这是我的 php 代码


  $result="";

  if(isset($_POST['submit'])){
    require 'phpMailer/PHPMailerAutoload.php';
    $mail = new PHPMailer;

    $mail->Host='smtp.gmail.com';
    $mail->Port=587;
    $mail->SMTPAuth=true;
    $mail->SMTPSecure='tls';
    $mail->Username='my.own.business@gmail.com';
    $mail->Password='myPassword';

    $mail->setFrom($_POST['email'],$_POST['name']);
    $mail->addAddress('my.own.business@gmail.com');
    $mail->addReplyTo($_POST['email'],$_POST['name']);

    $mail->isHTML(true);
    $mail->Subject='Form Submission: '.$_POST['subject'];
    $mail->Body='<h2 align=center> :'.$_POST['name'].'<br>Email: '.$_POST['email'].'<br>Message: '.$_POST['msg'].'</h2>';

    if(!$mail->send()){
      $result="Something went wrong. Please try again.";
    }
    else {
      $result="Thanks ".$_POST['name']." for contacting me. I will get you back soon!";
    }
  }

?>

【问题讨论】:

  • action="" 可以提交到同一个/当前文件
  • 谢谢。你能发现代码中的任何错误吗?
  • 您的另一个错误是因为您使用的是非常旧版本的 PHPMailer。升级它。

标签: php forms phpmailer form-submit


【解决方案1】:

我错过了什么?

您将enctype 属性设置为text/plain,这机器无法处理。不要那样做。

另外,我应该为 action 属性分配什么值?

PHP 程序的 URL。

【讨论】:

  • 我可以去掉“enctype”属性还是分配一个新值?
  • 摆脱它。默认值就可以了。
  • 非常感谢。摆脱它后,当我提交表单时出现此错误---->致命错误:不再支持 __autoload(),请在 C:\xampp\htdocs\phpProjects\Portfolio-elle\ 中改用 spl_autoload_register() phpMailer\PHPMailerAutoload.php 在第 45 行。
  • 我以前从未遇到过这个问题……但如果我将错误复制/粘贴到 Google 中,它会在几秒钟内找到 stackoverflow.com/questions/65346342/…
  • 是的,我现在正在阅读 convo。非常感谢您的宝贵时间,祝您愉快
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 2018-05-27
  • 2021-06-30
  • 2018-06-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多