Me pasa lo siguiente y la verdad que estoy desorientado. Estoy armando mi formulario multilenguaje con partes de script de este foro:
Tengo en la cabecera del procesa.php (que procesa el formulario) la identificación del idoma del usuario (es-de-en) que según sea, elige el archivo correspondiente al idioma. Para esto lo hago con un include("lang/$idioma.php") que elije el archivo de idioma del Directorio lang donde estan las variables definidas.
Ahora bien, esto forma parte de las otras funciones que procesan el formulario, es decir, hace las comprobaciones y envía un mail para la activación del registro en la BD.
El problema que tengo, es que en la parte de la session_start() pongo las variables definidas en los archivos de idioma y me tira como error de que las variables no estan definidas. Es decir, no está tomando el include("lang/$idioma.php")
Aquí pongo el procesa.php, la aprte de la session_start(), con un ejemplo de como pongo la variable que quiero que me incluya. Se encuentra en la linea donde dice "//Hay campos en blanco" y la variable que pongo se llama $VARIABLE
Por favor, si alguien me puede dar una mano... muy agradecido!
Saludos
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" >
<head>
</head>
<body>
<?php
session_start();
//datos para establecer la conexion con la base de mysql.
$conexion=mysql_connect('localhost','Usuario','contraseña')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('BD')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
//añadimos la funcion que se encargara de generar un numero aleatorio
function genera_random($longitud){
$exp_reg="[^A-Z0-9]";
return substr(eregi_replace($exp_reg, "", md5(rand())) .
eregi_replace($exp_reg, "", md5(rand())) .
eregi_replace($exp_reg, "", md5(rand())),
0, $longitud);
}
function formRegistro(){
?>
<?php
}
// verificamos si se han enviado ya las variables necesarias, las que tenemos en nuestro form cambialo, como sea el tuyo.
if (isset($_POST["apellido"])) {
$apellido = $_POST["apellido"];
$nombre = $_POST["nombre"];
$email = $_POST["email"];
echo "<div style='text-align:center;font-weight:bold;font-size:250%;color:#005784;margin-top:200px;'>";
echo "<span>$apellido </span>";
echo $nombre;
echo "</div>";
// Hay campos en blanco
if($apellido==NULL|$nombre==NULL|$nacimiento==NULL|$sexo==NULL|$pais==NULL|$residencia==NULL|$provincia==NULL|$email==NULL|$idioma==NULL|$investiga==NULL) {
echo "<div style='font-size:250%;text-align:center;font-weight:bold;color:#B40404;'>$VARIABLE</div>";
formRegistro();
}else{
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
$checkemail = mysql_query("SELECT email FROM interinfogen WHERE email='$email'");
$email_exist = mysql_num_rows($checkemail);
if ($email_exist>0) {
echo "<div style='font-size:130%;text-align:center;font-weight:bold;color:#B40404;'>La cuenta de correo <span style='color:blue;'>$email</span> ya está en uso.</div>";
formRegistro();
}else{
//agregamos la variable $activate que es un numero aleatorio de
//20 digitos crado con la funcion genera_random de mas arriba
$activate = genera_random(20);
//aqui es donde insertamos los nuevos valosres en la BD activate y el valor 1 que es desactivado
$query = 'INSERT INTO interinfogen (apellido, nombre, nacimiento, sexo, pais, residencia, provincia, email, idioma, web, investiga, argentina, rusia, activate, estado)
VALUES (\''.$apellido.'\',\''.$nombre.'\',\''.$nacimiento.'\',\''.$sexo.'\',\''.$pais.'\',\''.$residencia.'\',\''.$provincia.'\',\''.$email.'\',\''.$idioma.'\',\''.$web.'\',\''.$investiga.'\',\''.$argentina.'\',\''.$rusia.'\',\''.$activate.'\', 1)';
mysql_query($query) or die(mysql_error());
echo "<div style=text-align:center;font-size:130%;>";
echo "<span style='font-weight:bold;font-style:italic;color:#B40404;'>Parece que todo ha ido bien!!!</span><br />";
echo "Ha sido registrado con la cuenta de correo: <span style='font-weight:bold;color:blue;'>$email</span> de manera satisfactoria.<br />";
echo "Le enviaremos ahora un email para activar su cuenta al correo que nos facilito.<br />";
echo "Luego de esa activación, integrará la lista INTER-INFO-GEN con los datos aportados.<br />";
echo "<span style='font-weight:bold;font-style:italic;color:#B40404;'>Muchas gracias por participar!!!</span>";
echo "</div>";
$query = "SELECT * FROM interinfogen WHERE apellido='$apellido'";
$result = mysql_query($query , $conexion) or die ( mysql_error() );
$row = mysql_fetch_array($result);
$path="http://miweb/pagina/formulario//"; //creamos nuestra direccion, con las carpetas que sean si hay
//armamos nuestro link para enviar por mail en la variable $activateLink
$activateLink=$path."activar_cuenta.php?id=".$row['id']."&activateKey=".$activate."";
// Datos del email
$nombre_origen = "miweb";
$email_origen = "miemail";
$email_copia = "miemail";
$email_ocultos = "miemail";
$email_destino = "".$row['email']."";
$asunto = "".$row['apellido'].", por favor active su cuenta";
$mensaje = '<table width="629" border="0" cellspacing="1" cellpadding="2">
<tr>
<td style="font-size:22px;font-style:italic;font-weight:bold;color:#999999;text-align:center;padding:0 0 5px 0">
Alemanes del Volga en Argentina
</td>
</tr>
<tr>
<td style="background:#A0E0E0;padding:3px 0 3px 2px;">
<div style="color:#000099;font-size:16px;font-family: Arial, Helvetica, sans-serif;font-weight: bold;padding-left:5px;">
'.$row['apellido'].'... estos son los datos aportados por Ud.:
</div>
</td>
</tr>
<tr>
<td style="text-align:left;">
<div style=" color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:14px;padding-left:5px;margin:7px 0 0 0;">
<strong>Apellido: </strong>'.$row['apellido'].'<br />
<strong>Nombre: </strong>'.$row['nombre'].'<br />
<strong>Nacimiento: </strong>'.$row['nacimiento'].'<br />
<strong>Sexo: </strong>'.$row['sexo'].'<br />
<strong>País: </strong>'.$row['pais'].'<br />
<strong>Ciudad: </strong>'.$row['residencia'].'<br />
<strong>Provincia: </strong>'.$row['provincia'].'<br />
<strong>E-mail : </strong>'.$row['email'].'</strong><br />
<strong>Idiomas: </strong>'.$row['idioma'].'<br />
<strong>Web: </strong>'.$row['web'].'<br />
<strong>Investiga: </strong>'.$row['investiga'].'<br />
<strong>Argentina: </strong>'.$row['argentina'].'<br />
<strong>Rusia: </strong>'.$row['rusia'].'<br /><br />
<span style="font-size:14px;font-weight:bold;color:#B40404;">Su Link de Activación es:</span><br><a href="'.$activateLink.'">'.$activateLink.'</a><br /><br />
<span style="font-size:14px;font-weight:bold;color:#B40404;">Por favor, haga Click en el Link de arriba para activar su cuenta e ingresar al Listado.</span><br /><br />
<span style="font-size:14px;font-weight:bold;color:#B40404;">Si el Link no funciona al primer intento, hágalo una segunda vez, el Servidor a veces tarda en procesar la primera orden.</span><br /><br />
<span style="font-size:16px;font-style:italic;font-weight:bold;color:#045FB4;">Gracias por participar!!!</span><br /><br />
</div>
</td>
</tr>
</table>';
$formato = "html";
//*****************************************************************//
$headers = "From: $nombre_origen <$email_origen> \r\n";
$headers .= "Return-Path: <$email_origen> \r\n";
$headers .= "Reply-To: $email_origen \r\n";
//*****************************************************************//
if($formato == "html")
{ $headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n"; }
else {
$headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";
}
if (@mail($email_destino, $asunto, $mensaje, $headers))
{ }
}
}
} else {
formRegistro();
}
?>
</body>
</html>