如何在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");
}