PHP kodu IE çalışmıyor

2 Cevap php

Ben bir bayrak ile bir web sitesi var. Tıklandığında ise, web sitesi değişiklikleri dili.

İşte sonrası olay ile bir şeklidir bayrağı, görüntüleme kodu:

   <?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>';
    ?>  

İşte buna tepki olduğunu, ve bu bölümü her zaman IE başarısız:

if (isset($_POST['formlanguage']))
{
    $_SESSION['lang']=$_POST['formlanguage'];
}

IE değil Chrome'da çalışır ama neden ben çözemiyorum. Ben IE ayarı olabileceğini varsayıyorum. Ama bu ne olabilir?

2 Cevap

IE sunucu tarafında görüntü haritaları, sadece koordinatlar için değerini göndermek değildir.

Dil görüntü girişi verilerine bağlı olarak yerine değiştirmek için belirten gizli bir giriş eklemek: Eğer basit bir mafsal vardır beri.

Eğer birden fazla seçenek sunar (ya da daha kolay gelecekte bunu yapmak) istiyorsanız, farklı diller için farklı kontrol names kullanmak ve her biri (ya da daha doğrusu, name.x veya adının varlığını kontrol . y yerine farklı değerler ile standart bir ada sahip) ile (. PHP _ dönüştürülür).

izleme dil için güvenli kullanım gizli alanı olmak üzere:

 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'];
 }