PHP $ _POST做了两件事,但顺序错了

时间:2016-04-23 15:50:20

标签: php

我有一个按钮,当点击播放歌曲时。 我想要做的是当点击按钮时,图片显示“正在播放”,同时歌曲播放,然后页面重新加载完成。

发生的事情是当点击按钮时播放歌曲,然后当页面重新加载时图像显示“正在播放”。

如何在播放歌曲之前让它显示“正在播放”的图形?

代码

<?php

if (isset($_POST['PlaySong']))

{

echo ("<img src='/images/nowplaying.png'>");
exec ("/usr/bin/sudo /home/pi/scripts/song.sh");
header ('Location: '.$_SERVER['REQUEST_URI']);

?>

2 个答案:

答案 0 :(得分:0)

这是我必须要做的才能让它发挥作用。请注意,播放歌曲需要50秒。

<?php

if (isset($_POST['PlaySong']))

{
echo ("<img src='/images/nowplaying.png'>");
shell_exec ("/usr/bin/sudo /home/pi/scripts/song.sh > /dev/null 2>/dev/null &");
header ('Refresh: 50; URL=http://myurl');
}

?>

答案 1 :(得分:-1)

设置Location标头时,浏览器会向页面发出GET请求(在您的情况下,同一个请求)。因此,重定向后$_POST数组为空是正常的。

相反,请使用GET参数。

替换header ('Location: '.$_SERVER['REQUEST_URI']);

header ('Location: '.$_SERVER['REQUEST_URI']."?PlaySong=1");

isset($_POST['PlaySong'])

isset($_GET['PlaySong'])

你应该没事。

编辑:纠正语法错误。