PHP - Como lo hago??? fechas

   
Vista:

Como lo hago??? fechas

Publicado por LOla (1 intervención) el 14/10/2007 03:41:57
HOla amigos!

SOlicito su ayuda-... tengo un formulario publicado en la web que me dá las fechas en inglés, sé que se soluciona con el set locale, pero donde escribirlo????

Les envio el codigo de mi formulario, por si sirviera:

}else{
//Estoy recibiendo el formulario, compongo el cuerpo

$UN_SALTO="\r\n";
$DOS_SALTOS="\r\n\r\n";

$destinatario = "correo@hotelamer.com";
$titulo = $HTTP_POST_VARS["asunto"];
$responder = $HTTP_POST_VARS["email"];
$remite = $HTTP_POST_VARS["email"];
$remitente = $HTTP_POST_VARS["nombre"];

$cabecera = "Date: ".date('d').'-'.date('m').'-'.date('Y').$UN_SALTO;
$cabecera .= "MIME-Version: 1.0".$UN_SALTO;
$cabecera .= "From: ".$remitente."<".$remite.">".$UN_SALTO;
$cabecera .= "Return-path: ". $remite.$UN_SALTO;
$cabecera .= "Reply-To: ".$remite.$UN_SALTO;
$cabecera .= "X-Mailer: PHP/". phpversion().$UN_SALTO;

$cuerpo = "Formulario enviado\n";
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
$cuerpo .= "Telefono: " . $HTTP_POST_VARS["telefono"] . "\n";
$cuerpo .= "Ciudad: " . $HTTP_POST_VARS["ciudad"] . "\n";
$cuerpo .= "Provincia: " . $HTTP_POST_VARS["provincia"] . "\n";
$cuerpo .= "Pais: " . $HTTP_POST_VARS["pais"] . "\n";
$cuerpo .= "Asunto: " . $HTTP_POST_VARS["asunto"] . "\n";
$cuerpo .= "Mensaje: " . $HTTP_POST_VARS["mensaje"] . "\n";
$cuerpo .= "Personas: " . $HTTP_POST_VARS["personas"] . "\n";
$cuerpo .= "Habitaciones: " . $HTTP_POST_VARS["habitaciones"] . "\n";
$cuerpo .= "Ingreso Dia: " . $HTTP_POST_VARS["dia1"] . "\n";
$cuerpo .= "Ingreso Mes: " . $HTTP_POST_VARS["mes1"] . "\n";
$cuerpo .= "Ingreso Anio: " . $HTTP_POST_VARS["anio1"] . "\n";
$cuerpo .= "Egreso Dia: " . $HTTP_POST_VARS["dia2"] . "\n";
$cuerpo .= "Egreso Mes: " . $HTTP_POST_VARS["mes2"] . "\n";
$cuerpo .= "Egreso Anio: " . $HTTP_POST_VARS["anio2"] . "\n";

//mando el correo...
mail($destinatario, $titulo, $cuerpo, $cabecera);

//doy las gracias por el envío
echo "El formulario se ha enviado correctamente, le responderemos a la brevedad. Muchas gracias.";

}

Muchas gracias desde ya!

Lola
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como lo hago??? fechas

Publicado por Diego Romero (1450 intervenciones) el 14/10/2007 08:47:16
No entiendo la pregunta. En el código que has posteado donde se menciona una fecha, el formato está dado "a mano".
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como lo hago??? fechas

Publicado por Lola (6 intervenciones) el 14/10/2007 23:22:25
Hola! gracias por responder

Si, pero las fechas estan llegando en inglés... Incluso he intentado borrando la funcion date, para probar como ponía la fecha el servidor, y llega en inglés también, tipo "Friday 14 october, 2007".
Quisiera que llegue en español, por lo que supe debo colocar en el código lo siguiente:

<?php
set_locale(LC_ALL,"es_ES@euro","es_ES","esp");
echo strftime("%A %d de %B del %Y");
?>

Sabrías donde debo escribir este trozo de código¿?

Saludos, y gracias!

Lola
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como lo hago??? fechas

Publicado por Diego Romero (1450 intervenciones) el 15/10/2007 13:43:30
Lo lamento pero sigo sin entender. En el código que has posteado hay dos lugares donde aparecen fechas:

$cabecera = "Date: ".date('d').'-'.date('m').'-'.date('Y').$UN_SALTO;

y

$cuerpo .= "Ingreso Dia: " . $HTTP_POST_VARS["dia1"] . "\n";
$cuerpo .= "Ingreso Mes: " . $HTTP_POST_VARS["mes1"] . "\n";
$cuerpo .= "Ingreso Anio: " . $HTTP_POST_VARS["anio1"] . "\n";
$cuerpo .= "Egreso Dia: " . $HTTP_POST_VARS["dia2"] . "\n";
$cuerpo .= "Egreso Mes: " . $HTTP_POST_VARS["mes2"] . "\n";
$cuerpo .= "Egreso Anio: " . $HTTP_POST_VARS["anio2"] . "\n";

