Cita:
Iniciado por hhs si quieres saber donde esta el error comienza a hacer debug de tus variables y prueba diferentes casos.
Para conocer el valor de una variables puedes usar [URL="http://php.net/manual/es/function.var-dump.php"]var_dump[/URL]
Gracias por responder
hhs. Lo hice, pero no habia nada raro, solo cosillas de depuracion de codigo para quitar variables pero nada que explicase por que mi codigo fallaba de ese modo.
Cita:
Iniciado por 2AroN Creo que el problema viene de la variable de $lang veras segun lo que leei esque si esa variable tiene valor a 1 se imprime en español y se tiene valor 2 se imprime en ingles pero como tu if tiene 0...
veras re recomiendo que hagas esto si quieres manejar lenguajes en tu pagina
1. Crea un archivo especialmente para español osea: es_MX.php o es_US.php
2. Primero lo lees en el index
Código PHP:
//verificamos el idioma desde la BD
$sql_idioma = mysqli_query($con, 'SELECT idioma FROM config');
$res = mysqli_fetch_array($sql_idioma);
if(isset($res['idioma'])){
$idioma = $res['idioma'];
}else{
$idioma = "es_MX";
}
//Cargamos el idioma de la pagina.
include('./idioma/'.$idioma.'.php');
3. Luego en el archivo es_MX.php defines todo lo que quieras poner en ese idioma
Código PHP:
//php5
define('VALOR','A qui se va a imprimir lo que tengas');
//php 7 con array para no declarar tantos define
define('VALOR', array(
'valor 1',
'Valor 2'
));
4. en tu sistema solo imprimes
Código PHP:
//php 5
echo VALOR;
//php 7
echo VALOR[0];
A si evitaras tantos if con diferentes idiomas y solo cambias el idioma en el index
Gracias por responder
2AroN. Es buena la idea pero eso es por si se quiere cambiar de idioma una pagina web. A mi no me interesa eso. Mi objetivo es enviar un mensaje personalizado, con datos distintos dependiendo de la entrada dada.
Sin lugar a dudas, hacerlo todo en distintos php para hacerlo mas claro es lo correcto, pero en mi caso solo complica mas las cosas, sin contar con que no queria tocar el tema de base de datos. No tengo la necesidad de almacenar nada en ellos. De todas formas, muchas gracias por tomarte la molestia de darme tu punto de vista :)
Cita:
Iniciado por abrahamhs Código PHP:
function enviar_correo($destinatarios, $mail_asunto, $mail_contendio, $from, $from_name, $archivos_adjuntos_ruta,$archivos_adjuntos_temp){
$mail= new PHPMailer(); // defaults to using php "mail()"
$mail->CharSet = 'UTF-8';
$body= $mail_contendio;
$mail->IsSMTP(); // telling the protocol to use SMTP
$mail->Host = "tu.host.com"; // SMTP server
$mail->From = $from;
$mail->FromName = $from_name;
$mail->Subject = $mail_asunto;
$mail->MsgHTML($body);
$destinatarios=explode(",", $destinatarios);
if(!empty($destinatarios)){
foreach($destinatarios as $un_destinatario){
$mail->AddAddress($un_destinatario); //destinatarios
}
}else{
return false;
}
if(!empty($archivos_adjuntos_ruta)){
foreach($archivos_adjuntos_ruta as $archivo){
$mail->AddAttachment($archivo); // attachment
}
}
if(!empty($archivos_adjuntos_temp)){
foreach($archivos_adjuntos_temp as $nombrearchivo=>$contenidoArchivo){
$mail->AddStringAttachment($contenidoArchivo,$nombrear ch ivo,'base64');
}
}
$mail->Timeout = 20;
if($mail->Send()) {
return array(true);
}else {
return array(false,"Mailer Error: ".$mail->ErrorInfo);
}
}
Justo despues de postear mi problema, alguien posteo un problema parecido al mio y me puse a leer y parece ser que la funcion mail() da problemas si no se tiene definido un servidor SMTP (yo no lo tengo definido) y dan una alternativa a mail() y es justamente la que tu has posteado, es decir, PHPMailer, asi que no me quedara otra que intentarlo. Muchas gracias