elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  El correo que llega del formulario esta vacio!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: El correo que llega del formulario esta vacio!  (Leído 14,290 veces)
elpirata15hd

Desconectado Desconectado

Mensajes: 18


Ver Perfil
El correo que llega del formulario esta vacio!
« en: 25 Abril 2011, 00:47 am »

Estoy utilizando este php para enviar el formulario al correo,y llega,el problema esque llega en blanco,sale la fecha,hora en que se envio,y los campos nombre,email,asunto y mensaje,que son los del formulario,pero en blanco,no se que esta mal,os lo dejo aqui,haber si sabeis cual es el fallo,gracias. Y ademas,al pinchar enviar y activar el php,la pagina se queda en blanco y a la vez llega el correo


<?php
$dia=date("m.d.Y");
$hora=date("H:i:s");
$destinatario="MICORREO@gmail.com";
$subject= " Mensaje";
$desde = 'From: ' .$_POST[email];
$contingut = "
El mensaje se a enviado el dia $dia a las $hora\n\n
----------------------------------------------------------------------------\n
Nombre: $_POST[name]\n
Email: $_POST[email]\n
Asunto: $_POST[subject]\n
Mensaje: $_POST[message]\n
----------------------------------------------------------------------------\n
";
mail($destinatario, $subject, $contingut, $desde);
?>


Formulario html


<form id="form-contact" class="validation" method="post" action="enviar.php" enctype="text/plain">

<p class="input-text pngfix">
<label class="overlay" for="name">Nombre</label>
<input type="text" class="required" name="name" id="name" />
</p>
<p class="input-text pngfix">
<label class="overlay" for="email">E-Mail</label>
<input type="text" class="required email" name="email" id="email" />
</p>
<p class="input-text pngfix">
<label class="overlay" for="subject">Asunto</label>
<input type="text" class="required" name="subject" id="subject" />
</p>

<p class="textarea pngfix">
<label class="overlay" for="message">Mensaje</label>
<textarea class="required" name="message" id="message" rows="5" cols="5"></textarea>
</p>


<p><button type="submit" class="submit pngfix">Enviar!</button></p>


« Última modificación: 25 Abril 2011, 00:52 am por elpirata15hd » En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: El correo que llega del formulario esta vacio!
« Respuesta #1 en: 25 Abril 2011, 02:46 am »

Código:
$desde = 'From: ' .$_POST[email];

estás enviando "email" sin comillas, por lo tanto estás dando una constante y la constante email no existe.

encierra todos los valores en comillas dobles o simples y si vas a poner una variable dentro de las comilas dobles debes encerrarlas en corchetes porque no va a tomar el argumento.

{$_POST[name]}

mejor cierra comillas y las concatenas con puntos:

Código
  1. $contingut = '
  2. El mensaje se a enviado el dia '.$dia.' a las '.$hora.'
  3.  
  4. ----------------------------------------------------------------------------
  5. Nombre: '.$_POST['name'].'
  6. Email: '.$_POST['email'].'
  7. Asunto: '.$_POST['subject'].'
  8. Mensaje: '.$_POST['message'].'
  9. ----------------------------------------------------------------------------
  10. ';

Además si ya haces saltos de linea no tienes para que escribir \n.

También recuerda que debes cerrar </form>


En línea

elpirata15hd

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: El correo que llega del formulario esta vacio!
« Respuesta #2 en: 25 Abril 2011, 09:07 am »

ates que nada,muchisimas gracias por ayudarme. Bueno,pues e realizado los cambios que me has dicho, a $desde = 'From: ' .$_POST['email']; le puse las comillas y tambien cambie lo del codigo que escribiste,pero sigue apareciendo en blanco,puede que haya un error de que no concuerden los datos del formulario y el php? y cuando se activa el enviar.php la pagina se queda en blanco a la vez que llega el correo,cual es la forma de que el php regrese al index.html?

y el form del html estaba cerrado lo unico que se me olvido copiarlo aqui

Gracias
« Última modificación: 25 Abril 2011, 09:09 am por elpirata15hd » En línea

elpirata15hd

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: El correo que llega del formulario esta vacio!
« Respuesta #3 en: 25 Abril 2011, 23:18 pm »

puede que haya error en alguna linea del formulario?
En línea

Feedeex

Desconectado Desconectado

Mensajes: 173


