Foros del Web » Programando para Internet » PHP »

Este php funciona en un servidor pero no en otro

Estas en el tema de Este php funciona en un servidor pero no en otro en el foro de PHP en Foros del Web. Hola. Tengo un formulario php en una página y funciona a las mil maravillas. La gente introduce sus datos y el formulario me los manda ...

  #1 (permalink)  
Antiguo 07/08/2004, 14:00
 
Fecha de Ingreso: noviembre-2003
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
Este php funciona en un servidor pero no en otro

Hola. Tengo un formulario php en una página y funciona a las mil maravillas. La gente introduce sus datos y el formulario me los manda a mi correo.

Ahora estoy haciendo otra página y naturalmente tomé como base el mismo formulario. Sólo hice algunos cambios como en la dirección de correo, pero ahora no funciona bien. El formulario manda el correo, pero llega sin los datos de la gente. Sòlo llegan los campos que yo diseñè peo vacios. Incluso llega sin remitente, en lugar de eso llega una leyenda que dice "guardar direcciones".

No sé a que se deba, pero evidentemente no es el formulario.

A continuación les pongo el código por si gustan echar un vistazo.

Atte Rogelio


ESTE ES EL ARCHIVO HTML


<html>
<head>
<title>Solicitud de adopción</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<div align="center"><center>
</center></div>
</head>
<body background="imagenes/fondotira.gif">
<form method="post" action="formu.php"><div align="center"><p><font size="-1">
<input type=hidden name=to value="[email protected]">
<input type=hidden name=subject value="** Formulario de Adopcion **">
<center><h2><font face="Verdana">SOLICITUD DE ADOPCION</font></h2></center>
<div align="center"><center>
<table border="0" width="70%">
<tr>
<td align="center" width="11%">Nombre:</td>
<td align="center" width="39%"><input type="text" size="20" name="nombre"></td>
<td align="center" width="11%">Teléfono:</td>
<td align="center" width="39%"><input type="text" size="20" name="telefono"></td>
</tr>
<tr>
<td align="center" width="11%">E-mail:</td>
<td align="center" width="39%"><input type="text" size="20" name="email"></td>
<td align="center" width="11%">Ciudad:</td>
<td align="center" width="39%"><input type="text" size="20" name="ciudad"></td>
</tr>
<tr>
<td align="center" width="11%">&nbsp;</td>
<td align="center" width="11%">&nbsp;</td>
<td align="center" width="39%">Me interesa adoptar a:</td>
<td align="center" width="39%"><input type="text" size="20" name="interesa"></td>
</tr>
</table>
<table border="0" width="70%">
<tr>
<td align="center">Comentarios: <textarea name="comentarios" rows="3" cols="65"></textarea></td>
</tr>
<tr>
<td align="center">Son muchos los animales que se encuentran en espera de un hogar y de no encontrarlo,
<br>su destino es vivir el resto de sus días en un albergue.</td>
</tr>
</table>
</center></div>
<p>
<input name="El mensaje fue enviado" type="submit" id="El mensaje fue enviado" value="Enviar">
<input type="reset" name="Submit2" value="Limpiar"></p>
</form>
</body>
</html>



------------ ESTE ES EL ARCHIVO PHP -----------------------



<html>
<head>
<title>Gracias por enviar su solicitud</title
><div align="center"><center>
</center></div>
</head>
<body background="fondotira.gif">
<br>
<p>
<?
$hora=date("H:i jS F");
$recipient='[email protected]';
$subject='Adopción';
$message = " Datos del Interesado:<p> Nombre: $nombre\n Teléfono: $telefono\n E-mail: $email\n
Ciudad: $ciudad\n Me interesa adoptar a: $interesa\n Comentarios: $comentarios\n
Fecha y Hora : $hora ";
$headers .= "From: ".$email."
<".$email.">\r\n"; mail($recipient,$subject,$message,$headers);
?>

