php html页面将如何刷新而不重定向到其他页面以及表单将如何连接到数据库

时间:2014-02-16 07:06:23

标签: php html forms

我正在尝试实现一个联系表单,表单没有错误并且运行tnx到shank :)但是这个表单怎么会不会重定向到其他页面而是重新加载页面,如果所有字段都已提交到表单将刷新并有一个新的形式:) tnx请帮我,我在输入上添加了一些必要的功能。以及如何使用xampp

将其连接到mysqli数据库

contact.php:

   <?php
   $dbhost = "localhost";
   $dbuser = "root";
   $dbpass = "ntf123";
   $db = "ntfcatering";
   $conn = mysqli_connect($dbhost,$dbuser,$dbpass,$db);
  ?>

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 <title>PHP Contact Form with Captcha</title>
 </head>

 <body>
 <form action="mailer.php" method="post" name="form1" id="form1" style="margin:0px;  font-  family:Verdana, Arial, Helvetica, sans-serif;font-size:11px; width:300px;"   onsubmit="MM_validateForm('from','','RisEmail','subject','','R','verif_box','','R','message'      ,'','R');return document.MM_returnValue">

  Your Name:<span class="required">*</span><br />
 <input required="required" name="name" type="text" id="name" style="padding:2px; border:1px solid #CCCCCC;    width:180px; height:14px; font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"   value="<?php echo $_GET['name'];?>"/>
 <br />
 <br />

 Your e-mail:<span class="required">*</span><br />
 <input required="required" name="from" type="text" id="from" style="padding:2px; border:1px solid #CCCCCC;  width:180px; height:14px; font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"  value="<?php echo $_GET['from'];?>"/>
 <br />
 <br />

 Subject:<br />
 <input required="required" name="subject" type="text" id="subject" style="padding:2px; border:1px solid  #CCCCCC; width:180px; height:14px;font-family:Verdana, Arial, Helvetica, sans-serif; font- size:11px;" value="<?php echo $_GET['subject'];?>"/>
 <br />
 <br />

 Type verification image:<br />
 <input name="verif_box" type="text" id="verif_box" style="padding:2px; border:1px solid   #CCCCCC; width:180px; height:14px;font-family:Verdana, Arial, Helvetica, sans-serif; font-  size:11px;"/>
  <img src="verificationimage.php?<?php echo rand(0,9999);?>" alt="verification image,   type it in the box" width="50" height="24" align="absbottom" /><br />
   <br />

  <!-- if the variable "wrong_code" is sent from previous page then display the error  field -->
  <?php if(isset($_GET['wrong_code'])){?>
  <div style="border:1px solid #990000; background-color:#D70000; color:#FFFFFF;   padding:4px; padding-left:6px;width:295px;">Wrong verification code</div><br /> 
  <?php ;}?>

  Message:<span class="required">*</span><br />
    <textarea required="required" name="message" cols="6" rows="5" id="message" style="padding:2px; border:1px solid #CCCCCC; width:300px; height:100px; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;"><?php echo $_GET['message'];?></textarea>
    <noscript><a href="http://www.thewebhelp.com" style="display:none;">contact form by   thewebhelp</a></noscript>
    <input name="Submit" type="submit" style="margin-top:10px; display:block; border:1px     solid #000000; width:100px; height:20px;font-family:Verdana, Arial, Helvetica, sans-serif;   font-size:11px; padding-left:2px; padding-right:2px; padding-top:0px; padding-bottom:2px;   line-height:14px; background-color:#EFEFEF;" value="Send Message"/>
    </form>
    </body>
    </html>

verificationimage.php

  <?php


   header('Content-type: image/jpeg');

  $width = 50;
  $height = 24;

   $my_image = imagecreatetruecolor($width, $height);

   imagefill($my_image, 0, 0, 0xFFFFFF);

   // add noise
  for ($c = 0; $c < 40; $c++){
      $x = rand(0,$width-1);
      $y = rand(0,$height-1);
      imagesetpixel($my_image, $x, $y, 0x000000);
     }

  $x = rand(1,10);
  $y = rand(1,10);

   $rand_string = rand(1000,9999);
   imagestring($my_image, 5, $x, $y, $rand_string, 0x000000);

  setcookie('tntcon',(md5($rand_string).'a4xn'));

  imagejpeg($my_image);
  imagedestroy($my_image);
 ?>



  mailer.php
  enter code here
  <?php
 $name = $_REQUEST["name"];
 $subject = $_REQUEST["subject"];
 $message = $_REQUEST["message"];
 $from = $_REQUEST["from"];
 $verif_box = $_REQUEST["verif_box"];

 $name = stripslashes($name); 
 $message = stripslashes($message); 
 $subject = stripslashes($subject); 
 $from = stripslashes($from); 

 if(md5($verif_box).'a4xn' == $_COOKIE['tntcon']){
  $message = "Name: ".$name."\n".$message;
  $message = "From: ".$from."\n".$message;
  mail("adriantadeo14@rocketmail.com", 'Online Form: '.$subject,     $_SERVER['REMOTE_ADDR']."\n\n".$message, "From: $from");
  setcookie('tntcon','');
   } else {

   header("Location:".$_SERVER['HTTP_REFERER']."?  subject=$subject&from=$from&message=$message&wrong_code=true");
   exit;
  }
  ?>

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
         <title>PHP Contact Form Redirect</title>
      </head>

        <body>
       </body>
       </html>

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

基本程序流程如下:当提交表单时,调用服务器调用你的php程序。您的php程序必须获取用户输入表单的数据,将其放入数据库,然后将表单发回给您。 Mailer.php需要一些工作,从它的外观来看相当多,但你有一个良好的开端。