如何在HTML格式中使用php?

时间:2012-08-12 21:57:46

标签: php html

这是一个简单的Captcha表单,运行良好并在按‘submit’后打印请求的结果。

<?php 
session_start(); 
$msgCaptcha = "";
?>

<?php
   if (isset($_POST['submit'])){
      $secCode = isset($_POST['secCode']) ? strtolower($_POST['secCode']) : "";
      if ($secCode == $_SESSION['securityCode']) {
         $msgCaptcha = "valid code";
         $result = true;
      }
      else {
         $msgCaptcha = "wrong security code";
         $result = false;
      }
   }
?>      

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
name:<input name="myname" type="text"><br />
Security code: <input class="text" name="secCode" type="text">
                <img src="securityCode.php" /><br />
                <?php echo $msgCaptcha ?>
<input name="submit" type="submit" value="submit">
</form>

。即。

如果我的输入与图片中的相同,那么打印是“有效的安全代码” 如果输入不相同,则打印是“错误的安全代码”。

当我将代码更改为action="mailer.php"时,此文件被打开,但忽略了Captcha验证中的任何输入。

我需要mailer.php在Captcha验证后打开。

我尝试了onsubmit和其他一些选项,但它们都不能解决上述问题。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您可以在include行之后尝试$msgCaptcha = "valid code"; mailer.php。

mailer.php中的任何代码都将在该代码块中执行,并且mailer.php所需的任何$_POST变量都可用。

最重要的是,当您调用mailer.php时,您必须在该文件前面进行验证码验证,否则任何僵尸/垃圾邮件发送者都可以通过直接将表单提交给mailer.php来绕过验证码保护

请记住,机器人通常会忽略javascript,因此验证必须在服务器端完成。

你可能想要在包含mailer.php之前设置一个变量,它会检查,所以即使有人确实尝试直接提交给mailer.php,它也不会处理表单,除非文件被包含在内。

如果这没有帮助,请发布mailer.php的代码,以便我们知道该文件的内容是什么。

答案 1 :(得分:0)

使用header()

if ($secCode == $_SESSION['securityCode']) {
     $msgCaptcha = "valid code";
     header("Location: http://www.website.com/ ... /mailer.php");
  }