PHP代码不适用于IE

PHP代码不适用于IE,php,forms,internet-explorer,postback,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'] ==

我有一个带国旗的网站。如果单击,则网站的语言会更改

下面是显示该标志的代码,该标志是一个带有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>';
    ?>  

我不明白为什么它能在Chrome上工作,但不能在IE上工作。我假设它可能是IE的一个设置。但那可能是什么呢?

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

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


如果您想提供多个选项(或者让以后更容易),请为不同的语言使用不同的控件名,并检查是否存在每个选项(或者更确切地说,名称.x或名称.y(在PHP中使用.converted to u))而不是使用具有不同值的标准名称。

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

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


如果您想提供多个选项(或者让以后更容易),请为不同的语言使用不同的控件名,并检查是否存在每个选项(或者更确切地说,名称.x或名称.y(在PHP中使用.converted to u))不要使用具有不同值的标准名称。

为了安全起见,请使用隐藏字段来跟踪语言:

 echo '<form action="'.$pagename.'" method="post">';
 echo '<input id="lang" type="hidden" name="lang" value="'.$_SESSION['lang'].'" />';
 echo '<input name="formlanguage" type="image" onclick="setLanguage(this.value);" ';
 ....
 echo '<script>function setLanguage(l){ document.getElementbyId("lang").value=l;}</script>';

 ...

 if (isset($_POST['lang']))
 {
    $_SESSION['lang']=$_POST['lang'];
 }
echo';
回声';

echo'要安全,请使用跟踪语言的隐藏字段:

 echo '<form action="'.$pagename.'" method="post">';
 echo '<input id="lang" type="hidden" name="lang" value="'.$_SESSION['lang'].'" />';
 echo '<input name="formlanguage" type="image" onclick="setLanguage(this.value);" ';
 ....
 echo '<script>function setLanguage(l){ document.getElementbyId("lang").value=l;}</script>';

 ...

 if (isset($_POST['lang']))
 {
    $_SESSION['lang']=$_POST['lang'];
 }
echo';
回声';

echo“只是为了学究,不是php代码在IE中不起作用,而是php代码的输出。。。。如果你只是为了学究而发布输出(相关),那就更好了。不是php代码在IE中不起作用,而是php代码的输出。。。。如果您发布输出(相关)会更好