Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在html格式中使用php?_Php_Html - Fatal编程技术网

如何在html格式中使用php?

如何在html格式中使用php?,php,html,Php,Html,这是一个简单的验证码表单,运行良好,在我按下'submit'后打印请求的结果 <?php session_start(); $msgCaptcha = ""; ?> <?php if (isset($_POST['submit'])){ $secCode = isset($_POST['secCode']) ? strtolower($_POST['secCode']) : ""; if ($secCode == $_SESSION['sec

这是一个简单的验证码表单,运行良好,在我按下
'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>

使用
header()


您可以尝试在
$msgCaptcha=“valid code”之后包含
mailer.php

mailer.php中的任何代码都将在该代码块中执行,mailer.php所需的任何
$\u POST
变量都将可用

底线是,当您调用mailer.php时,您必须在该文件前面进行验证码验证,否则任何bot/垃圾邮件发送者只需将表单直接提交到mailer.php即可绕过您的验证码保护

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

您可能希望在包含mailer.php之前设置一个变量,它将进行检查,这样即使有人尝试直接提交到mailer.php,它也不会处理表单,除非包含该文件


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

mailer.php可能使用
$\u post
变量处理表单。如果您通过页眉重定向到该页面,则没有任何表单变量会继续。我想,如果我们知道mailer.php所做的事情,任何人都可以给出更好的答案。感谢您提供了这个简单的解决方案,但这是对我的文件mailer.php的间接访问,我希望避免.mailer.php向提交表单的注册用户发送一封确认电子邮件。在这种情况下,您应该认识到
mailer.php
中的php是重要的。获取发送邮件的代码,并将其放入确认已正确添加验证码的if语句中。然后,标题重定向到一个确认页面,该页面实际上不运行任何代码/查询,而是确认它们已添加到邮件列表中。任何手动访问页面的人都会发现实际上什么都没有发生。mailer.php(特别是
myname
)上发生了什么?mailer.php以if(isset($\u POST['submit'))开头{然后向提交表单的注册用户发送确认发送的电子邮件。在确认验证码正确后,您应该可以将其包括在内。要防止人们直接访问它,请执行类似于
define('MAILER_include',1)的操作
在包含mailer.php的脚本中,然后在mailer.php中,将
if(!defined('mailer_include'))退出;
放在mailer.php的开头,这样就不能直接调用它。感谢大家的帮助,'drew010'我在代码中使用了您的提示。
if ($secCode == $_SESSION['securityCode']) {
     $msgCaptcha = "valid code";
     header("Location: http://www.website.com/ ... /mailer.php");
  }