为什么我的php重定向不起作用';?!尽管标题重定向,但仍保持在同一页上
我有一个数据库连接、表单验证和邮件发送的表单 一切都很完美。无论我怎么尝试,只有通过标题重定向到我的“endcard.php”都不起作用 这里是form.php的一个片段。输入被发送到validation.php。为什么我的php重定向不起作用';?!尽管标题重定向,但仍保持在同一页上,php,html,mysql,forms,validation,Php,Html,Mysql,Forms,Validation,我有一个数据库连接、表单验证和邮件发送的表单 一切都很完美。无论我怎么尝试,只有通过标题重定向到我的“endcard.php”都不起作用 这里是form.php的一个片段。输入被发送到validation.php。 (我意识到自己的不安全感) php将初始化SQL查询,发送邮件,并应重定向到我的“endcard.php” //declare header header('Location: https://www.mywebsite/endcard.php');
(我意识到自己的不安全感) php将初始化SQL查询,发送邮件,并应重定向到我的“endcard.php”
//declare header
header('Location: https://www.mywebsite/endcard.php');
//declare variables and connect them to html form fields
... (works fine)
//initialize sql queri
... (works fine)
// sends mail
..(works fine)
这个现在不行了。提交表单时,上面的所有内容都可以正常工作,但我仍然停留在表单页面上,但应该被重定向到endcard.php
// Send mail with custom headers
if(mail($recipient, $subject, $message, $headers)) {
require(' https://www.mywebsite.com/endcard.php');
// I tried inlcude, didnt work either..
// also tried to put the header in here. Also didnt work..
}
我猜操作=“
不允许任何重定向
但我不知道如何通过
有什么想法吗?在调用
header()
之后,您应该退出()
,这样HTTP响应就不包含正文:
// Send mail with custom headers
if(mail($recipient, $subject, $message, $headers)) {
header('Location: https://www.mywebsite.com/endcard.php');
exit();
}
另外,请确保在调用
header()
之前没有输出任何HTML,否则将不会发送头:在调用header()
之后,您应该exit()
,以便HTTP响应不包含正文:
// Send mail with custom headers
if(mail($recipient, $subject, $message, $headers)) {
header('Location: https://www.mywebsite.com/endcard.php');
exit();
}
还要确保在调用
header()
之前没有输出任何HTML,否则将无法发送头:我用新的逻辑解决了它!标题不是问题
- 我没有使用通常会重新加载表单页面的
,而是使用action=“action=“
仅当错误变量不为空时才加载form.php!如果它们为空,则加载signup.php。我像以前一样使用了标题,而且效果很好。action=“validation.php”
也许最重要的修复是正确使用includes/includes_中的路径一次。
在我刚刚使用includes('path in my ftp server')之前代码>,在某些情况下有效
但我发现,不能以这种方式包含相对于webroot的php文件,因为如果使用斜杠作为第一个字符,引用将比文档根更深入。因此,我没有使用basepath,而是这样做了:
它工作得很完美,也是更好的代码 我用新的逻辑解决了它!标题不是问题
- 我没有使用通常会重新加载表单页面的
,而是使用action=“action=“
仅当错误变量不为空时才加载form.php!如果它们为空,则加载signup.php。我像以前一样使用了标题,而且效果很好。action=“validation.php”
也许最重要的修复是正确使用includes/includes_中的路径一次。
在我刚刚使用includes('path in my ftp server')之前代码>,在某些情况下有效
但我发现,不能以这种方式包含相对于webroot的php文件,因为如果使用斜杠作为第一个字符,引用将比文档根更深入。因此,我没有使用basepath,而是这样做了:
它工作得很完美,也是更好的代码 我还在我的表格页上。最奇怪的是,它没有显示表单本身,只显示网站描述。所以它没有重定向到我的终端卡。。?!它变得更奇怪了!在本地主机中打开窗体时。它重定向到我的名片…我仍然在我的表格页上。最奇怪的是,它没有显示表单本身,只显示网站描述。所以它没有重定向到我的终端卡。。?!它变得更奇怪了!在本地主机中打开窗体时。它重定向到我的名片。。。
// Send mail with custom headers
if(mail($recipient, $subject, $message, $headers)) {
header('Location: https://www.mywebsite.com/endcard.php');
exit();
}
$path = $_SERVER['DOCUMENT_ROOT'];
$path .= "/path in my ftp server.php";
include_once($path);