我在页面上有两个表单。第一种是简单地允许用户访问被阻止的内容。 (我理解与此路线相关的风险,但它只是允许成员查看不会带来任何风险的某些信息)。
这是页面顶部...
<?php
if (isset($_POST['password']) && $_POST['password'] == 'password') {
setcookie("password", 'password', strtotime('+1 day'));
header('Location: index.php');
exit;
}
?>
.....
<form method="POST">
<input type="text" name="password">
<input type="submit" class="btn btn-full" value="Continue" />
</form>
我认为这阻止了第二种形式(下面)的操作(当你点击提交按钮时,没有任何反应。就像你根本没有按下按钮一样)。
<form action="handler.php" method="post" class="contactForm">
<div class="form-group">
<input type="text" name="name" class="form-control" id="name" placeholder="Your Name" data-rule="minlen:4" data-msg="Please enter at least 4 chars" />
</div>
<div class="form-group">
<input type="email" class="form-control" name="email" id="email" placeholder="Your Email" data-rule="email" data-msg="Please enter a valid email" />
</div>
<div class="form-group">
<input type="text" class="form-control" name="subject" id="subject" placeholder="Subject" data-rule="minlen:4" data-msg="Please enter at least 8 chars of subject" />
</div>
<div class="form-group">
<textarea class="form-control" name="message" rows="5" data-rule="required" data-msg="Please write something for us" placeholder="Message"></textarea>
</div>
<div class="text-center">
<input type="submit" value="Send Message" class="btn btn-full" />
</div>
</form>
如何修复第一部分以使第二种形式发挥作用?
答案 0 :(得分:0)
嗯,我试了一下它就有效了。
1)确保在index.php目录下有handler.php文件(根据你的代码)。
2)检查是否存在任何控制台错误。如果有,请将其附在您的帖子上。
3)你是否覆盖了来自js的表单提交事件或输入按钮事件?
此外,我没有看到任何限制第二个表单出现在cookie中未设置密码的地方。 所以更好用:
<?php
if (isset($_COOKIE['password'])): ?>
YOUR SECOND FORM
<?php endif; ?>
并在输入密码时隐藏第一个表单。