提交表单后重定向到另一个页面?
Posted
技术标签:
【中文标题】提交表单后重定向到另一个页面?【英文标题】:Redirect to another page after submitting a form? 【发布时间】:2017-06-26 09:41:09 【问题描述】:我正在尝试在提交表单后将用户重定向到另一个页面。表格效果很好。如果强制用户输入必填字段,并且除非这些字段中的每一个都完整,否则不会提交。然后它提交表单并刷新。但我想将用户重定向到另一个页面,而不是简单地刷新页面。
我的php代码如下!
<?php
$recipients = 'dre@myemail.com';
//$recipients = '#';
try
require './phpmailer/PHPMailerAutoload.php';
preg_match_all("/([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]0,66)\.([a-z] 2,6(?:\.[a-z]2)?)/", $recipients, $addresses, PREG_OFFSET_CAPTURE);
if (!count($addresses[0]))
die('MF001');
if (preg_match('/^(127\.|192\.168\.)/', $_SERVER['REMOTE_ADDR']))
die('MF002');
$template = file_get_contents('rd-mailform1.tpl');
if (isset($_POST['form-type']))
switch ($_POST['form-type'])
case 'registration':
$subject = 'New Registration';
break;
case 'subscribe':
$subject = 'Subscribe request';
break;
case 'order':
$subject = 'Order request';
break;
default:
$subject = 'A message from your site visitor';
break;
else
die('MF004');
if (isset($_POST['email']))
$template = str_replace(
["<!-- #FromState -->", "<!-- #FromEmail -->"],
["Email:", $_POST['email']],
$template);
else
die('MF003');
if (isset($_POST['message']))
$template = str_replace(
["<!-- #MessageState -->", "<!-- #MessageDescription -->"],
["Message:", $_POST['message']],
$template);
preg_match("/(<!-- #BeginInfo -->)(.|\n)+(<!-- #EndInfo -->)/", $template, $tmp, PREG_OFFSET_CAPTURE);
foreach ($_POST as $key => $value)
if ($key != "email" && $key != "message" && $key != "form-type" && !empty($value))
$info = str_replace(
["<!-- #BeginInfo -->", "<!-- #InfoState -->", "<!-- #InfoDescription -->"],
["", ucfirst($key) . ':', $value],
$tmp[0][0]);
$template = str_replace("<!-- #EndInfo -->", $info, $template);
$template = str_replace(
["<!-- #Subject -->", "<!-- #SiteName -->"],
[$subject, $_SERVER['SERVER_NAME']],
$template);
$mail = new PHPMailer();
$mail->From = $_SERVER['SERVER_ADDR'];
$mail->FromName = $_SERVER['SERVER_NAME'];
foreach ($addresses[0] as $key => $value)
$mail->addAddress($value[0]);
$mail->CharSet = 'utf-8';
$mail->Subject = $subject;
$mail->Msghtml($template);
if (isset($_FILES['attachment']))
foreach ($_FILES['attachment']['error'] as $key => $error)
if ($error == UPLOAD_ERR_OK)
$mail->AddAttachment($_FILES['attachment']['tmp_name'][$key], $_FILES['Attachment']['name'][$key]);
$mail->send();
die('MF000');
catch (phpmailerException $e)
die('MF254');
catch (Exception $e)
die('MF255');
?>
【问题讨论】:
【参考方案1】:您可以使用header 来重定向页面。如果您确定表单的操作已成功执行,请添加以下内容:
header('Location: path/to/your/file.php'); //Could also be an external or internal URL
【讨论】:
以上是关于提交表单后重定向到另一个页面?的主要内容,如果未能解决你的问题,请参考以下文章