嘿,我正在通过lynda.com的一些教程学习PHP。 在本教程中,我们正在制作CMS。 我按照教程中的步骤,甚至从lynda.com获得文件,它的完美相同,但是在教程中它可以工作,当我这样做时,标题位置不起作用。
<?php require_once("includes/connection.php"); ?>
<?php require_once("includes/functions.php"); ?>
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); ?>
<?php
$menu_name = $_POST['menu_name'];
$position = $_POST['position'];
$visible = $_POST['visible'];
?>
<?php
$query = "INSERT INTO subjects (
menu_name, position, visible
) VALUES (
'{$menu_name}', {$position}, {$visible}
)";
$result = mysql_query($query, $connection);
if ($result) {
// Success!
header("location:content.php");
exit;
} else {
// Display error message.
echo "<p>Subject creation failed.</p>";
echo "<p>" . mysql_error() . "</p>";
}
?>
<?php mysql_close($connection); ?>
我得到的错误如下
Warning: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/Widgetcorp/create_subject.php:5) in /Applications/MAMP/htdocs/Widgetcorp/create_subject.php on line 19
答案 0 :(得分:3)
以这种方式制作代码
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'On');
require_once("includes/connection.php");
require_once("includes/functions.php");
$menu_name = $_POST['menu_name'];
...
没有所有这些不必要的打开/关闭PHP标签。
请注意第5行在错误消息中明确指出作为原因。始终读取错误消息。他们很有帮助。
答案 1 :(得分:1)
这是因为您已经在脚本中输出了一些输出。 尝试在脚本中使用单个打开/关闭php标记对 - 在开始和结束时。
并使用正确的重定向标头语法:
header('Location: http://www.example.com/');
之后的大写位置,空格
答案 2 :(得分:0)
以下行之间有空格。删除它以便它可能正常工作
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); ?>
<?php
答案 3 :(得分:0)
你可以在一个用“require_once()”调用的脚本中有一些“echo”调用(或其他打印文本的函数)。
这里是PHP Doc的文本:
请记住,在任何实际输出之前必须调用header() 通过普通HTML标记,文件中的空行或PHP发送。 使用include或require读取代码是一个非常常见的错误, 函数或其他文件访问函数,并且有空格或空 调用header()之前输出的行。一样的问题 使用单个PHP / HTML文件时存在。