联系表格问题,PHP/css

Posted

技术标签:

【中文标题】联系表格问题,PHP/css【英文标题】:Contact Form Issues, PHP/css 【发布时间】:2013-11-02 14:03:58 【问题描述】:

我正在尝试实现一个简单而有效的联系表单。该页面的 html 如下所示。下面也列出了我正在使用的 mail.php 表单。我想要联系表单做的是需要字段,如果用户没有填写必填字段,它会将它们发送回带有错误代码的相同表单。我想我已经接近了,但由于某种原因,它在提交表单时给了我一个错误代码,填写或为空。您可以实时查看它,而不是在darthvixcustomsabers.com 使用 Apache 服务器并查看。我也希望能够通过使用 textarea 在 css 中指定列/行,但这也不起作用。

<?php
$action=$_REQUEST['action'];
if ($action=="")    /* display the contact form */

?>
    <form  action="" method="POST" enctype="multipart/form-data">
      <input type="hidden" name="action" value="submit">
      Your name:<br>
      <input name="name" type="text" value="" size="30"/><br>
      Your email:<br>
      <input name="email" type="text" value="" size="30"/><br>
      Your message:<br>
      <textarea name="message" rows="7" cols="30"></textarea><br>
      <input type="submit" value="Send email"/>
    </form>
<?php

else                /* send the submitted data */

    $name=$_REQUEST['name'];
    $email=$_REQUEST['email'];
    $message=$_REQUEST['message'];
    if (($name=="")||($email=="")||($message==""))
    
        echo <a href="contact.html"></a>;
    
    else
    
        $from="From: $name<$email>\r\nReturn-path: $email";
        $subject="Message sent using your contact form";
        mail("horgantm@gmail.com", $subject, $message, $from);
        echo "Email sent!";
    

?>


<!doctype html>
<html>
<head>
    <title> DV Custom Sabers </title>
    <meta charset="utf-8">
    <link type="text/css" rel="stylesheet" href="style/kotorsale.css" />
    <meta name="viewport" content="width=device-width" />
</head>
<div class="header"><a href="index.html">Darthvix Custom Sabers</a></div>
<div class="header1">DV Custom Sabers is the place to go for your saber needs!</div>
<div class="logo"><a href="index.html"><img src="images/logo.png"    border="0"></a></div>
<ul id="nav">
  <li><a href="index.html">Home</a></li>
  <li><a href="aboutme.html">About Me</a></li>
  <li><a href="services.html">Services</a></li>
  <li><a href="Gallery.html">Gallery</a></li>
  <li><a href="kotorsale.html">For Sale</a></li>
  <li><a href="buildlog.html">Build Log</a></li>
  <li><a href="contact.html"> Contact Us</a></li>
</ul>
<form  action="" method="POST" enctype="multipart/form-data">
    <input type="hidden" name="action" value="submit">
    Your name:<br>
    <input name="name" type="text" value="" size="30"/><br>
    Your email:<br>
    <input name="email" type="text" value="" size="30"/><br>
    Your message:<br>
    <textarea name="message" rows="7" cols="30"></textarea><br>
    <input type="submit" value="Send email"/>
</form>
</div>
</body>
</html>

【问题讨论】:

简单而有效!这总是好的。 所以即使所有字段都已填满,它也会对空字段执行响应? 你说的这个错误代码是什么?可能有用... @Machavity 我以前从未见过 405 响应:405 - HTTP verb used to access this page is not allowed. 这可能是因为索引页面被视为静态 HTML 页面。您的文件名为 index.php 吗? ***.com/questions/6841139/… 【参考方案1】:

嗨,你为什么使用这行代码?

<form  action="mail.php" method="POST" enctype="multipart/form-data">

你只发送数据,没有要发送的文件图像,最好使用这个

<form  action="mail.php" method="POST">

删除 enctype 。 enctype 仅在有图像或文件时使用... 使用正确的标签

【讨论】:

【参考方案2】:

您的信息还不够清晰,但希望我能正确理解您的问题。

首先,您在contact.html 中的表单操作需要指向您的PHP 电子邮件脚本。以下:

<form  action="" method="POST" enctype="multipart/form-data">

应该是:

<form  action="mail.php" method="POST" enctype="multipart/form-data">

您在以下 echo 语句中缺少引号:

echo <a href="contact.html"></a>;

这应该是:

echo '<a href="contact.html"></a>';

此外,如果您尝试在任何字段为空白的情况下将用户重定向回表单,那么您需要的不仅仅是页面上显示的空链接。一个简单的方法是替换以下内容:

echo '<a href="contact.html"></a>';

与:

header( 'location:contact.html' );

这会将用户引导回原始联系表单。不幸的是,这会使用户感到困惑。您可能希望将contact.html 更改为contact.php,以便利用PHP 显示错误消息。

【讨论】:

以上是关于联系表格问题,PHP/css的主要内容,如果未能解决你的问题,请参考以下文章

PHP联系表格-附件限制问题,附加字段,发送后重置表格

Wordpress 联系表格 7:一页上有 2 个表格 - 只有一个表格起作用

Wordpress 中联系表格 7 的日期和时间

“联系表格 7”日期字段无法正常工作

Joomla,如何显示联系表格

Wordpress 中的占位符图标联系表格 7