Y en ninguno de los dos casos da la impresión de que se obtenga el formato que comentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como lo hago??? fechas

Publicado por Lola (6 intervenciones) el 15/10/2007 22:41:04
Perdona Diego... paso a explicarte mejor:

La página a la que me refiero y la cual está dandome problemas en el formulario es de un Hotel. El trozo de código que señalas como:

$cuerpo .= "Ingreso Dia: " . $HTTP_POST_VARS["dia1"] . "\n";
$cuerpo .= "Ingreso Mes: " . $HTTP_POST_VARS["mes1"] . "\n";
$cuerpo .= "Ingreso Anio: " . $HTTP_POST_VARS["anio1"] . "\n";
$cuerpo .= "Egreso Dia: " . $HTTP_POST_VARS["dia2"] . "\n";
$cuerpo .= "Egreso Mes: " . $HTTP_POST_VARS["mes2"] . "\n";
$cuerpo .= "Egreso Anio: " . $HTTP_POST_VARS["anio2"] . "\n";

son solo campos a rellenar para que el nevagante de la página realice una reserva en línea, y corresponde al dia, mes y año de check in, y de check out. Esto está funcionando correctamente.

PERO...

Es la sección de la cabecera del formulario, donde se configura el date del mismo, es decir la fecha de envío del mensaje, he colocado la linea:

$cabecera = "Date: ".date('d').'-'.date('m').'-'.date('Y').$UN_SALTO;

Supuestamente con esta línea la fecha se vería como 15 - 10 - 2007 (ejemplo), pero por algun motivo, el servidor no lo está mostrando así. He intentado usar otras combinaciones de fechas , como ser:

("j, n, Y")
ó
("r")
ó
("dd-mm-yyyy")
ó
("yyyy-mm-dd")
ó
("F j, Y, g:i a")

Y por algún motivo tampoco ninguna de estas ha funcionado!!! ya que en muchos casos mostraban años como 2010, o siempre el mes de enero, en fin, errores siempre... Sé que es algo del servidor de esta página en particular, ya que he probado en otro servidor y funciona bien (está de más decir que una queja al servidor es inútil, tienen un 0800 que no atienden jamás).

Saco en conclusión entonces que algo en el servidor no acepta configuraciones de fechas en las cabeceras, asique he intentado borrando de cuajo esa linea del código (me refiero a $cabecera = "Date: ".date('d').'-'.date('m').'-'.date('Y').$UN_SALTO; y cualquiera de las demás configuraciones que probé antes ).

Asi es que ahora, las fechas llegan correctamente (ejemplo: Monday 15, Oct 2007) pero claro, en inglés... Es por esto que, navegando por internet, sé que esto se soluciona escribiendo en el código, EN ALGÚN LUGAR QUE DESCONOZCO, las lineas de set_locale, que son las siguientes:

<?php
set_locale(LC_ALL,"es_ES@euro","es_ES","esp");
echo strftime("%A %d de %B del %Y");
?>

Y mi consulta es esa: siendo que los correos ahora llegan con la fecha correcta pero en inglés, y que esto se soluciona cambiando los "locales", y que las lineas que hay que escribir son las de arriba, me pregunto, DONDE DEBO COLOCAR ESAS LINEAS? al principio del formulario, bajo el head, en donde?? porque he probado y no está funcionando....

Por eso he enviado el codigo completo del formulario, quizás va en alguna parte del formulario y yo no lo sé... Lamento no saber de programación!!

En fin Diego, espero me puedas ayudar... Y si no de todas maneras, muchas gracias por tu buena predisposición hacia mi consulta!!

Saludos!

Lola
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como lo hago??? fechas

Publicado por Diego Romero (1450 intervenciones) el 16/10/2007 09:54:19
Bueno, las líneas que comentas que no sabes dónde van pues van al principio del script, pero debo hacerte notar un detalle, set_locale(); afecta a date(); pero si no usas date() en ninguna parte no obtendrás nada :S.

La fecha que ves en la cabecera de correo luego de haber quitado la línea de código que dices que has quitado la pone el servidor SMTP y éste está fuera del alcance de PHP.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como lo hago??? fechas

Publicado por LOla (6 intervenciones) el 16/10/2007 19:50:05
Comprendo perfectamente... Entoncés deberé reponer la linea date, y ver que pasa... aunque honestamente no tengo mucha confianza en ese servidor! Como te comenté, he intentado poner solo cifras buscando evitar formatos en ingles (tipo 15-10-2007), y llega cualquier cosa... Muchas gracias Diego!!!!! si te interesa te comentaré los resultados..

Saludos!!!!

Lola
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar