簡體   English   中英

PHP聯系人表單提交按鈕打開索引html

[英]PHP contact form submit button opening index html

我正在通過html5 and php制作custom contact表單。 我的表單看起來像我想要的,並且正在嘗試檢查在字段中輸入的值是否正常。 我是print_r($_POST)來顯示arrays

單擊submit buttonnot displaying the array而是opening the index.html file

代碼如下...

聯系人模板以php文件的形式調用

<?php
/**
 * Template Name: contact
*/
get_header();

if (have_posts()) : 
   while (have_posts()) : the_post();
      get_template_part('form');
   endwhile; 
else: 
   echo '<p>No Content found</p>';
endif;
?>
</body>
     Template part form.php (html layout)

    <?php include('form_process.php'); ?>
    <div class='grey'>    
        <div class="container-contact">  
            <form id="contact" action="<?= $_SERVER['PHP_SELF']; ?>" method="post">
              <div class='contact-logo'></div>
              <h3>Contact the Devon Food Movement</h3>
              <fieldset>
                  <input placeholder="Your name" type="text" tabindex="1" name="name" autofocus>
                  <span class="error"><?= $name_error ?></span>
              </fieldset>
              <fieldset>
                  <input placeholder="Your Email Address" type="text" name="email" tabindex="2" >
              </fieldset>
              <fieldset>
                  <textarea placeholder="Type your Message Here...." name="message" tabindex="3" ></textarea>
              </fieldset>
              <fieldset>
                  <button name="submit" type="submit" id="contact-submit" data-submit="...Sending">Submit</button>
              </fieldset>
          </form>
       </div>
    </div>

這是在form.php = (form_process.php)調用的以下形式

<?php
    print_r($_POST);

    // define variables and set to empty values
    $name_error = $email_error = $phone_error = $url_error = "";
    $name = $email = $phone = $message = $url = $success = "";

    //form is submitted with POST method
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
      if (empty($_POST["name"])) {
        $name_error = "Name is required";
      } else {
        $name = test_input($_POST["name"]);
        // check if name only contains letters and whitespace
        if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
          $name_error = "Only letters and white space allowed"; 
        }
      }

      if (empty($_POST["email"])) {
        $email_error = "Email is required";
      } else {
        $email = test_input($_POST["email"]);
        // check if e-mail address is well-formed
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
          $email_error = "Invalid email format"; 
        }
      }

      if (empty($_POST["message"])) {
        $message = "";
      } else {
        $message = test_input($_POST["message"]);
      }

      if ($name_error == '' and $email_error == '' and $phone_error == '' and $url_error == '' ){
          $message_body = '';
          unset($_POST['submit']);
          foreach ($_POST as $key => $value){
              $message_body .=  "$key: $value\n";
          }

          $to = 'vladi@clevertechie.com';
          $subject = 'Contact Form Submit';
          if (mail($to, $subject, $message)){
              $success = "Message sent, thank you for contacting us!";
              $name = $email = $phone = $message = $url = '';
          }
      }

    }

    function test_input($data) {
      $data = trim($data);
      $data = stripslashes($data);
      $data = htmlspecialchars($data);
      return $data;
    }

為什么提交按鈕打開index.html

我會做一個片段,但不知道如何通過調用多個模板來做到這一點?

謝謝。

在刪除不再包含這些值的輸入框的無效變量之后,對form_process.php文件進行更新

        print_r($_POST);

        // define variables and set to empty values
        $name_error = $email_error = "";
        $name = $email = $message = "";

        //form is submitted with POST method
        if ($_SERVER["REQUEST_METHOD"] == "POST") {
          if (empty($_POST["name"])) {
            $name_error = "Name is required";
          } else {
            $name = test_input($_POST["name"]);
            // check if name only contains letters and whitespace
            if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
              $name_error = "Only letters and white space allowed"; 
            }
          }

          if (empty($_POST["email"])) {
            $email_error = "Email is required";
          } else {
            $email = test_input($_POST["email"]);
            // check if e-mail address is well-formed
            if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
              $email_error = "Invalid email format"; 
            }
          }

          if (empty($_POST["message"])) {
            $message = "";
          } else {
            $message = test_input($_POST["message"]);
          }

          if ($name_error == '' and $email_error == '' and $phone_error == '' ){
              $message_body = '';
              unset($_POST['submit']);
              foreach ($_POST as $key => $value){
                  $message_body .=  "$key: $value\n";
              }

              $to = 'info@devonfoodmovement.com';
              $subject = 'Contact Form Submit';
              if (mail($to, $subject, $message)){
                  $success = "Message sent, thank you for contacting us!";
                  $name = $email = $message = '';
              }
          }

        }

        function test_input($data) {
          $data = trim($data);
          $data = stripslashes($data);
          $data = htmlspecialchars($data);
          return $data;
        }

不要在模板文件的表單操作中使用$ _SERVER ['PHP_SELF'] ,而應使用form_process.php文件的完整路徑。

$_SERVER['PHP_SELF']返回:

當前正在執行的腳本的文件名,相對於文檔根目錄。 例如,地址為http://example.com/foo/bar.php的腳本中的$ _SERVER ['PHP_SELF']將為/foo/bar.php。

編輯:

這是您不重定向到另一個頁面的一些解決方案:

模板部分form.php(html布局):

<?php include('form_process.php'); ?>
<div class='grey'>
    <div class="container-contact">
        <form id="contact" method="post">
            <div class='contact-logo'></div>
            <h3>Contact the Devon Food Movement</h3>
            <fieldset>
                <input placeholder="Your name" type="text" tabindex="1" name="name1" autofocus>
                <span class="error"><?= $name_error ?></span>
            </fieldset>
            <fieldset>
                <input placeholder="Your Email Address" type="text" name="email" tabindex="2" >
            </fieldset>
            <fieldset>
                <textarea placeholder="Type your Message Here...." name="message" tabindex="3" ></textarea>
            </fieldset>
            <fieldset>
                <button name="submit" type="submit" id="contact-submit" data-submit="...Sending">Submit</button>
            </fieldset>
        </form>
    </div>
</div>

form_process.php文件:

<?php
print_r($_POST);

// define variables and set to empty values
$name_error = $email_error = $phone_error = $url_error = "";
$name = $email = $phone = $message = $url = $success = "";

//form is submitted with POST method
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (empty($_POST["name1"])) {
        $name_error = "Name is required";
    } else {
        $name = test_input($_POST["name1"]);
        // check if name only contains letters and whitespace
        if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
            $name_error = "Only letters and white space allowed";
        }
    }

    if (empty($_POST["email"])) {
        $email_error = "Email is required";
    } else {
        $email = test_input($_POST["email"]);
        // check if e-mail address is well-formed
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $email_error = "Invalid email format";
        }
    }

    if (empty($_POST["message"])) {
        $message = "";
    } else {
        $message = test_input($_POST["message"]);
    }

    if ($name_error == '' and $email_error == '' and $phone_error == '' and $url_error == '' ){
        $message_body = '';
        unset($_POST['submit']);
        foreach ($_POST as $key => $value){
            $message_body .=  "$key: $value\n";
        }

        $to = 'vladi@clevertechie.com';
        $subject = 'Contact Form Submit';
        if (mail($to, $subject, $message)){
            $success = "Message sent, thank you for contacting us!";
            $name = $email = $phone = $message = $url = '';
        }
    }

}

function test_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM