我正在使用以下代码进行表单操作,
// includes
require_once('inc/mysql_wrapper.php');
$DB=get_db_connection();
require_once('inc/defines.inc.php');
require_once('lib/functions.php');
require_once('lib/framework.php');
require_once('lib/specific.php');
require_once('lib/table_editor.php');
require_once('lib/user.php');
require_once('models/basic.php');
require_once('models/list.php');
require_once('swiftmailer/lib/swift_required.php');
require_once('recaptcha/recaptchalib.php');
// end includes
$q="SELECT value FROM $T_SETTINGS
WHERE name='register'";
$register=$DB->oq($q);
$optin=get_setting("optin");
// select custom fields if any
$q="SELECT * FROM $T_FIELDS
WHERE list_id='$_GET[list_id]'
ORDER BY id";
$efields=$DB->aq($q);
// select mailing list
$q="SELECT * FROM $T_LISTS WHERE id='$_GET[list_id]'";
$list=$DB->sq($q);
if(!empty($_POST['ok']))
{
// validate recaptcha if required
if($list['require_recaptcha'])
{
$resp = recaptcha_check_answer (RECAPTCHA_PRIVATE,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid)
{
$recaptcha_error="Looks like the words you entered are not correct!";
$template="templates/register.html";
require_once('templates/master.html');
exit;
}
}
User::register($_POST, $efields, $optin);
if(!empty($list['redirect_to']))
{
redirect($list['redirect_to']);
exit;
}
$template="templates/message.html";
}
else
{
$template="templates/register.html";
}
require_once('templates/master.html');
排除其他一些选项,主要是此表单收到的表单数据
姓名,电子邮件,确认(检查提交表格的标志)
如何在提交表单后将此页面重定向到thanks.php?
答案 0 :(得分:2)
当数据有效时,添加:
header('Location: http://www.example.com/thanks.php');
答案 1 :(得分:1)
你不能直接在thanks.php发表吗?
Thanks.php应该控制数据格式并显示消息,或者重定向(通过放置到标题字符串:header('Location: urlOfForm-postedPage);
。
因此,如果数据正确(如果需要控件,但我认为是),则不需要重定向。
更重要的是,如果在原始页面中完成控制(简单地使用JS或JQuery?),您可以保存一些重定向。 这样会更有效率!
答案 2 :(得分:0)
如果一切顺利,您可以使用php header
到达所需的页面:
header( 'Location: thanks.php' );
答案 3 :(得分:0)
或javascript:
?>
<script type="text/javascript">
window.location = "your>"
</script>
<?php