-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')
?>
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!