<? echo("<left><br>La Solicitud fue realizada a las: "); echo date("H:i "); ?>
<p Align="left"><b><font size=4">Gracias por su interés.</b></font></p>
<p Align="left"><font size="4"><b>Su solicitud será respondida en breve.
</b></font></p>
<p Align="left"><a href="index.html"><font size="3">Regreso a la Página Principal.</font></a>
</div></p>
</body>
</html>
  #2 (permalink)  
Antiguo 07/08/2004, 14:12
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 19 años, 11 meses
Puntos: 2
Eso es porque tu nuevo servidor tiene el register_globals a off. Ahora para recoger los datos de tu formulario no puedes acceder directamente al nombre de la variable sino que lo tienes que sacar del array $_POST. Por ejemplo

$message = " Datos del Interesado:<p> Nombre: ".$_POST['nombre']."\n Teléfono: ".$_POST[$telefono']."\n E-mail: ".$_POST['$email']."\n
Ciudad: ".$_POST['$ciudad']."\n Me interesa adoptar a: ".$_POST['$interesa']."\n Comentarios: ".$_POST['$comentarios']."\n
Fecha y Hora : ".$_POST['$hora'];
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #3 (permalink)  
Antiguo 07/08/2004, 14:26
 
Fecha de Ingreso: noviembre-2003
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
Gracias por responder. Ya lo sustituì, pero ahora no lo manda. Estoy en el htm, lleno el formulario y cuando le doy click para enviarlo, cambia a una página en blanco y no a la página php que se supone deberìa gestionar el formulario. Ademàs chequé el correo y no llegó nada.
  #4 (permalink)  
Antiguo 07/08/2004, 14:34
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 19 años, 11 meses
Puntos: 2
es culpa mia, se me ha olvidado quitar los $. Pon este código

$message = " Datos del Interesado:<p> Nombre: ".$_POST['nombre']."\n Teléfono: ".$_POST['telefono']."\n E-mail: ".$_POST['email']."\n
Ciudad: ".$_POST['ciudad']."\n Me interesa adoptar a: ".$_POST['interesa']."\n Comentarios: ".$_POST['comentarios']."\n
Fecha y Hora : ".$_POST['hora'];
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #5 (permalink)  
Antiguo 07/08/2004, 15:12
 
Fecha de Ingreso: noviembre-2003
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
No tengo palabras para agradecerte las molestias que te tomas al auxiliarme, ya puse las nuevas indicaciones que me diste y funciona a la perfección, pero me atrevo a abusar porque aún falta por rsolver algo: ya me llega el correo con los datos, excepto porque no me llega el remitente.

Esto es lo que me llega:

Desde: Guardar dirección
Para: <[email protected]>
CC:
Fecha: Sat, 07 Aug 2004 16:08:31 -0600
Asunto: Adopción
Datos del Interesado:<p> Nombre: allan
Teléfono: 45465654
E-mail: [email protected]

Ciudad:
Me interesa adoptar a:
Comentarios: fjfjcjkv



Si te fijas, la dirección de correo me llega porque yo la solicito, pero en donde dice "desde:" me llega guardar direcciòn.

A mi me interesa que llegue el remitente porque ese correo tiene autorespuesta.

Atte

Rogelio
  #6 (permalink)  
Antiguo 07/08/2004, 15:19
 
Fecha de Ingreso: noviembre-2003
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
Quizás te cause gracia pero ante mi limitada capacidad técnica traté de armar mi propio autentificador. Yo sé que para que funcione bien se necesita mysql, pero como no sé hacerlo, se me ocurrió poner un formulario que mande los datos de la persona a mi mail. Lo importante es tener su correo, porque así la autorespuesta le manda un password que previamente programé en la autorespuesta.

Sé que no es buena idea, pero sólo lo hago para tener una pequeña área de solo miembros en mi sitio.

Atte

Rogelio
  #7 (permalink)  
Antiguo 07/08/2004, 15:21
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 19 años, 11 meses
Puntos: 2
Es que tienes que cambiar
$headers .= "From: ".$email."<".$email.">\r\n";

por

$headers = "From: ".$_POST['email']."<".$_POST['email'].">\r\n";

A ver si ahora funciona
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #8 (permalink)  
Antiguo 07/08/2004, 15:28
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 19 años, 11 meses
Puntos: 2
Lo que quieres hacer no te va a costar tanto en mysql y vas a tener muchísimas ventajas. Te animo a que lo intentes, aquí todos te vamos a echar una mano seguro
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #9 (permalink)  
Antiguo 07/08/2004, 15:47
 
Fecha de Ingreso: noviembre-2003
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
Bueno, pues muchas gracias. Funciona totalmente. Ya llega el remitente. Ahora sólo me gustaría saber si hay alguna forma de determinar cual de las dos formas debo usar en cada servidor.

El formulario que te mandè funciona bien en el primer servidor, por lo que me imagino que quizás este nuevo formulario que me diste no funcione en aquél servidor.

Por último, aunque ya me llega el correo, no manda la autorespuesta. Sabrás por qué?
La autorespuesta si funciona, pero no cuando el correo es enviado por el formulario.

Atte

Rogelio
  #10 (permalink)  
Antiguo 07/08/2004, 15:51
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Cita:
Iniciado por pete_sahut
El formulario que te mandè funciona bien en el primer servidor, por lo que me imagino que quizás este nuevo formulario que me diste no funcione en aquél servidor.
Te equivocas. Utilizando arrays superglobales como $_POST, te aseguras que tu script funcione con el estado de la directiva register globals en ON o en OFF.
En cambio como lo tenías antes sólo funcionará si está en ON.

Por eso es altamente recomendable utilizar los superglobales (como te puso living). No vas a tener problemas sea cual sea el estado de esa directiva.

Saludos
  #11 (permalink)  
Antiguo 07/08/2004, 15:55
 
Fecha de Ingreso: noviembre-2003
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
Oye, a ver, dime una cosa por favor:

Yo no sabía nada de html así que cuando encontré este foro me sentí muy emocionado, y aquí empecé poco a poco a aprender. El problema es que hay cosas que nadie dice, por ejemplo, ya me habían explicado todo sobre php, pero nadie me había dicho que para hacer una página php lo único que tienes que hacer es guardar tu bloc de notas con .php

Ahora me enfrento a algo similar. Quiero saber que necesito para poder hacer una base de datos en Mysql, que al parecer es lo que requiero para la utentificación.

Por ahì leí que necesito tener php y Mysql en mi máquina. Instalé mysql, pero al parecer lo hice mal porque cada que trato de seguir los ejemplos me niega el acceso.

Dicen que cuando reinicie mi máquina me tenía que pedir user y password, pero no lo hizo, así que estoy atorado.

resumiendo: que necesito para empezar a hacer la base de datos?

Atte

Rogelio
  #12 (permalink)  
Antiguo 07/08/2004, 15:55
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Pero si quieres saber un poco más, te diré que no es sólo por un tema de compatibilidad, sino sobretodo de seguridad. Tus scripts serán bastante más seguros teniendo el register globals en OFF y utilizando superglobales (como $_POST).
Cluster lo explica bastante bien en este post de las FAQ's:
http://www.forosdelweb.com/showthrea...989#post238989

Saludos
  #13 (permalink)  
Antiguo 07/08/2004, 16:02
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Algunas cosas que habría que tener en cuenta para escribir mensajes en el foro. Por cuestiones de orden sobretodo:
Abriste este tema preguntando por cierto problema de compatibilidad de tus scripts entre dos servidores configurados de distinta manera. Si tienes otra pregunta al respecto, hazla aquí mismo. Pero si ya quieres cambiar de tema y preguntar por autentificación o instalación sería bueno que abrieras un tema nuevo.

Y antes de escribir un tema nuevo sería bueno que utilices el buscador del foro., porque hay muchísimos posts que tratan de autentificación y muchos otros que tratan de problemas de instalación del php/mysql. Si entre los posts anteriores encuentras uno que trata de tu problema pero aún tienes dudas, preguntas en ese mismo tema, de esa forma se enriquece. Si no encuentras nada... recién abres un tema nuevo.

Saludos
  #14 (permalink)  
Antiguo 07/08/2004, 16:06
 
Fecha de Ingreso: noviembre-2003
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
ok, pero en cuanto al problema de que los correos que llegan a mi mail mediante el formulario no son autorespondidos. A que sección corresponde?

Atte

Rogelio
  #15 (permalink)  
Antiguo 07/08/2004, 16:13
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
No es para tomarlo tan "al pie de la letra". En realidad son pocos los que lo hacen, pero sí hay que tenerlo en cuenta porque el número de usuarios del foro crece día a día y la idea es no llenarnos de posts "repetidos".

Sobre lo de la instalación de Mysql ya lo habías puesto aquí:
http://www.forosdelweb.com/f18/puedo-tener-mysql-windows-para-probar-220734/
Puedes insistir ahí mismo al respecto.

Este post trata sobre tu problema con el mail. Trata aquí todo lo que tenga que ver con eso, que como ya se vio, era el estado de las directivas register globals.

Y, por lo demás, espero que no me tomes por malhumorado ni nada parecido. Simplemente pido que tratemos de ordenar un poquito el foro.

saludos
  #16 (permalink)  
Antiguo 07/08/2004, 16:21
 
Fecha de Ingreso: noviembre-2003
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
Bueno, gracias por todo. Mi problema quedó resuelto al 100%. Ahora sólo resta ver si se puede lo del auto responder.

Atte

Rogelio
  #17 (permalink)  
Antiguo 07/08/2004, 16:33
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Lo de auto-respuesta no lo entiendo bien. Si tu servicio de mail te permite configurar una auto-respuesta, hazlo.
Pero también puedes hacer lo mismo desde php.
O sea, en el script donde se te envía el mail, agregas una línea donde también se le envíe el mail al usuario con el mensaje que quieras.
saludos
  #18 (permalink)  
Antiguo 07/08/2004, 16:40
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Código PHP:
$hora=date("H:i jS F");
$recipient='[email protected]';
$subject='Adopción';
$message " Datos del Interesado:<p> Nombre: "$_POST['nombre']."\n Teléfono: ".$_POST['telefono']."\n E-mail:"$_POST['email']."\n
Ciudad: "
.$_POST['ciudad']."\n Me interesa adoptar a: ".$_POST['interesa']."\n Comentarios: ".$_POST['comentarios']."\n
Fecha y Hora : $hora "
;
$headers .= "From: ".$_POST['email']."
<"
.$_POST['email'].">\r\n";
if(
mail($recipient,$subject,$message,$headers)){//si se te envió el mail
   
$mensaje_usuario "El mensaje que quieras enviarle al usuario a su email";
   
mail($_POST['email'],"Gracias por adoptar",$mensaje_usuario);
};
?> 
Saludos
  #19 (permalink)  
Antiguo 07/08/2004, 16:43
 
Fecha de Ingreso: noviembre-2003
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
Ah caray, eso me interesa, Cómo se hace? Lo que quiero es simular una autenticación de usuarios. Entonces tengo un html que pide password. Obviamente ese password está introducido en el código de ese html para que funcione el password.

Para darle mayor "profesionalidad" a mi simulación, se me ocurrió que yo no tenga que darle personalmente el password a quien me interese que entre, sino que, como en los verdaderos autenticadores, el password les sea enviado a su correo.

Para hacer esto, necesito el formulario php para obtener su cuenta de correo, y programo el autoresponder para que les envìe el password que està en el código del html protegido. Así pues, el efecto que obtengo es que ellos me dan sus datos y los envían, y el autoresponder les manda el password.

El único problema en esta impecable pero primitiva lógica es que el autoresponder no funciona con el formulario. Pero si entendí bien, dices que puedo hacer que el mismo formulario se autoconteste al correo que me da la gente y les envíe el password?

Atte

Rogelio
  #20 (permalink)  
Antiguo 07/08/2004, 16:57
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Ya te puse arriba un ejemplo... sólo tendrás que acomodarlo a tus necesidades.

Saludos
  #21 (permalink)  
Antiguo 07/08/2004, 19:42
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 19 años, 11 meses
Puntos: 2
¿Como haces la autorespuesta?. En que consiste?, es que no me ha quedado muy claro.
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #22 (permalink)  
Antiguo 08/08/2004, 12:27
 
Fecha de Ingreso: noviembre-2003
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
Ahora el problema es que con el código que me diste no lo manda. No sé porqué. Cuando mando los datos desde el html, me pasa a la pàgina de php, pero aparece en blanco, siendo que debería procesar los datos y regresar mensaje de gracias por hacer la solicitud, etc.

te pongo el código completo por si quieres verlo:

<html>
<head>
<title>Gracias por enviar su solicitud</title
><div align="center"><center>
</center></div>
</head>
<body background="fondotira.gif">
<br>
<p>
<?
$hora=date("H:i jS F");
$recipient='[email protected]';
$subject='Adopción';
$message = " Datos del Interesado:<p> Nombre: ".$_POST['nombre']."\n Teléfono: ".$_POST['telefono']."\n E-mail:". $_POST['email']."\n
Ciudad: ".$_POST['ciudad']."\n Me interesa adoptar a: ".$_POST['interesa']."\n Comentarios: ".$_POST['comentarios']."\n
Fecha y Hora : ".$_POST['hora'];
$headers = "From: ".$_POST['email']."
<".$_POST['email'].">\r\n";
if(mail($recipient,$subject,$message,$headers)){si se te envió el mail
$mensaje_usuario = "El mensaje que quieras enviarle al usuario a su email";
mail($_POST['email'],"Gracias por adoptar",$mensaje_usuario);
};
?>


<? echo("<left><br>La Solicitud fue realizada a las: "); echo date("H:i "); ?>
<p Align="left"><b><font size=4">Gracias por su interés.</b></font></p>
<p Align="left"><font size="4"><b>Su solicitud será respondida en breve.
</b></font></p>
<p Align="left"><a href="index.html"><font size="3">Regreso a la Página Principal.</font></a>
</div></p>
</body>
</html>
  #23 (permalink)  
Antiguo 08/08/2004, 17:29
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Ese es un ¿problema? también conocido. Sería bueno que indicaras también si te da algún mensaje de error.
Yo supongo que te dará uno que te dice que la cabeceras ya fueron enviadas, etc...

Lo que pasa es que para poder utilizar funciones que envíen cabeceras como header(), setcookie() o mail() no debe haber ninguna salida previa al navegador... y tú envías al navegador todo ese HTML previo al mail().

Si no te da ningún mensaje de error, puedes "forzar" al php a mostrarlos poniendo esta línea al comienzo de tu script:
Código PHP:
error_reporting(E_ALL); 
Así podrás ver cualquier mensaje de error. Es de mucha ayuda en la etapa de programación.

En varios posts se ha hablado del tema por el que no funciona tu script. Si utilizas el buscador verás más comentarios al respecto.
También te darás cuenta, cuando consigas que funcione, que si actualizas la página después de enviar el mail, se volverá a enviar... o sea que si algún usuario malintencionado o juguetón se pone a actualizar indefinidas veces la página... te llenará el buzón de email en pocos minutos.
Lo mejor es hacer una programación lo más "limpia y eficiente" posible.
Una de las recomendaciones está en no "escribir" nada (HTML, "echo", etc) en un script que realice un proceso determinado.
Hay que tratar en la medida de lo posible de separar los procesos de la presentación.

Una posible solución (un poco "arcaica", pero limpia y eficiente) es tener en una página el form, en otro el proceso de enviar mails y que al final se haga una redirección hacia una página con el mensaje "Gracias por enviar..."

Tu script podría quedar así:
Código PHP:
<?php
error_reporting
(E_ALL);
$hora=date("H:i jS F");
$recipient='[email protected]';
$subject='Adopción';
$message " Datos del Interesado:<p> Nombre: ".$_POST['nombre']."\n Teléfono: ".$_POST['telefono']."\n E-mail:"$_POST['email']."\n
Ciudad: "
.$_POST['ciudad']."\n Me interesa adoptar a: ".$_POST['interesa']."\n Comentarios: ".$_POST['comentarios']."\n
Fecha y Hora : "
.$_POST['hora'];
$headers "From: ".$_POST['email']."
<"
.$_POST['email'].">\r\n";
if(
mail($recipient,$subject,$message,$headers)){
$mensaje_usuario "El mensaje que quieras enviarle al usuario a su email";
mail($_POST['email'],"Gracias por adoptar",$mensaje_usuario);
};
header("location: gracias.php");
?>
Y deberás tener otro script (página) llamado "gracias.php" que tendrá todo el HTML que quieras
Código PHP:
<html>
<head>
<title>Gracias por enviar su solicitud</title
><div align="center"><center>
</center></div>
</head>
<body background="fondotira.gif">
<br>
<left><br>La Solicitud fue realizada a las: <?php echo date("H:i ");?>
<p Align="left"><b><font size=4">Gracias por su interés.</b></font></p>
<p Align="left"><font size="4"><b>Su solicitud será respondida en breve.
</b></font></p>
<p Align="left"><a href="index.html"><font size="3">Regreso a la Página Principal.</font></a>
</div></p>
</body>
</html>
De esa forma supongo que funcionará correctamente. No tendrás problemas con las cabeceras ni con el botón "refresh" (actualizar).

Prueba así... y postea si hay algún error.
Luego verás que se pueden "agrupar" algunos scripts en uno sólo controlando el flujo con un "if" y alguna variable pasada por url o por formulario. Pero la idea básica es la que te puse.

saludos

Última edición por jpinedo; 08/08/2004 a las 17:35
  #24 (permalink)  
Antiguo 08/08/2004, 19:37
 
Fecha de Ingreso: noviembre-2003
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
Muchas gracias, eres muy amable. Ya probé tus soluciones y te tengo los siguientes resultados: Según lo que te entendí, dejé el formulario en un html, ese html manda el formulario a un nuevo.php (ese php tiene el código que tu me diste) y según creo, ese php manda a otro php(gracias.php) para dar las gracias. Lo hice así y el formulario llega perfecto a mi cuenta, y un mail es generado con un mensaje que yo quiero al correo de la persona que llenó el formulario.

En cuanto a esto, todo está perfecto. Realmente estoy contento con el resultado, pero me gustarìa que supieras algo. Después de mandar el formulario, se despliega la página php (la primera nuevo.php) pero totalmente en blanco, es decir, no redirige a
gracias.php

Por otro lado, pero eso si no sé si esté en tus manos, es que el correo que devuelve el php tiene como remitente este: [email protected], y no sé tu que opines, pero si me llega ese remitente con un subject "password", inmdeiatamente pienso que es spam o hasta un virus. En este sentido, me gustaría saber si es posible que el remitente sea mi correo.

Atte

Rogelio

p.d. te agradezco infinitamente el tiempo que dedicas a ayudarme.
  #25 (permalink)  
Antiguo 08/08/2004, 19:59
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 19 años, 11 meses
Puntos: 2
Este sería el código que tendrías que poner para que tu correo saliese como el remitente:

if(mail($recipient,$subject,$message,$headers)){
$mensaje_usuario = "El mensaje que quieras enviarle al usuario a su email";
$headers = "From: ".$recipient."<".$recipient.">\r\n";
mail($_POST['email'],"Gracias por adoptar",$mensaje_usuario,$headers);
};

Tal vez la página te esté dando un error y se queda en blanco. Lo curioso es que te llega el email y después de eso solamente está el location...no sé donde puede fallar.
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #26 (permalink)  
Antiguo 08/08/2004, 20:29
 
Fecha de Ingreso: noviembre-2003
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
Gracias por contestar, ya me da pena con ustedes de lo latoso que soy. Ya probé el còdigo que me diste pero no resultó. me sigue llegando el correo con ese remitente.

pero como quiera que sea, con este post aprendí mucho. El único detalle sería el remitente, pero realmente tengo más de lo que quería. Si acaso pudieran darme otra idea para intentarlo, les estaría aún más agradecido.

Atte

Rogelio
  #27 (permalink)  
Antiguo 08/08/2004, 21:05
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Per dime:
Y el mail que te llega a tu correo con los datos del usuario sí te llega con su dirección??

Saludos
  #28 (permalink)  
Antiguo 08/08/2004, 21:09
 
Fecha de Ingreso: noviembre-2003
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
Algo nuevo: me puse a buscar en los foros sobre el redireccionamiento, y básicamente encontré lo mismo, palabras más, palabras menos. Intenté algunas cosas, como poner un exit; después del header y nada. Entre las cosas que estuve haciendo, es ver el còdigo en el navegador y me manda esto:


<html>
<head>
<title>Gracias por enviar su solicitud</title>
<div align="center"><center>
<body>

Si te das cuenta, no se ve el código completo. Sé que el código php que se ve cuando estás programando es diferente del que se ve cuando estás navegando, pero también sé que debería verse por lo menos el </html> no es cierto?

Les mando otra vez todo el código php:

<html>
<head>
<title>Gracias por enviar su solicitud</title>
<div align="center"><center>
<body>
<?php
error_reporting(E_ALL);
$hora=date("H:i jS F");
$recipient='[email protected]';
$subject='Adopción';
$message = " Datos del Interesado:<p> Nombre: ".$_POST['nombre']."\n Teléfono: ".$_POST['telefono']."\n E-mail:". $_POST['email']."\n
Ciudad: ".$_POST['ciudad']."\n Me interesa adoptar a: ".$_POST['interesa']."\n Comentarios: ".$_POST['comentarios']."\n
Fecha y Hora : ".$_POST['hora'];
$headers = "From: ".$_POST['email']."
<".$_POST['email'].">\r\n";
if(mail($recipient,$subject,$message,$headers)){
$mensaje_usuario = "El mensaje que quieras enviarle al usuario a su email";
$headers = "From: ".$recipient."<".$recipient.">\r\n";
mail($_POST['email'],"Gracias por adoptar",$mensaje_usuario);
};
header("Location:http://www.rogeliohuerta.com/gracias.php");
exit;
?>
</body>
</html>



Nota: en header puse la url completa para probar, pero tampoco funcionó. Estoy convencido de que el error está en porque no aparce el còdigo completo.

Atte

Rogelio
  #29 (permalink)  
Antiguo 08/08/2004, 21:19
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
No entendiste
en este script
no debe haber NADA de HTML. Ponte a pensar.. ¿Para qué quieres mostrar algo aquí si todos esos mensajes los vas a mostrar en la página siguiente (gracias.php)?

Eso es justamente de lo que estaba hablando antes. Aquí.. sólo PHP, nada más. El html en las otras páginas.

como te dije el header() no va a funcionar si tienes HTML antes.

Intentalo quitando todo el html y poniendo sólo lo que está entre las etiquetas <?php ?>... ten en cuenta de no dejar ni siquiera una línea o espacio en blanco antes del "<?php" porque será interpretado como salida y tampoco funcionará.

Saludos
  #30 (permalink)  
Antiguo 08/08/2004, 21:22
 
Fecha de Ingreso: noviembre-2003
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
A ver: El formulario llega perfecto a mi mail. Con todos los datos.
Por otro lado, al correo del que manda el formulario le llega el mensaje de respuesta programado en el php. El unico problema es que el remitente de ese correo es me@localhost, y a mi me gustaría que fuera mi correo quien apareciera en el remitente.

Atte

Rogelio
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:26.