Ver Perfil
Re: El correo que llega del formulario esta vacio!
« Respuesta #4 en: 26 Abril 2011, 06:50 am »

Probá así:

Código:
<?php
$dia=date("m.d.Y");
$hora=date("H:i:s");
$destinatario="MICORREO@gmail.com";
$subject= "Mensaje";
$desde_quien = $_POST['email'];
$desde = "From: $desde_quien";
$contingut = "
El mensaje se a enviado el dia $dia a las $hora\n\n
----------------------------------------------------------------------------\n
Nombre: $_POST['name']\n
Email: $_POST['email']\n
Asunto: $_POST['subject']\n
Mensaje: $_POST['message']\n
----------------------------------------------------------------------------\n
";
mail($destinatario, $subject, $contingut, $desde);
?>

Corregí un par de errores. Ya verás. Y para redireccionar al index.html nuevamente utiliza header(); de la siguiente forma:

Código:
header("Location: index.html");

Suponiendo que está en el mismo directorio que enviar.php, claro.
En línea

elpirata15hd

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: El correo que llega del formulario esta vacio!
« Respuesta #5 en: 26 Abril 2011, 09:05 am »

Ok,voy a probar,en el dreamweaver,me da error en la linea 11

Si,da error en la linea 11,da este error:

syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/a5419835/public_html/prueba.php on line 11

El header funciona perfectamente!!

Como se pondria que cuando regrese al index.html saliera una ventanita de que se envio correctamente?

PD: asi es como me estan llegando los correos que envia el formulario:

« Última modificación: 26 Abril 2011, 14:59 pm por elpirata15hd » En línea

elpirata15hd

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: El correo que llega del formulario esta vacio!
« Respuesta #6 en: 26 Abril 2011, 16:08 pm »

Ya funciona,muchas gracias,me dijeorn que tenia que quitar enctype="text/plain" y ya funciona.

Ahora me gustaria saber como hacer que cuando envie el correo y regrese al html salga un cuadrito o algo asi que diga que se envio correctamente?

Veis la posibilidad de añadir al formulario un exmainar para adjuntar con el correo una foto?

Gracias
En línea

Feedeex

Desconectado Desconectado

Mensajes: 173


Ver Perfil
Re: El correo que llega del formulario esta vacio!
« Respuesta #7 en: 26 Abril 2011, 18:53 pm »

Y... depende.

• Puede regresar al index y saltar un cartel que diga que se envio.
• Puede aparecer en el index.html el mensaje que se envió, aparte del formulario.

Para el primer método podés usar alert de javascript. Y para el segundo utilizarás variables por URL combinadas con GET. Un ejemplo:

index.php (si, cambiale la extensión a .php)

Código:
<?php
if (isset($_GET['opc'])) {
 $opc = $_GET['opc'];
  if ($opc == "1") {
?>
  <p align="Center">El mensaje fue enviado</p>
<?php
} else {
?>
  <p align="Center">Opcion incorrecta</p>
<?php
}
}
?>
<form id="form-contact" class="validation" method="post" action="enviar.php" enctype="text/plain">

<p class="input-text pngfix">
<label class="overlay" for="name">Nombre</label>
<input type="text" class="required" name="name" id="name" />
</p>
<p class="input-text pngfix">
<label class="overlay" for="email">E-Mail</label>
<input type="text" class="required email" name="email" id="email" />
</p>
<p class="input-text pngfix">
<label class="overlay" for="subject">Asunto</label>
<input type="text" class="required" name="subject" id="subject" />
</p>

<p class="textarea pngfix">
<label class="overlay" for="message">Mensaje</label>
<textarea class="required" name="message" id="message" rows="5" cols="5"></textarea>
</p>
<p><button type="submit" class="submit pngfix">Enviar!</button></p>

Lo que haría el código es verificar si existe en la URL la variable "opc". Si existe, toma el valor que tiene y lo guarda en una variable. Si es 1 muestra que se envió el mensaje, de lo contrario dice que es incorrecto. El header para mostrar el mensaje sería:

Código:
header("Location: index.php?opc=1");

Lo que haría es decirle a index.php que muestre la parte donde le indicamos que existe la variable opcion con un 1. Es decir:

Código:
 if ($opc == "1") {
?>
  <p align="Center">El mensaje fue enviado</p>
<?php
}

