我在php上创建了一个表单,将结果写在.txt文件中。
在我的服务器上运行良好,但在另一台服务器上出现以下错误:
警告:无法修改标题信息 - 已在第52行的/home1/alertme/public_html/mavala/form.php中发送的标题(由/home1/alertme/public_html/mavala/form.php:43开始输出)< / p>
我使用的代码是:
<?php
if(isset($_POST['submit']))
{
$name = $_POST['name'];
$email = $_POST['email'];
$new_content = "\r\nNome: " . $name;
$new_content .= "\r\nEmail: " . $email;
file_put_contents('emaillist.txt', $new_content, FILE_APPEND);
print_r(error_get_last());
header('Location: thank-you.html'); //This is line 52
exit();
}
?>
服务器与错误的链接是:http://trendalert.me/mavala/form.php
填写表单并提交后,php会将结果写入.txt文件,但不会显示感谢页面:http://trendalert.me/mavala/thank-you.html
同样,在我这方面一切正常,但在客户的服务器上却没有。
答案 0 :(得分:2)
<?php
是你的问题,发送白色空间发送标题。
确保<?php
是php文件中的第一件事
同样在生产服务器上,它们的警告应该被禁止
答案 1 :(得分:0)
使用标题时,在php打开标记之前和标题调用之前的任何输出之前都不能有任何黑色空格。此行为可能会在不同的配置和PHP版本上发生变化。
因此,删除所有空格和print_r,您的问题将得到解决!
答案 2 :(得分:0)
使用以下代码:
<?php
if(isset($_POST['submit']))
{
$name = $_POST['name'];
$email = $_POST['email'];
$new_content = "\r\nNome: " . $name;
$new_content .= "\r\nEmail: " . $email;
file_put_contents('emaillist.txt', $new_content, FILE_APPEND);
print_r(error_get_last());
echo '<meta http-equiv="refresh" content="0; url=thank-you.html">'; //This is line 52
exit();
}
?>
答案 3 :(得分:-1)
试试这个
<?php
if(isset($_POST['submit']))
{
$name = $_POST['name'];
$email = $_POST['email'];
$new_content = "\r\nNome: " . $name;
$new_content .= "\r\nEmail: " . $email;
file_put_contents('emaillist.txt', $new_content, FILE_APPEND);
$errors = error_get_last();
if(empty($errors)){
header('Location: thank-you.html'); //This is line 52
exit();
} else {
print_r($errors);
}
}
?>