2012-07-26 57 views
-3

我用于此示例的表单已循环使用了一段时间,因为我没有知识和时间来学习PHP。它有效,但不完全像我想要的那样。例如,当某人在表单中输入姓名和电子邮件并提交时,应该将用户重定向到freepage.html。但是,它会使用已输入的信息“闪烁”实际的“freepage.php”。通常持续1-2秒,然后重定向开始。PHP表单在检查输入之前重定向

我遇到的另一个问题是,如果用户没有在该freepage.php中输入信息“所有字段都是强制性”警告显示,只有这一次页面不会在屏幕上“闪烁”一秒钟,那里显示警告,并且修复它的唯一方法是单击浏览器中的“后退”按钮。

有人能指出我怎么能做出这样的形式比较好一些....

这是PHP文件看起来像

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
      <script type="text/javascript" src="jquery-1.3.2.min.js"></script> 
      <script src="http://www.google.com/jsapi"></script> 
      <script type="text/javascript">google.load("jqueryui", "1.5.2");</script> 
      <? 
     if($_POST['name']!="" and $_POST['email']!=""){ 


    $headers = "From: Sender"; 
    $message = 
      strtoupper($_POST['name'])." 
      ".strtoupper($_POST['email'])." 
      "; 
    echo str_replace("\n","<br />", $message); 
    $headers2 = "From: Sender <[email protected]>\nContent-Type: text/plain;        charset=UTF-8; format=flowed\nMIME-Version: 1.0\nContent-Transfer-Encoding: 8bit\nX-Mailer: PHP\n"; 
    $message2 = " 
    Hello ".($_POST['name'])." 

      "; 

    mail("$_POST[email]", "Thanks for entering", $message2, $headers2); 


    $myFile = "info-file.txt"; 
    $fh = fopen($myFile, 'a') or die("can't open file"); 
    $stringData =   "$_POST[name]*$_POST[email]*".$_SERVER['REMOTE_ADDR']."*".date("d-m-Y H:i")." 
      "; 
    fwrite($fh, $stringData); 
    fclose($fh); 


    ?> 

    echo '<script>document.location="freepage.html"; </script>'; 

    <? 
} else { 
    echo "All fields are mandatory"; 
    ?> 
    <script language="javascript"> 
    alert("All fields are mandatory"); 
    </script> 
    <? 
} 
    ?> 

形式如下

 <form method="post" action="freepage.php" name="popups" id="popups"> 
     <fieldset> 
     <label for=name accesskey=U ><span class="required">*</span> Name</label> 
     <br /> 
     <input name="name" type="text" id="name" size="30" value="" /> 
     <br /> 
     <label for=email accesskey=E ><span class="required">*</span> Email</label> 
     <br /> 
     <input name="email" type="text" id="email" size="30" value="" /> 
     <br /> 
     <input type="submit" value="Submit" id="submit" name="submit" class="button" /> 
     </fieldset> 
     <br /> 
     </form> 
+9

“因为我没有学习PHP的知识或时间“,所以雇佣了一个人。 – 2012-07-26 08:51:38

+0

感谢@Dagon感谢您的帮助,非常聪明的答案。 – TM23 2012-07-26 09:05:23

回答

0

它“闪烁”的原因是因为您必须等待服务器在重定向之前发送邮件。

对于警告:“所有字段都是强制性的”。

  • 如果表单处于同一页面(freepage.php),表单将显示 事件(如果显示)。
  • 如果表单不在同一页面上,只需添加一个重定向(html链接 或javascript位置)或在php代码后插入表单。在for循环来检查字段为空或不那么表单操作使用PHP
    自我这时如果检查的部分已经完成内部如果用头重定向到其他页面
+0

感谢您的回复。抱歉,名称混乱,但页面用户也将被重定向到“freepage.html”,freepage.php只是表单的代码。我了解“眨眼”部分,但有没有办法在重定向开始之前显示警告字段警告? – TM23 2012-07-26 09:13:10

+0

通常情况下,php代码与窗体位于同一页面,因此使用“回显”警告位于屏幕顶部,因此不需要重定向。 在你的代码中有一个JavaScript警报,所以只需在警报后添加一个重定向,当用户点击“OK”时,他将被重定向。 else { echo“所有字段都是必填项”; ?> <? } – Done 2012-07-27 06:43:07