Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/04/2016, 04:59
Chivitoni
 
Fecha de Ingreso: febrero-2015
Mensajes: 56
Antigüedad: 9 años, 10 meses
Puntos: 1
Pregunta Cambio de idioma no funciona en Firefox

Hola a todos,hace poco un cliente me encargó mi primera página web y en ella el quería que se permitiera cambiar de idioma.Pues bien, yo le dije que sin problema ya que esto ya lo había hecho antes.Y cual es mi sorpresa? que le entrego la página web ya completa y me dice que el cambio de idioma no le funciona cuando en mi ordenador si.Por lo visto funciona en Opera y Chrome (que es donde lo había probado) pero no en Explorer y Firefox debido a que no se puede recuperar nada a través del $_Request.

Mi código es el siguiente:

Formulario del index.php:
Código PHP:
include "FuncionIdioma.php";
session_start();
if (!(isset(
$_SESSION['idioma']))) $_SESSION['idioma']="GALEGO";

$textos idioma(0$_SESSION['idioma']);

<
form class="idioma" action="CambioIdioma.php" method="get"
<
input type="image" name="idioma"  value="GALEGO" src="img/galego.png" class="icoidioma3"/>
<
input type="image" name="idioma"  value="ESPANHOL" src="img/español.png" class="icoidioma"/>
<
input type="image" name="idioma"  value="INGLES" src="img/ingles.png" class="icoidioma2"/>     
</
form>

<
div> echo $textos[6];</div//ejemplo de texto 
CambioIdioma.php
Código PHP:
// CambioIdioma.php
// Esta pagina es invocada por los enlaces de cambio de idioma
// Trae el idioma nuevo a poner en la aplicacion en la variable $idioma
// Recogemos la variable de idioma
$idioma $_REQUEST['idioma'];

// iniciamos la sesion
session_start();

// Sustituimos la variable de sesion de idioma por el nuevo valor
$_SESSION['idioma'] = $idioma;

// invocamos la pagina desde donde se llamo a esta
header("location: index.php"); 
FuncionIdioma.php
Código PHP:
<?php


//******************************************************************
// Read from a file de language texts for a page
// Parameters:
// $codpag : code of page to translate
// $idioma : code of language to use (ESPANHOL, ENGLISH)
// returns an array with all texts of the page in $idioma language
//******************************************************************
function idioma($codpag$idioma){
// initialize the lang array
    
$lang = array();
// define the name of file of language
    
$fichero $idioma.".LANG";
// open file in read mode
    
$FileLang fopen($fichero,"r");
// initialize $finish var for detect that language is totally obtained before eof file
    
$finish false;
// read the first line of file
    
$line fgets($FileLang);
// until eof or language obtained
// while doesnt find end of file or flag $finish be true
    
while (!feof($FileLang) && !$finish ){
    
// if the six firts characters are CodPag and the CodPag value be correct
        
if ((substr($line,0,6)=="CodPag") && (substr($line,6)==$codpag)){
           
            
$line fgets($FileLang);
                
$line trim($line);
                
// while doesnt find end of file or other CodTexto
            
while (!feof($FileLang) && (substr($line,0,8)=="CodTexto"))
                {
                    
// store de number of codtext 
                
$codtext substr($line8);
                
                
$endcodetextlang false;
                
$text "";
                    While ( !
feof($FileLang) && !$endcodetextlang)
                    {
                
// read all lines of codtext of language
                    // initialization of $endcodetextlang to false, will take true value when doesn't find
                    // more CodText for this page lang
                    // read the value of language for the codtext
                
$line fgets($FileLang);
                while (!
feof($FileLang) && (!$endcodetextlang))
                    {
                    if (!(
substr($line,0,3)=="Cod") && !(substr($line,0,1)=="#") && !feof($FileLang))
                    {
                    
// delete special characters of the line
                    
$line trim($line);
                    
$text .= $line;
                    
$line fgets($FileLang);
                    }
                    else
                    
$endcodetextlang true;
                }
                    
// puts the text language in $codtext position of the array
                
}
                
$lang[intval($codtext)] = $text;
            
// read for next codtext or end of codtext
            // read for next line of the same codtext of find other codtext, codpag of eof
                
            //$line = fgets($FileLang);
            
}
            
// all information of language for this codpage has been obtained
            // $finish = true;
            
$finish true;
        }
        else
        {
            
$line fgets($FileLang);
        }
    }
    return 
$lang;
}
?>
Y ya por último un trozo de fichero de lenguaje Galego.lang
Código PHP:
#
# CodPag 0 || index.php
#
CodPag0
CodTexto1
Inicio
CodTexto2
Materias 
CodTexto3 

No se si se entiende la idea y mi problema pero básicamente es que en Chrome si hago un print_r($_REQUEST['idioma']) me sale el idioma escogido pero en Firefox sale vacío y no se muy bien a que se debe, he probado de todo incluso cambiando las preferencias del propio navegador.

Espero que alguien me pueda ayudar,muchas gracias.