2013-12-05 7 views
1

Я делаю php-сайт для своего проекта в семестре ... и у меня есть страница с нами, в которой пользователь отправляет мне сообщение, и сообщение сохраняется в базе данных. но я хочу, чтобы, когда пользователь вводил сообщение и нажимал кнопку отправки, после проверки проверки формы он посылает пользователю, что «ваше сообщение доставлено». и если в проверке что-то не так, то он указывает пользователю ввести соответствие требованиям, вот мой код.сообщение получено подтверждение в php

<?php 
    // define variables and set to empty values 
    $yournameErr = $emailErr = $messageErr = ""; 
    $yourname = $email = $message = ""; 

    if ($_SERVER["REQUEST_METHOD"] == "POST") 
     { 

     if (empty($_POST["yourname"])) 
      {$yournameErr = "Name is required"; } 
     else 
      {$yourname = test_input($_POST["yourname"]);} 

     if (empty($_POST["email"])) 
      {$emailErr = "Email is required";} 
       else 
       {$email = test_input($_POST["email"]); 
        // check if e-mail address syntax is valid 
        if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) 
        { 
      $emailErr = "Invalid email format"; 
      } 
      } 

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

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

и моя форма:

    <form action="contact.php" name="Form1" id="Form1" method="post"> 
        <div> 
         <label>Your Name:</label> 
         <br /> 
         <input type="text" name="yourname"   
    id="yourname" placeholder="Full Name" style="border:1; border-color:#000000; " /> 
         <span class="error">* <?php echo 
     $yournameErr;?></span> 
        </div> 

        <br /> 
        <br /> 
        <div> 
         <label> Email :</label> <br /> 
         <input name="email" type="text" 
    id="email" size="20" placeholder="Email" style="border:1; border-color:#000000; " /> 
         <span class="error">* <?php echo 
    $emailErr;?></span> 
        </div> 
        <br /> 
        <br /> 
        <div> 
         <label> Subject : </label><br /> 
         <input name="subject" type="text" 
     id="subject" size="20" placeholder="Subject" style="border:1; border- 
     color:#000000; " /> 
        </div> 
        <br /> 
        <br /> 
        <div> 
         <label> Message :<br /> </label> 
         <textarea rows="5" cols="40" 
     name="message" type="text" id="message" placeholder="The message you want to 
      send to us." style="border:1; border-color:#000000 " > 
         </textarea> 
         <span class="error">* <?php echo 
     $messageErr;?></span> 
        </div> 
        <br /> 
        <br /> 
        <div> 
         <input type="submit" name="button" 
      id="button" style="border:1; border-color:#999999; " value="SEND"/> 
        </div> 


      </form> 
+0

Можете ли вы разместить свою файловую структуру? Ваша html-форма должна быть внутри contact.php для любой из доступных переменных. Тогда contact.php нужно будет решить, должен ли он отображать форму (с любыми ошибками) или переходить на следующую страницу. – mastaBlasta

+0

моя форма уже находится на contact.php странице. но я хочу, чтобы сообщение было показано выше формы, когда пользователь вводит полные данные и нажимает кнопку «Связаться с нами». –

ответ

0

Если предположить, что ваш HTML-код находится в том же файле, как ваш PHP код, который вы можете добавить это в ваш HTML код:

<?php if(isset($messageErr) && $messageErr){ ?> 
<div class="error"><?php echo $messageErr; ?></div> 
<?php } ?> 
<?php if($_SERVER["REQUEST_METHOD"] == "POST" && !$messageErr){ ?> 
<div class="error">Message Delivered</div> 
<?php } ?> 

Просто убедитесь, что код PHP и HTML-код оба находятся в одном .php-файле, а значение action-формы также является одним и тем же .php-файлом.

+0

это showimg me сообщение, отправленное на странице contact.php перед отправкой формы .. :( –

+0

и мой html и php код в том же файл –

+0

У вас есть 3 состояния для учета: 1.) очистки новой формы, 2.) отправленной формы с ошибками, 3.) успешной формы без ошибок. У чистой новой формы не должно быть $ _POST. Как вы нажимаете эту страницу? – mastaBlasta

Смежные вопросы