Página 1 de 1

Formulario web

Publicado: 16 Jun 2011, 09:17
por norpat
Hola. Primero decir que desde hace unos dias encuentro medio raro el foro. La alineación a la derecha, el link de "ver temas activos" no muestra ningún tema, no se si me pasa a mi nomás.
Va la consulta. Tengo un formulario web con php. Funciona todo perfecto, pero al recibir esos mails en la casilla las palabras que tienen tilde se ven de esta manera:
cuando nos envía el mail toma la dirección Por dónde le meto mano ?

Re: Formulario web

Publicado: 16 Jun 2011, 22:28
por pac-man
Averigua sobre los <meta http-equiv="Content-Type"

Saludos!

Re: Formulario web

Publicado: 16 Jun 2011, 23:17
por Usuario bien anónimo
norpat escribió:Hola. Primero decir que desde hace unos dias encuentro medio raro el foro. La alineación a la derecha, el link de "ver temas activos" no muestra ningún tema, no se si me pasa a mi nomás.
Usás Opera? Qué versión? A mí me pasa sólo en Opera.

Re: Formulario web

Publicado: 17 Jun 2011, 08:14
por norpat
Acá en la oficina tengo IE8. Lo raro es que antes lo veía bien.
Gracias Pac-man, voy a esperar a ElQuique por las dudas a ver que dice.

Re: Formulario web

Publicado: 17 Jun 2011, 08:58
por Alejandro
Es un tema de codificación de caracteres, como comenta pac-man.

:arrow: Fijate si este ejemplo en código que comentan por acá te sirve.
:arrow: O este otro (mirá quién le responde) :lol:

Sobre la opción "ver temas activos", lo voy a chequear... hace unos día estuve actualizando el foro y el theme, agregué algunos cambios como la caja de "Respuesta Rápida" que aparece abajo (mejor que la de antes), mejor captcha en el registro para evitar los bots spam que me estaban atomizando, etc.

Así que seguro es por eso, voy a revisar. Uso Chrome y tampoco me aparece nada en esa opción. Si notan algún otro error agradezco el aviso.

Re: Formulario web

Publicado: 17 Jun 2011, 09:18
por norpat
Ale, probé con Firefox en otra pc y la alineación se ve ok. Debe ser el IE8 muy cargado de cenizas volvánicas.
Muy buenos los datos que me pasaste, en un rato voy a probar tocar por ese lado.
Los temas activos no aparecen.

Re: Formulario web

Publicado: 17 Jun 2011, 21:06
por norpat
Gracias Ale por el link que me pasaste. Para que quede escrito cómo lo solucioné, fué cambiando una línea en el código por esta otra:
charset=iso-8859-1\Content-Transfer-Encoding: 8bit");

También le agrequé, para que al recibir el correo-e me indique la fecha y la hora en que fué enviado el formulario. Funciona bien. Me hubiese gustado que me diga la dirección IP de quien escribió. Para eso pongo esta línea de código en el php:
$contenido .= "Usuario IP : ".$_SERVER["REMOTE_ADDR"]."\r\n";
Pero me devuelve la IP del servidor donde está alojada la página. Alguna idea ?

Estoy en la pc de casa, en IE8 se ve el foro alineado a la derecha y con Firefox se ve bien. Qué problema el IE ! cómo hace perder tiempo no ?

Envío cenizas a domicilio si alguien quiere.

Re: Formulario web

Publicado: 17 Jun 2011, 21:47
por Alejandro
Gracias por comentar la solución de los caracteres.

Sobre la IP del formulario, creo que sería así.

En el PHP pone esto:

$ip = REMOTE_ADDR;

Y luego en el HTML llamas a esa variable, por ejemplo:

IP persona: $ip

p/d: sobre la alineación, ya quedó arreglado. Al menos ahora en Opera lo veo bien y desde IE8 en un XP también. Si sigue mal, avisame por favor.

Actualizo: ya quedó arreglado lo de Temas activos :grindance:

Re: Formulario web

Publicado: 18 Jun 2011, 10:32
por norpat
Gracias Alejandro. Voy a probar.

pd: Ahora se ve bien la alineación. No está funcionando el link de "temas activos". En realidad funciona, pero no muestra ningún tema activo.

Re: Formulario web

Publicado: 18 Jun 2011, 18:30
por elQuique
El tema de los caracteres raros se da cuando los archivos fuentes PHP vs el HTML (generado o estatico) mostrado en el navegador vs la codificación de la base de datos está diferente o peor aun no tiene nada especificado.

a) En Entornos de Desarrollo como Eclipse o Aptana Studio o NetBeans al crear el proyecto te deja indicar en que codificación estan los archivos fuente PHP, o si era algo pre exitente puedes cambiarle la codificación.

