PHP代码不适用于IE
我有一个带国旗的网站。如果单击,则网站的语言会更改 下面是显示该标志的代码,该标志是一个带有post事件的表单: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'] ==
<?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代码的输出。。。。如果您发布输出(相关)会更好