2013-08-20 127 views
0

嘿,我正在学习一些来自lynda.com的教程。 而在本教程中,我们正在制作一个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

由于您没有使用任何其他数据,因此您不应该在不同的php标签中分离您的php。一切都可以包裹在标签中。我认为标题错误来自两个标签之间的空行。 (第4行) - 请参阅:http://stackoverflow.com/questions/8028957/headers-already-sent-by-php –

回答

2

使您的代码这样

<?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行在错误消息中明确指出是原因。总是读取错误消息。他们是有帮助的。

+0

只要按照教程只从本周学习PHP :)谢谢btw它的解决。 – Garneto

0

您有以下行之间空白的错误。删除它,所以它会潜在地工作

<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); ?> 

<?php 
+0

感谢你因为它的作品知道:D – Garneto

0

这是因为您已经在脚本中做了一些输出。 尝试在脚本中使用单个打开/关闭php标记对 - 开始时和结束时。

并使用右侧重定向头语法:header('Location:http://www.example.com/'); (从大写字母开始,空格后面的位置)

0

您可以在用“require_once()”调用的其中一个脚本中提供一些“echo”调用(或其他打印文本的函数)。

这里从PHP文件全文:

记住header()函数之前的任何实际产量 发送,无论是普通的HTML标记,空行的文件,或者从PHP必须被调用。 使用include或require, 函数或其他文件访问函数读取代码,并在调用header()之前输出空格或空行 是非常常见的错误。使用单个PHP/HTML文件时存在相同的问题 。