Lo mismo se puede en otros editores como NotePad++.

b) En cuanto a la presentación del HTML debes indicarle

Código: Seleccionar todo

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
, donde UTF-8 es la codificación y obviamente puede ser otra como la iso-8859-1.

c) En cuanto a la base de datos al instalar el server, o al crear la base y o al crear las tablas especificas la codificación.

Obviamente las tres cosas a) b) c) deben tener la misma codificación, en cuanto a esto en el Etandar de Zend (creadores de PHP), indican que se debe usar utf-8 y esa deberia ser la elegida de todos hoy día. Igualmente muchas librerias o CMS ya vienen con otra como la iso-8859-1 que también es de la más usada.

Con respecto a la IP del visitante ya te dijeron se obtiene del Array $_SERVER especificando REMOTE_ADDR o sea:

Código: Seleccionar todo

$_SERVER["REMOTE_ADDR"]
y tienes más parámetros interesantes acá: $_SERVER

Re: Formulario web

Publicado: 21 Jun 2011, 09:48
por norpat
Muchas gracias Jorge.
Muy completo lo tuyo, como siempre. Ya había leido el post que me pasó Alejandro en el que vos respondías (juro que había buscado pero no lo había visto)

Para Alejandro, el foro está funcionando muy bien ahora (incluyendo el link "temas activos")

Saludos

Re: Formulario web

Publicado: 07 Jul 2011, 16:03
por Alejandro
Hoy lo tuve que hacer en un formulario, el código sería así, por si a alguno no le sale:

$ip = $_SERVER['REMOTE_ADDR'];

Y en el mensaje que llega se llama la variable, por ejemplo:

IP: ".$ip."

Por cierto, si miran arriba de todo podrán ver su IP :cop9:

Re: Formulario web

Publicado: 07 Jul 2011, 16:27
por norpat
Ajá. Voy a seguir probando. Vos almacenás las IP que te visitan ?
Yo agradecí la buena voluntad tuya y de Jorge, pero no seguí insistiendo porque hay temas que exceden mi conocimiento y debería ponerme a estudiar primero. Pero entiendo que para hacer lo que yo pretendía debo crear una base de datos que me almacene las ip, para que luego me las envíe junto con el formulario. Si yo pongo ese código en la página que contiene el formulario, sencillamente me llega el mail con la ip del servidor donde está alojada la página (todas las ip iguales...). Tengo que hacerme tiempo para ponerme a estudiar...

Re: Formulario web

Publicado: 07 Jul 2011, 18:28
por Alejandro
No necesitas la base de datos, el último código que puse te muestra la IP del que envía el formulario. Si quieres pega el código del formulario para ver cómo es.

Re: Formulario web

Publicado: 07 Jul 2011, 20:26
por elQuique
Si tomamos de ejemplo el tutorial de enviar formulario de contacto con PHP que hice algún tiempo atrás (cuando era joven) te indico donde agregar para que llegue la IP al email:

Código: Seleccionar todo

$nombre = $_POST['nombre'];
$mail = $_POST['mail'];
$empresa = $_POST['empresa'];

$header = 'From: ' . $mail . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "Este mensaje fue enviado por " . $nombre . ", de la empresa " . $empresa . " \r\n";
$mensaje .= "Su e-mail es: " . $mail . " \r\n";
$mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());

// Acá le agregas al mensaje la IP
$mensaje .= "IP: " . $_SERVER['REMOTE_ADDR'];

$para = 'info@tusitio.com';
$asunto = 'Contacto desde Taller Webmaster';

mail($para, $asunto, utf8_decode($mensaje), $header);
o sea la línea

Código: Seleccionar todo

$mensaje .= "IP: " . $_SERVER['REMOTE_ADDR'];
que con .= agregas al mensaje cargado en la variable $mensaje justamente un comentario IP: y la variable citada $_SERVER['REMOTE_ADDR'] que contiene la IP remota o sea del usuario que ejecuto el script o sea el que envió el formulario de contacto.

Ahí en el tutorial tienes para armar el formulario en HTML o Flash también por si necesitas.

Re: Formulario web

Publicado: 14 Jul 2011, 11:14
por norpat
Les pido perdón por no haber contestado antes, pero no he tenido tiempo aún de sentarme a probar lo que me ha explicado Jorge, que por cierto es muuuuy claro. Les voy agradeciendo de antemano y seguramente el pxo fin de semana me haré un tiempito para probarlo y les cuento luego cómo me fué.
Muchas gracias a ambos ! Jorge: viejos son los trapos (dice el dicho). Si vos estás viejo qué queda para mi ? (47 !)