PHP代码无法在IE上运行

Mic*_*rey 0 php forms internet-explorer postback

我有一个带旗帜的网站.如果单击它,则网站的语言会发生变化.

这是显示标志的代码,这是一个带有post事件的表单:

   <?php 
    $pagename = $_SERVER['REQUEST_URI'];
    echo '<form action="'.$pagename.'" method="post">
    <input name="formlanguage" type="image" ';
    if ($_SESSION['lang'] == 0)
    {
        echo 'alt="English" src="images/en.png" value="1" ';
    }
    else
    {
        echo 'alt="Deutsch" src="images/de.png" value="0" ';
    }
    echo '/></form>';
    ?>  
Run Code Online (Sandbox Code Playgroud)

以下是对此的响应,这部分总是在IE上失败:

if (isset($_POST['formlanguage']))
{
    $_SESSION['lang']=$_POST['formlanguage'];
}
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么它适用于Chrome但不适用于IE.我假设它可能是IE的设置.但这可能是什么?

Que*_*tin 6

IE不发送服务器端图像映射的值,只发送坐标.

由于您有一个简单的切换:添加一个隐藏的输入,指定要更改的语言,而不是取决于图像输入数据.

如果要提供多个选项(或将来更容易这样做),请为不同的语言使用不同的控件名称,并检查每个选项是否存在(或者更确切地说,是名称.x或name.y(使用.已转换) to _ in PHP))而不是具有不同值的标准名称.