当我运行player.php时,它会出现此错误:
Warning: Cannot modify header information - headers already sent by (output started
at /www/110mb.com/m/u/s/i/c/k/i/n/musicking/htdocs/player.php:8) in
/www/110mb.com/m/u/s/i/c/k/i/n/musicking/htdocs/player.php on line 24
你能帮忙吗?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Player</title>
</head>
<body>
<?php
if(isset($_POST["song"])&& $_POST['song'] != "")
{
$song = $_POST["song"];
}
else {$song=array();}
for ($i="0"; $i<count($song); $i++) {
}
//start of new php codep
// create doctype
//$array = array(
// 'song.mp3','song.mp3','song.mp3',
//);
$dom = new DOMDocument("1.0");
// display document in browser as plain text
// for readability purposes
header("Content-Type: text/plain");
// create root element
$root = $dom->createElement("xml");
$dom->appendChild($root);
$i = "1";
foreach ($song as $counter) {
// create child element
$song = $dom->createElement("track");
$root->appendChild($song);
$song1 = $dom->createElement("path");
$song->appendChild($song1);
// create text node
$text = $dom->createTextNode($counter);
$song1->appendChild($text);
$song1 = $dom->createElement("title");
$song->appendChild($song1);
$text = $dom->createTextNode("song ".$i);
$song1->appendChild($text);
$i++;
}
// save and display tree
$dom->save("playlist.xml");
?>
<script type="text/javascript" src="swfobject.js">
</script>
<div id="flashPlayer">
This text will be replaced by the flash music player.
</div>
<script type="text/javascript">
var so = new SWFObject("playerMultipleList.swf", "mymovie", "295", "200", "7", "#FFFFFF");
so.addVariable("autoPlay","yes")
so.addVariable("playlistPath","playlist.xml")
so.write("flashPlayer");
</script>
</body>
</html>
答案 0 :(得分:7)
由于在您的第一个<?php
标记之前显示的HTML,因此会触发错误消息。在调用header()
之前,您无法输出任何内容。要修复此错误,请使用<?php
标记启动文档,并在完成处理输出XML for flash的条件后才开始输出HTML。
更清洁的解决方案是将flash的XML生成和HTML输出分离到不同的文件中。
答案 1 :(得分:4)
错误消息表示php脚本在调用header()函数或需要修改http标头的任何其他内容之前已经将输出发送到浏览器。
如果没有看到脚本格式正确,很难尝试和诊断出问题的位置,但是这一行:
header("Content-Type: text/plain");
应该在php标签的脚本开头。
答案 2 :(得分:1)
似乎你正在尝试使用Flash MP3播放器,但是你混淆了一些东西。
你在播放器所在的同一个文件上生成XML播放列表文件,你可以这样做,但我认为让一个生成XML的genPlayList.php文件更清晰,更简单档案给你。
然后在您的MP3播放器页面中,您只能引用该脚本:
....
so.addVariable("playlistPath","genPlayList.php");
....
答案 3 :(得分:0)
<!DOCTYPE html PUBLIC ...
....
<body>
你去那里了。
你应该在此之前移动整个php处理块。
答案 4 :(得分:0)
尝试使用 javascript重定向,而不是使用标题重定向。