include(‘header.php’);
$name = $_POST['name']; $score = $_POST['score']; $dept = $_POST['dept']; $MyDB->prep("INSERT INTO demo (`id`,`name`,`score`,`dept`, `date`) VALUES ('','$name','$score','$dept','$date')"); // Bind a value to our :id hook // Produces: SELECT * FROM demo_table WHERE id = '23' $MyDB->bind(':date', $date); // Run the query $MyDB->run(); header('Location:index.php'); exit;
上面的代码不断给我重定向的问题。错误如下:
警告:无法修改标头信息-已在/ Applications / MAMP / htdocs / testygubbins / OO / test / form中发送的标头(输出始于/Applications/MAMP/htdocs/testygubbins/OO/test/header.php:15)。第16行的php。
我对此完全感到困惑。有谁知道我应该做些什么才能使其正常工作?
编辑
header.php代码:
<?php include('class.user.php'); include('class.Connection.php'); $date = date('Y-m-j'); ?> <html> <head> <link rel=StyleSheet href="css/style.css" type="text/css" media=screen> <title>Test</title> </head> <body> <div id="page">
仔细查看您的包含项-也许在结束后您有一个空白行?
这将导致一些文字空白作为输出发送,从而阻止您进行后续的标头调用。
请注意,将close?>保留在include文件之外是合法的,这对于避免此问题很有用。
(编辑:查看标头,如果要输出标头或使用输出缓冲捕获它,则需要避免进行任何HTML输出)。
最后,正如标题的PHP手册页指出的那样,您实际上应该使用完整的URL进行重定向:
注意:HTTP / 1.1要求使用绝对URI作为 Location的 参数 : 包括方案,主机名和绝对路径,但是某些客户端会接受相对URI。通常,您可以使用$ _SERVER [‘HTTP_HOST’],$ _ SERVER [‘PHP_SELF’]和dirname()从您自己的亲戚那里创建绝对URI: