3

作成したお問い合わせフォームに 2 つの問題があります。以前、迷惑メールの被害に遭いました。

  1. フォームが処理される前にすべてのフィールドに入力する必要がありますが、私が書いたものは機能しません。人がすべてのフィールドに入力するかどうかに関係なく、情報はデータベースに入ります。***以下を使用して修正:

    function validateForm() { var x=document.forms["検証"]["名"].value; if (x==null || x=="") { alert("ファーストネームを入力してください"); false を返します。}

すべてのフィールドとこれは電子メール用です:

    var x=document.forms["validation"]["email"].value;
 var atpos=x.indexOf("@");
 var dotpos=x.lastIndexOf(".");
 if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
  {
  alert("Please enter a valid email address");
  return false;
  }

今、キャプチャを機能させる必要がありますか、同じJavaScriptでキャプチャが正しいかどうかを確認するために追加する方法は? エラーはどういうわけかこれにあると思いますか?:

    session_start();
    if($_POST['submitted'] == "contactus")
     if( $_SESSION['security_code'] == $_POST['security_code'] &&   !empty($_SESSION['security_code'] ) ) {
        header("Location:http://www.berrieswebdesign.com/thankyou.php?message=thanks");
                unset($_SESSION['security_code']);
   } else {
    // Insert your code for showing an error message here
    echo "<div id='thankyoubox'>'Security breach! Security Breach! Ehem...Your     security code was incorrect.'</div>";
  }
    ob_flush();

        ?>

そして最後に、ここに contactfunctions.php があります

    <?php ob_start();//Required for the redirect to work?>
 <?php 
 include_once("databasefunctions.php");

 $contactsdbtable = "contacts";

 function GetHeaders()
 {
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    // Additional headers
    $headers .= "To: {$firstname} <{$email}>" . "\r\n";
    $headers .= 'From: My Website <info@mywebsite.com>' . "\r\n";
    return $headers;
 }
 function ContactMessage($firstname, $lastname, $email, $message, $location)
 {
global $contactsdbtable;
openDatabase();
$firstname = mysql_real_escape_string($firstname);
$lastname = mysql_real_escape_string($lastname);
$email = mysql_real_escape_string($email);
$message = mysql_real_escape_string($message);
$location = mysql_real_escape_string($location);

$result = QuickQuery("INSERT INTO {$contactsdbtable}(firstname, lastname, email, message, location) 
                      VALUES('{$firstname}', '{$lastname}', '{$email}', '{$message}', '{$location}')");

if($result)
{
    $headers = GetHeaders();
    $message = "\"Thank you for contacting us at My Website. We will be answering your website inquiry post haste.\"<br />
    <br />
    <br />
    Best Regards,<br />
    <br />
    Me
    ";
    mail($email, "RE: Design Inquiry", $message, $headers);
    mail("myemail@blahblah.com", "Website Inquiry", "{$firstname}, {$email}, has sent a web design inquiry", $headers);

}
}


?>

事前にこれに関するご支援をいただければ幸いです。また、これは長い投稿なので、対処している問題を 1 か 2 でリストアップしていただけませんか?

ありがとう!

4

1 に答える 1

1

これを試してみてください:

<?php
    $is_error = false;
    if($_POST['submitted'] == "contactus")
    {
      $firstname = $_POST['firstname'];
      $lastname = $_POST['lastname'];

      $email = $_POST['email'];
      $message = $_POST['message'];
      $location = $_POST['location'];
      if(!$firstname || $firstname = ''){
        $error = "Please enter your first name.";
        $is_error = true;
      } else if(!$lastname || $lastname= ''){
        $error = "Please enter your last name.";
        $is_error = true;
      } else if(!$email || $email= ''){
        $error = "Please enter a valid email.";
        $is_error = true;
      }else if(!$message || $message= ''){
        $error = "Please enter your message.";
        $is_error = true;
      }else if(!$location || $location= ''){
        $error = "Please tell us where you're from.";
        $is_error = true;
      }

      if(($is_error === false) && ($_SESSION['security_code'] == $_POST['security_code']))
      {
        ContactMessage($firstname, $lastname, $email, $message, $location);
      } else {
        Error($error);
      }
    }
 ?> 
于 2012-07-31T16:57:12.800 に答える