PHP在提交表单后重新定向
我试图在人们正确提交表单后将其重定向到PDF,在此之前,我对表单字段进行了一些检查,以确保它们已正确填写,现在我尝试使用header()进行重定向,但因为在出现错误之前,我已多次回显。下面是我的代码,我能做什么PHP在提交表单后重新定向,php,redirect,Php,Redirect,我试图在人们正确提交表单后将其重定向到PDF,在此之前,我对表单字段进行了一些检查,以确保它们已正确填写,现在我尝试使用header()进行重定向,但因为在出现错误之前,我已多次回显。下面是我的代码,我能做什么 <?php if(isset($_POST['submit'])) { if($valid_fname == "Y") { if($valid_sname == "Y") { if($valid_com
<?php
if(isset($_POST['submit'])) {
if($valid_fname == "Y") {
if($valid_sname == "Y") {
if($valid_company == "Y") {
if($valid_email == "Y") {
}
else {
echo "<p class=\"secText\">Please enter a valid email address</p>\n";
}
}
else{
echo "<p class=\"secText\">Please enter the company you work for</p>\n";
}
}
else {
echo "<p class=\"secText\">Please enter your surname</p>\n";
}
}
else {
echo "<p class=\"secText\">Please enter your first name</p>\n";
}
if(($valid_fname == "Y")&&($valid_sname == "Y")&&($valid_company == "Y")&&($valid_email == "Y")) {
echo "<p class=\"secText\">Thank you for confirming your details, you will be re-directed to \"The Personal Touch\" Whitepaper shortly.</p>\n";
header('Location: http://www.sefasinnovation.co.uk/personal_touch.pdf');
exit();
}
}
?>
编辑好的,最后我使用了一点javascript
if(($valid_fname == "Y")&&($valid_sname == "Y")&&($valid_company == "Y")&&($valid_email == "Y")) {
echo "<p class=\"secText\">Thank you for confirming your details, you will be re-directed to \"The Personal Touch\" Whitepaper shortly.</p>\n";
echo "<script type=\"text/javascript\">\n";
echo " <!--\n";
echo " setTimeout(\"window.location = 'http://www.sefasinnovation.co.uk/personal_touch.pdf';\",5000);\n";
echo "//-->\n";
echo "</script>\n";
}
if($valid\u fname==“Y”)&&($valid\u sname==“Y”)&($valid\u company==“Y”)&&($valid\u email==“Y”)){
echo“感谢您确认您的详细信息,您很快就会转到“个人触控”白皮书。
\n”;
回音“\n”;
回音“\n”;
回音“\n”;
}
尝试创建一个链接,将用户重定向到pdf页面,以便该链接包含pdf页面url
<a href="http://www.sefasinnovation.co.uk/personal_touch.pdf">Thank you for confirming your details </a>
或者,您可以使用meta标记在2秒钟后重定向用户
<meta http-equiv="refresh" content="2; url=http://www.sefasinnovation.co.uk/personal_touch.pdf" />
您的问题在于:
if(($valid_fname == "Y")&&($valid_sname == "Y")&&($valid_company == "Y")&&($valid_email == "Y")) {
echo "<p class=\"secText\">Thank you for confirming your details, you will be re-directed to \"The Personal Touch\" Whitepaper shortly.</p>\n";
header('Location: http://www.sefasinnovation.co.uk/personal_touch.pdf');
exit();
}
if($valid\u fname==“Y”)&&($valid\u sname==“Y”)&($valid\u company==“Y”)&&($valid\u email==“Y”)){
echo“感谢您确认您的详细信息,您很快就会转到“个人触控”白皮书。
\n”;
标题('位置:http://www.sefasinnovation.co.uk/personal_touch.pdf');
退出();
}
如果要发送重定向标头,则无法向页面输出任何内容。请删除该echo
语句,然后重试该页
或者,您可以编写一个带有重定向标记的HTML页面(您可以使其延迟5秒,然后重定向。然后您的消息就可以工作了)
在谷歌上查找教程。只有在发送了标题之后,您才可以使用它发送内容
if(($valid_fname == "Y")&&($valid_sname == "Y")&&($valid_company == "Y")&&($valid_email == "Y")) {
ob_start();
echo "<p class=\"secText\">Thank you for confirming your details, you will be re-directed to \"The Personal Touch\" Whitepaper shortly.</p>\n";
header('Location: http://www.sefasinnovation.co.uk/personal_touch.pdf');
ob_end_flush();
exit();
}
if($valid\u fname==“Y”)&&($valid\u sname==“Y”)&($valid\u company==“Y”)&&($valid\u email==“Y”)){
ob_start();
echo“感谢您确认您的详细信息,您很快就会转到“个人触控”白皮书。
\n”;
标题('位置:http://www.sefasinnovation.co.uk/personal_touch.pdf');
ob_end_flush();
退出();
}
然而,由于在重定向完成之前几乎没有时间显示消息,这种方法将是无用的
在这里,您最好的方法可能是将页面重定向到一个小的HTML页面,该页面将在经过一定时间后触发JavaScript重定向。这里是总体思路。你应该把细节搞清楚
PHP
if(($valid_fname == "Y")&&($valid_sname == "Y")&&($valid_company == "Y")&&($valid_email == "Y")) {
header('Location: http://www.sefasinnovation.co.uk/notification.html');
exit();
// You could also avoid redirection to an HTML file and output the code directly
echo <<<HTML
<html>
<head>
<title>Enter desired title</title>
<script type="text/javascript">
setTimeout(function(){
window.location = "http://www.sefasinnovation.co.uk/personal_touch.pdf";
}, 5000);
</script>
</head>
<body>
<p class="secText">Thank you for confirming your details, you will be re-directed to "The Personal Touch" Whitepaper shortly.</p>
<p>If this page isn't redirected in 5 seconds please click <a href="http://www.sefasinnovation.co.uk/personal_touch.pdf">here</a>.</p>
</body>
</html>
HTML;
}
if($valid\u fname==“Y”)&&($valid\u sname==“Y”)&($valid\u company==“Y”)&&($valid\u email==“Y”)){
标题('位置:http://www.sefasinnovation.co.uk/notification.html');
退出();
//您还可以避免重定向到HTML文件并直接输出代码
echo Please,Please,Please学习如何使用布尔值,Please,Please,Please学习如何进行负比较。如果(!$valid\u compay)echo“Please enter…”
更简短,更容易阅读!
<html>
<head>
<title>Enter desired title</title>
<script type="text/javascript">
setTimeout(function(){
window.location = "http://www.sefasinnovation.co.uk/personal_touch.pdf";
}, 5000);
</script>
</head>
<body>
<p class="secText">Thank you for confirming your details, you will be re-directed to "The Personal Touch" Whitepaper shortly.</p>
<p>If this page isn't redirected in 5 seconds please click <a href="http://www.sefasinnovation.co.uk/personal_touch.pdf">here</a>.</p>
</body>
</html>