重定向&标题已经发送

时间:2012-07-28 00:24:11

标签: php javascript mysql html

  

可能重复:
  Headers already sent by PHP

我的MySQL数据库有两个表:‘Listing’‘Country’

‘Country’通过‘country_id’

链接到“列表”

函数createrow()‘Listing’中创建一个新行,这是通过'Submit'按钮使用下拉选择框完成的,然后标题命令重定向到另一个页面。

由于某种原因,我不知道,如果表‘Country’包含超过35条记录,我收到以下错误消息(p.s. 35以下记录头命令重定向没有错误):

警告:无法修改标头信息 - 已在第113行的C:\ xampp \ htdocs \ MySQLprtnr \ create.php中发送的标头(输出从C:\ xampp \ htdocs \ MySQLprtnr \ create.php:101开始)< / p>

代码:

;
<input type="submit" name="Submit" value="Submit"></td>
</tr>

<?php 
if (isset($_POST['Submit'])) 
             {
        $message = $_POST['message'];
        $subject = $_POST['subject'];
        $country_id = $_POST['country_id'];
        createrow($message, $subject, $country_id);
        header('Location: memberprofile.php');
        }
?>
</form>
</table>

行号:

第101行:<?php

第113行:'header('Location: memberprofile.php');'

我有以下两个问题:

  1. 为什么我收到上述错误消息?
  2. 由于我没有问题#1的解决方案,是否有另一种方法来重定向而不是'header'(可能使用Javascript)?
  3. 感谢您的帮助,

1 个答案:

答案 0 :(得分:1)

您只能在任何其他输出之前使用header('...');。在你的情况下应该是:

<?php //beginning of the file
if (isset($_POST['Submit'])) {
    $message = $_POST['message'];
    $subject = $_POST['subject'];
    $country_id = $_POST['country_id'];
    createrow($message, $subject, $country_id);
    header('Location: memberprofile.php');
}
.....
?><!DOCTYPE ....
<HTML>....
.....