标题位置不起作用
Posted
技术标签:
【中文标题】标题位置不起作用【英文标题】:Header location doesn't work 【发布时间】:2013-08-22 09:36:01 【问题描述】:嘿,我正在通过 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
【问题讨论】:
你不应该在不同的 php 标签中分隔你的 php,因为你没有使用任何其他数据。一切都可以包装在 标记中。我认为标题错误来自两个标签之间的空行。 (第 4 行)- 参见:***.com/questions/8028957/headers-already-sent-by-php 【参考方案1】:以这种方式编写代码
<?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 行作为原因。总是阅读错误信息。他们很有帮助。
【讨论】:
只是按照教程从本周开始学习 PHP :) 感谢解决。【参考方案2】:这是因为您已经在脚本中进行了一些输出。 尝试在脚本中使用单个打开/关闭 php 标记对 - 在开头和结尾。
并使用正确的重定向标头语法:
header('Location: http://www.example.com/');
位置从大写开始,空格在
之后【讨论】:
【参考方案3】:以下行之间有空格。删除它,这样它就有可能工作
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); ?>
<?php
【讨论】:
【参考方案4】:您在使用“require_once()”调用的脚本之一中可能有一些“回声”调用(或其他打印文本的函数)。
这里是来自 PHP Doc 的文本:
请记住,必须在任何实际输出之前调用 header() 通过普通的 html 标记、文件中的空行或 PHP 发送。 使用 include 或 require 读取代码是一个非常常见的错误, 函数或其他文件访问函数,并且有空格或空 在调用 header() 之前输出的行。同样的问题 使用单个 PHP/HTML 文件时存在。
【讨论】:
以上是关于标题位置不起作用的主要内容,如果未能解决你的问题,请参考以下文章