1

シンプルで効果的なお問い合わせフォームを実装しようとしています。ページの 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" alt="schedule" height="200" width="350" 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>
4

2 に答える 2

0

あなたはあなたの情報を明確な方法で提示していませんが、私があなたの問題を正しく理解していることを願っています.

まず、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' );

これにより、ユーザーは元の連絡先フォームに戻ります。残念ながら、これはユーザーを混乱させる可能性があります。PHP を利用してエラー メッセージを表示できるように、contact.html を contact.php に変更することをお勧めします。

于 2013-10-25T01:59:35.897 に答える