Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/03/2014, 06:32
andolinibdn
 
Fecha de Ingreso: marzo-2014
Mensajes: 6
Antigüedad: 10 años, 1 mes
Puntos: 0
Problema con Cookies para definir idioma

Estoy haciendo una práctica que consta de lo siguiente:

-Index.php --> (Aquí uso un formulario de acceso (usuario y contraseña) + un select para escoger entre dos idiomas. Catalán y Ingles.
-Logincheck.php --> Este fichero es el que coge el $_POST del usuario, contraseña y el idioma desde el select.
-Miscelania.php --> Contiene la función para determinar que idioma se ha seleccionado usando la cookie almacenada y para lanzar el idioma a las páginas:
intranet.php o error.php .
-luego tengo definidos los idiomas en constantes en dos archivos: cat.php y en.php.

Añado los códigos a ver si alguien me puede orientar un poco ya que estoy un poco perdido:

cat.hp (viceversa el en.php)
Código PHP:
<?php
/*
------------------
Language: cat
------------------
*/

define('LANG_PAGE_TITLE''Aquesta es la meva Intranet');
define'LANG_HEADER_TITLE' 'Benvinguts a La intranet!');
define('LANG_SITE_NAME''La Meva Intranet');
define('LANG_SLOGAN''Disfruteu de la visita');
define('LANG_HEADING''Capçalera');
define('ERROR_LOGIN''Usuario o contrasenya incorrecta')


?>
error.php:
Código PHP:
<?php
include_once 'en.php'
include_once 
'cat.php';
include_once 
'miscelania.php';

?> 

<html>
<head>
<?php echo LANG_HEADER_TITLE?>
<title><?php echo LANG_PAGE_TITLE?></title></head>
<body>

<h1><?php echo LANG_SLOGAN?></h1>

<br><br><br><br><br><br><br><br><br>

<?php echo ERROR_LOGIN?>

</body>

</html>

logincheck.php


Código PHP:
             
  <?php 
  
  session_start
(); 
  include_once 
'config.php'
  include_once 
'miscelania.php';
  if (!isset(
$_POST['submit'])) { 
      
header("Location: ./error.php"); 
      exit(); 
      } 
      
      if(isset(
$_POST['idioma'])) {
          
$idioma = ($_POST['idioma']);
          
setcookie('idioma'$idioma time() + 3600 "/" );
      
                   
      }  
      
 
      
      
$pass md5 ($_POST['contrasena']); 
      
      
      switch(
$_POST["usuari"]) { 
      
          case 
USER1
              if (
strcmp($pass PASSWORD1) == 0) {
           
              
$_SESSION['submit']=$_POST['submit']; 
              
$_SESSION['id_usuari']=$_POST['usuari'];
              
$_SESSION['clau_access']=$_POST['contrasena']; 
              
header("Location: ./intranet.php");
             exit; 
         } 
            else {
                
header("Location: ./error.php?ERROR_LOGIN");
            }
         break; 
        
        
         case 
USER2
             if (
strcmp($pass PASSWORD2) == 0) { 
                 
$_SESSION['submit']=$_POST['submit']; 
                 
$_SESSION['id_usuari']=$_POST['usuari']; 
                 
$_SESSION['clau_access']=$_POST['contrasena']; 
                 
header("Location: ./intranet.php"); 
                 exit; 
             } 
             else {
                
header("Location: ./error.php?ERROR_LOGIN");
            }
                 break; 
             
             
             
             } 
  
             
             
 
?>

miscelania.php

Código PHP:
<?php
session_start
();
include_once(
'en.php');
include_once(
'cat.php');
include_once(
'index.php');


if(isset(
$_POST['idioma'])){
    
$lang $_POST['idioma'];

    
    
$_SESSION['idioma'] = $lang;
    
   
setcookie('lang'$lang time() + 3600 "/" );
    
    
    
}

    
else if(isset(
$_SESSION['idioma'])){
    
$lang $_SESSION['idioma'];
}

else if(isset(
$_COOKIE['lang'])){
    
$lang $_COOKIE['lang'];
}else{
    
$lang 'en';
}

switch (
$lang) {
  case 
'en':
  
$lang_file '../lan/en.php';
  break;
 
  

  case 
'cat':
  
$lang_file '../lan/cat.php';
  break;

  default:
  
$lang_file '../lan/cat.php';

}

include_once 
'../lan'.$lang_file

?>



[/PHP]

El logincheck funciona correctamente y me redirecciona a intranet o error en caso que ponga mal las claves pero cuando me lleva por ejemplo a error solo me aparece el nombre de las constantes sin su valor, no me traduce nada.

En el formulario no tengo nada de php , es un simple formulario html con select option.

¿Alguien me puede guiar un poco?


Gracias!