Решил защитить веб-интерфейс управления плеером. Сделал вот такое.
<html>
<head>
<title>DarkNet-02 - вход</title>
<style>
BODY,TD
{
font-family:Verdana;
font-size: 12;
color: #ffffff;
}
</style>
<style>
A
{
font-size: 11;
}
</style>
</head>
<body bgcolor='#202020'>
<center><img src="darknet-02.png"></center>
<br>
<form action="player-control.php" method="post">
<table align="center">
<tr>
<td>Логин:</td>
<td align="right"><input type="text" name="login"></td>
</tr>
<tr>
<td>Пароль:</td>
<td align="right"><input type="password" name="pwd"></td>
</tr>
</table>
<table align="center">
<tr>
<td align="center"><input type="submit" name="act_login" value="Вход"></td>
</tr>
</table>
</form>
</body>
</html>
<?php
?>
<html>
<head>
<title>Управление Rhythmbox</title>
<style>
BODY,TD
{
font-family:Verdana;
font-size: 12;
color: #ffffff;
}
</style>
</head>
<body bgcolor='#202020'>
<center>
<img src="darknet-02.png">
</center>
</body>
</html>
<?php
if($_POST[login]=="alpha" && $_POST[pwd]=="********"){
echo('
<br>
<center>
<img src="player.png" width="315" height="157" border="0" usemap="#map" />
</center>
<map name="map">
<!-- #$-:Image map file created by GIMP Image Map plug-in -->
<!-- #$-:GIMP Image Map plug-in by Maurits Rijk -->
<!-- #$-:Please do not edit lines starting with "#$" -->
<!-- #$VERSION:2.3 -->
<!-- #$AUTHOR:Alpha -->
<area shape="rect" coords="38,57,67,89" alt="Prev" href="player-control.php?cmd=prev" />
<area shape="rect" coords="91,57,129,89" alt="PP" href="player-control.php?cmd=playpause" />
<area shape="rect" coords="144,57,173,89" alt="Next" href="player-control.php?cmd=next" />
<area shape="rect" coords="208,53,251,90" alt="На главную" href="index.php" />
<area shape="rect" coords="260,54,301,89" alt="Обновить" href="player-control.php" />
</map>
<br>
<form action="player-control.php" method="get">
<input type="submit" name="cmd" value="mute"/>
<input type="submit" name="cmd" value="vol-"/>
<input type="submit" name="cmd" value="vol+"/>
<input type="submit" name="cmd" value="vol3"/>
<input type="submit" name="cmd" value="vol4"/>
<input type="submit" name="cmd" value="vol5"/>
</form>
');
switch($_GET[cmd]){
case 'prev':
exec('echo "rhythmbox-client --previous" >> /home/alpha/bin/.execd-cmd');
break;
case 'playpause':
exec('echo "rhythmbox-client --play-pause" >> /home/alpha/bin/.execd-cmd');
break;
case 'next':
exec('echo "rhythmbox-client --next" >> /home/alpha/bin/.execd-cmd');
break;
case 'vol-':
exec('echo "rhythmbox-client --volume-down" >> /home/alpha/bin/.execd-cmd');
break;
case 'vol+':
exec('echo "rhythmbox-client --volume-up" >> /home/alpha/bin/.execd-cmd');
break;
}
}
else{
echo('
<br><center>Логин или пароль неверен.</center>
');
}
?>
Вкратце, как это работает: login.php передаёт player-control.php значения логина и пароля. Если они совпадают с нужными, отрисовать форму управления, иначе показать, что логин или пароль неверен.
На странице player-control.php лежит карта изображения. Ссылки передают команды методом get. Блок switch их обрабатывает и выполняет нужное действие.
(Прошу меня простить за топорность исполнения, я пока только учусь)
Проблема в том, что после нажатия любой из ссылок на карте или любой из кнопок появляется та самая надпись о том, что пароль неверен. Обнуляется $_POST.
Можно ли как-то исправить эту проблему?