Para info más detallada lee sobre $_GET

Cualquier duda no dudes en consultar. Un abrazo.
En línea

elpirata15hd

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: El correo que llega del formulario esta vacio!
« Respuesta #8 en: 26 Abril 2011, 22:39 pm »

funciono perfecto,pero tiene un fallo,que como el texto "se evnio correctamente" sale encima del formulario y al regresar al index empieza desde arriva,no aparece la parte de abajo de la web,tienes que bajar hasta el formulario para saber si se envio ok,asi que pienso que a lo mejor,seria mejor,que saliese una pequeña venta diciendo que se envio correctamente y que desaparezca automaticamente ¿no crees? eso si,no tengo ni ide ade por donde empezar con esa ventana,si me pudieras ayudar una vez mas,me harias un favor

Del tema de añadir al fomrulario un boton examinar para djuntar una foto y que llegue la foto adjuntada al correo,tienes idea de cmo se hace?

Gracias una vez mas

Mira,encontre este script para cuando entras a la web,pero como se configura para que se active al regresar al index despues de que se enviase?

Código:
<script language="javascript" type="text/javascript">
alert("Enviado Correctamente");
</script>
             
« Última modificación: 26 Abril 2011, 23:06 pm por elpirata15hd » En línea

Feedeex

Desconectado Desconectado

Mensajes: 173


Ver Perfil
Re: El correo que llega del formulario esta vacio!
« Respuesta #9 en: 27 Abril 2011, 00:37 am »

Hace así:

enviar.php
Código:
<?php
$dia=date("m.d.Y");
$hora=date("H:i:s");
$destinatario="MICORREO@gmail.com";
$subject= "Mensaje";
$desde_quien = $_POST['email'];
$desde = "From: $desde_quien";
$contingut = "
El mensaje se a enviado el dia $dia a las $hora\n\n
----------------------------------------------------------------------------\n
Nombre: $_POST['name']\n
Email: $_POST['email']\n
Asunto: $_POST['subject']\n
Mensaje: $_POST['message']\n
----------------------------------------------------------------------------\n
";
mail($destinatario, $subject, $contingut, $desde);
header("Location: index.php?opc=1");
?>

index.php
Código:
<?php
if (isset($_GET['opc'])) {
 $opc = $_GET['opc'];
  if ($opc == "1") {
?>
  <script language="javascript" type="text/javascript">
   alert("Enviado Correctamente");
</script>
<?php
} else {
?>
  <script language="javascript" type="text/javascript">
   alert("Parametro incorrecto");
</script>
<?php
}
}
?>
<form id="form-contact" class="validation" method="post" action="enviar.php" enctype="text/plain">

<p class="input-text pngfix">
<label class="overlay" for="name">Nombre</label>
<input type="text" class="required" name="name" id="name" />
</p>
<p class="input-text pngfix">
<label class="overlay" for="email">E-Mail</label>
<input type="text" class="required email" name="email" id="email" />
</p>
<p class="input-text pngfix">
<label class="overlay" for="subject">Asunto</label>
<input type="text" class="required" name="subject" id="subject" />
</p>

<p class="textarea pngfix">
<label class="overlay" for="message">Mensaje</label>
<textarea class="required" name="message" id="message" rows="5" cols="5"></textarea>
</p>
<p><button type="submit" class="submit pngfix">Enviar!</button></p>

Por cierto, la proxima vez intenta leer un poco más y recopilar información, no de tener todo en bandeja.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
No llega los datos de mi formulario PHP, el correo si llega pero sin la info
PHP
joycestory 8 5,561 Último mensaje 28 Agosto 2012, 22:46 pm
por michaelalfaro
Por favir ayuda, el formulario me llega vacio
PHP
padrino13 5 3,272 Último mensaje 5 Junio 2012, 18:58 pm
por padrino13
Me llega el formulario, sin los datos del formulario
PHP
michaelalfaro 1 1,981 Último mensaje 27 Agosto 2012, 18:41 pm
por RevangelyonX
ayuda con PHP MAIL me llega vacío
PHP
fumador33 2 1,882 Último mensaje 6 Enero 2015, 22:58 pm
por fumador33
AYUDA! EL formulario PHP me llega vacio
PHP
luchobeer 7 4,029 Último mensaje 20 Septiembre 2016, 21:02 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines