Foros del Web » Programando para Internet » PHP »

Me llega el formulario vacio

Estas en el tema de Me llega el formulario vacio en el foro de PHP en Foros del Web. Hola a todos, me he echo un formulario de contacto en php, el codigo es el siguiente: Formulario : Código HTML: <div id= "formulario-contacto" > ...

  #1 (permalink)  
Antiguo 09/08/2009, 12:39
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 11 años, 8 meses
Puntos: 23
Me llega el formulario vacio

Hola a todos, me he echo un formulario de contacto en php, el codigo es el siguiente:

Formulario:

Código HTML:
<div id="formulario-contacto">
<form class="formulario-de-contacto">
<label for="nombre" class="formulario-de-contacto">Nombre:</label> <input type="text" id="nombre" title="Tu nombre" name="nombre" class="campos-de-texto"></label>
<br />
<label for="usuario" class="formulario-de-contacto">Usuario:</label> <input type="text" id="usuario" title="Tu usuario de la web" name="usuario" class="campos-de-texto" value="Si está registrado, escriba su usuario"></label>
<br />
<label for="genero" class="formulario-de-contacto">Genero:</label> <input type="text" id="genero" title="Tu genero" name="genero" class="campos-de-texto" value="Femenino o Masculino - Female or Male"></label>
<br />
<label for="email" class="formulario-de-contacto">Email:</label> <input type="text" id="email" title="Tu email" name="email" class="campos-de-texto"></label>
<br />
<label for="asunto" class="formulario-de-contacto">Asunto:</label> <input type="text" id="asunto" title="Asunto del mensaje" name="asunto" class="campos-de-texto">
<br />
<label for="mensaje" class="formulario-de-contacto">Mensaje:</label> <textarea id="campo-del-mensaje"></textarea>
<br />
<input type="submit" id="enviar" title="Enviar mensaje" value="Enviar mensaje"> 
</form> 
Codigo PHP:

Código PHP:
<?
$cuerpo 
"Formulario enviado\n";
$cuerpo .= "Nombre:" $HTTP_POST_VARS["nombre"] . "\n" ;
$cuerpo .= "Usuario:" $HTTP_POST_VARS["usuario"] . "\n" ;
$cuerpo .= "Genero:" $HTTP_POST_VARS["genero"] . "\n" ;
$cuerpo .= "Email:" $HTTP_POST_VARS["email"] . "\n" ;
$cuerpo .= "Asunto:" $HTTP_POST_VARS["asunto"] . "\n" ;
$cuerpo .= "Mensaje:" $HTTP_POST_VARS["mensaje"] . "\n" ;

mail("[email protected]""Formulario recibido satisfactoriamente"$cuerpo) ;

echo 
"El mensaje se ha enviado correctamente, gracias por haberlo enviado, será visto cuanto antes"
?>
Tengo dos problemas con el sistema.
  1. El echo me muestra el mensaje debajo del botón enviar sin haber pulsado el botón de enviar.
  2. Cuando me llega el mensaje, me llegan los campos pero vacios.

¿Qué le puede pasar?

¿Cómo lo puedo solucionar?

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #2 (permalink)  
Antiguo 09/08/2009, 12:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 7 meses
Puntos: 2534
Respuesta: Me llega el formulario vacio

mmm.... varias cosas, primero usa $_POST en lugar de $HTTP_POST_VARS

después... usa la lógica if-then-else

Código PHP:
if ( ! empty($_POST['name_del_submit']))
{
  
// codigo para enviar mail()

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/08/2009, 12:50
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 11 años, 8 meses
Puntos: 23
Respuesta: Me llega el formulario vacio

Es decir, que el PHP quede así:

Código PHP:
Ver original
  1. <?
  2. if ( ! empty($_POST['enviar']))
  3. {
  4. $cuerpo = "Formulario enviado\n";
  5. $cuerpo .= "Nombre:" . $_POST["nombre"] . "\n" ;
  6. $cuerpo .= "Usuario:" . $_POST["usuario"] . "\n" ;
  7. $cuerpo .= "Genero:" . $_POST["genero"] . "\n" ;
  8. $cuerpo .= "Email:" . $_POST["email"] . "\n" ;
  9. $cuerpo .= "Asunto:" . $_POST["asunto"] . "\n" ;
  10. $cuerpo .= "Mensaje:" . $_POST["mensaje"] . "\n" ;
  11.  
  12. mail("[email protected]", "Formulario recibido satisfactoriamente", $cuerpo) ;
  13.  
  14. echo "El mensaje se ha enviado correctamente, gracias por haberlo enviado, será visto cuanto antes"
  15. }
  16. ?>

Si es así debo de decirte que me aparece el siguiente error:

Código:
Parse error: syntax error, unexpected '}', expecting ',' or ';' in /home/distriker/domains/betaconsolas.com/public_html/probando-nueva-template/contactar.php on line 58
¿Lo apliqué bien?

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #4 (permalink)  
Antiguo 09/08/2009, 13:15
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 10 años, 10 meses
Puntos: 14
Respuesta: Me llega el formulario vacio

Estimado en la ultima linea , donde dice echo , le falto un punto y coma final , recuerde la siguiente sintaxis:

Código php:
Ver original
  1. <?php
  2. echo "hola";
  3. ?>

Creo que fui bien explicativo.

Saludos!
  #5 (permalink)  
Antiguo 09/08/2009, 13:56
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 11 años, 10 meses
Puntos: 5
Respuesta: Me llega el formulario vacio

a ver si esto te sirve, yo lo tengo asi y me funciona bien.

este por encima del FORMULARIO
<?PHP
if (!$_POST){
?>

ahora el formulario.

despues del formulario esto
<?
}else{
//Estoy recibiendo el formulario, compongo el cuerpo
$headers = "From: [email protected] - Dto comercial l\r\n";
$headers .= "Cc: " .$_POST["usuario"]."\r\n";
$cuerpo = "Gracias por tu colaboracion\n";
$usuario .= "Usuario: " . $_POST["usuario"] . "\n";
$cuerpo .= "Nombre: " . $_POST["nombre"] . "\n";
$cuerpo .= "Provincia: " . $_POST["comunidad"] . "\n";
$cuerpo .= "Telefono: " . $_POST["telefono"] . "\n";
$cuerpo .= "Precio: " . $_POST["precio"] . "\n";
$cuerpo .= "Email: " . $_POST["email"] . "\n";
$cuerpo .= "Comentarios: " . $_POST["coment"] . "\n";
$cuerpo .= "Articulo: " . $_POST["identificador"] . $_POST["articulo"] . "\n";
$cuerpo .="HORA: ".date("h:i:s a ")."\n";
$cuerpo .="FECHA: ".date("D, d M Y")."\n";


//mando el correo...
mail("[email protected]","he visto mas barato el articulo: ",$cuerpo,$headers);

//doy las gracias por el envío

echo " Gracias por infórmanos.";
echo "Nuestros comerciales se pondrán en contacto con el responsable del comercio que nos indicas lo antes posible.";
echo "Con tu ayuda conseguimos que los precios de los artículos se ajusten a la realidad.";
}
?>
  #6 (permalink)  
Antiguo 09/08/2009, 14:01
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 10 años, 10 meses
Puntos: 14
Respuesta: Me llega el formulario vacio

Estimada visona el error de dicho usuario es un punto y coma , nada más!.

Saludos!
  #7 (permalink)  
Antiguo 09/08/2009, 15:38
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 11 años, 8 meses
Puntos: 23
Respuesta: Me llega el formulario vacio

Bueno señores, sigo teniendo problemas, y ya he corregido ese ; (gracias Jonatanc).

Miren, esto es lo que me queda:

Código php:
Ver original
  1. <?php
  2. if ( ! empty($_POST['enviar']))
  3. {
  4. $cuerpo = "Formulario enviado\n";
  5. $cuerpo .= "Nombre:" . $_POST["nombre"] . "\n" ;
  6. $cuerpo .= "Usuario:" . $_POST["usuario"] . "\n" ;
  7. $cuerpo .= "Genero:" . $_POST["genero"] . "\n" ;
  8. $cuerpo .= "Email:" . $_POST["email"] . "\n" ;
  9. $cuerpo .= "Asunto:" . $_POST["asunto"] . "\n" ;
  10. $cuerpo .= "Mensaje:" . $_POST["mensaje"] . "\n" ;
  11.  
  12. mail("web[email protected]", "Formulario recibido satisfactoriamente", $cuerpo) ;
  13.  
  14. echo "El mensaje se ha enviado correctamente, gracias por haberlo enviado, será visto cuanto antes" ;
  15. }
  16. ?>

Ahora lo que me pasa es que no me llega el mensaje y no me devuelve el echo.

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #8 (permalink)  
Antiguo 09/08/2009, 15:47
 
Fecha de Ingreso: septiembre-2008
Mensajes: 22
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Me llega el formulario vacio

te falto poner el headers tambn del mail xP prueba con:

Código PHP:
$cuerpo "Formulario enviado\n";
$cuerpo .= "Nombre:" $_POST["nombre"] . "\n" ;
$cuerpo .= "Usuario:" $_POST["usuario"] . "\n" 
$cuerpo .= "Genero:" $_POST["genero"] . "\n" ;
$cuerpo .= "Email:" $_POST["email"] . "\n" ;
$cuerpo .= "Asunto:" $_POST["asunto"] . "\n" ;
$cuerpo .= "Mensaje:" $_POST["mensaje"] . "\n" ;
$headers="";

if(!
mail("[email protected]""Formulario recibido satisfactoriamente"$cuerpo,$headers)){
echo 
"No se pudo enviar el msnj";
}else{
echo 
"El mensaje se ha enviado correctamente, gracias por haberlo enviado, será visto cuanto antes";

el empy de nada te sirve, debes ponerlo para cada campo xD pero te haria largo el code ademas el objetivo es que no te llege sin datos tambien verifica que tengas mail activado en tu servidor
  #9 (permalink)  
Antiguo 09/08/2009, 15:57
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 11 años, 8 meses
Puntos: 23
Respuesta: Me llega el formulario vacio

Nada, no me funciona y esto es lo que tengo, todo el codigo corregido:

Código php:
Ver original
  1. <?php
  2. $cuerpo = "Formulario enviado\n";
  3. $cuerpo .= "Nombre:" . $_POST["nombre"] . "\n" ;
  4. $cuerpo .= "Usuario:" . $_POST["usuario"] . "\n" ;
  5. $cuerpo .= "Genero:" . $_POST["genero"] . "\n" ;
  6. $cuerpo .= "Email:" . $_POST["email"] . "\n" ;
  7. $cuerpo .= "Asunto:" . $_POST["asunto"] . "\n" ;
  8. $cuerpo .= "Mensaje:" . $_POST["mensaje"] . "\n" ;
  9. $headers = "" ;
  10.  
  11. if (!mail("[email protected]", "Formulario recibido satisfactoriamente", $cuerpo, $headers)) {
  12. echo "No se ha podido enviar el mensaje" ;
  13. }else{
  14. echo "El mensaje se ha enviado correctamente, gracias por haberlo enviado, será visto cuanto antes";
  15. }  
  16. ?>

Por cierto, me acabo de dar cuenta de que cada vez que entro en la página donde se ubica el formulario, me envia el formulario vacio y eso es un gran problema que me causará bastante SPAM si no lo soluciono.

¿Qué me sigue pasando con el dichoso codigo?

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #10 (permalink)  
Antiguo 09/08/2009, 16:02
 
Fecha de Ingreso: septiembre-2008
Mensajes: 22
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Me llega el formulario vacio

para eso esta el if

Código PHP:
if(!isset($_POST['nombre'])){
echo 
'debe llenar el campo nombre en el formulario';

}else{

$cuerpo "Formulario enviado\n";
$cuerpo .= "Nombre:" $_POST["nombre"] . "\n" ;
$cuerpo .= "Usuario:" $_POST["usuario"] . "\n" 
$cuerpo .= "Genero:" $_POST["genero"] . "\n" ;
$cuerpo .= "Email:" $_POST["email"] . "\n" ;
$cuerpo .= "Asunto:" $_POST["asunto"] . "\n" ;
$cuerpo .= "Mensaje:" $_POST["mensaje"] . "\n" ;
$headers="";

if(!
mail("[email protected]""Formulario recibido satisfactoriamente"$cuerpo,$headers)){
echo 
"No se pudo enviar el msnj";
}else{
echo 
"El mensaje se ha enviado correctamente, gracias por haberlo enviado, será visto cuanto antes";
}

pues esta todo bien lo unico que se me ocurre es que tengas mal puestos los nombres de los inputs recuerda que es sensible a mayusculas y minusculas, o tal vez tu host no soporta mail() que host usas?

igual puedes usar el isset post o if($_POST['nombre']=="") para todos los campos cambiando el input nombre, igual puedes reemplazar "" por empy
  #11 (permalink)  
Antiguo 09/08/2009, 16:13
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 11 años, 8 meses
Puntos: 23
Respuesta: Me llega el formulario vacio

Hola de nuevo, bueno, mi host si soporta la mail() ya que me llegan otras confirmaciones y demás tipos.

Por cierto, ahora tengo esto:

Código php:
Ver original
  1. <?php
  2. if(!isset($_POST['nombre'])){
  3. echo 'debe llenar el campo nombre en el formulario';
  4.  
  5. }else{
  6. $cuerpo = "Formulario enviado\n";
  7. $cuerpo .= "Nombre:" . $_POST["nombre"] . "\n" ;
  8. $cuerpo .= "Usuario:" . $_POST["usuario"] . "\n" ;
  9. $cuerpo .= "Genero:" . $_POST["genero"] . "\n" ;
  10. $cuerpo .= "Email:" . $_POST["email"] . "\n" ;
  11. $cuerpo .= "Asunto:" . $_POST["asunto"] . "\n" ;
  12. $cuerpo .= "Mensaje:" . $_POST["mensaje"] . "\n" ;
  13. $headers = "" ;
  14.  
  15. if (!mail("[email protected]", "Formulario recibido satisfactoriamente", $cuerpo, $headers)) {
  16. echo "No se ha podido enviar el mensaje" ;
  17. }else{
  18. echo "El mensaje se ha enviado correctamente, gracias por haberlo enviado, será visto cuanto antes";
  19. }
  20. }
  21. ?>

Cuando relleno el formulario y lo envio no me llega el mensaje ni muestra el echo de mensaje enviado.

¿Qué le pasa esta vez al codigo?

Por cierto, aquí:

Código php:
Ver original
  1. if(!isset($_POST['nombre'])){

¿Debo de poner el nombre del Input Nombre?

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #12 (permalink)  
Antiguo 09/08/2009, 16:25
 
Fecha de Ingreso: julio-2007
Mensajes: 115
Antigüedad: 12 años, 4 meses
Puntos: 1
Sonrisa Respuesta: Me llega el formulario vacio

Bueno cree este aporte para otro foro, no pienso decir el nombre porque ni se lo merece....espero que te ayude ;)

Bueno, muchos direis que vaya tonteria de aporte, es una funcion prestablecida por PHP, pero la considero de suma importancia, ya que, odio que cuando envie un formulario me salga el Outlook, lo considero algo muy feo en una web y si tienes la suerte de tener la funcion mail () habilitada en tu host esto queda muy bien, bueno, vamos a ello xD:

Comenzamos con un formulario normal:

Código HTML:
<html>
<head>
 <title>Funcion mail ()</title>
</head>
<body>
<form method="post" action="send.php">
<table>
 <tr>
  <td width="118">Nombre y apellidos:</td>
  <td width="200"><input name="nombre" type="text"/></td> 
 </tr>
 <tr>
  <td>Teléfono:</td><td><input name="tlf" type="text"/>
 </tr>
 <tr>
  <td>E-mail:</td><td><input  name="e-mail" type="text"/></td>
 </tr>
 <tr>
  <td>Comentario:</td><td><input  name="coment" type="text"/></td>
 </tr>
 <tr>
 <td></td><td><input name="enviar" type="submit" value="Enviar"/></td>
 </tr>
</table>
</form>
</body>
</html> 
Bueno comento el codigo, podeis ver un formulario procesado por el documento "send.php", este formulario es el que use en mi web y lo pongo por no crear otro codigo, total sirve igual, eso si acordaros de ponerles nombre ya que lo usaremos para las variables $_POST[''] xD. Seguimos con el send.php:

Código PHP:
<html>
<head>
<title>Send.php</title>
</head>
<body>
<?
$nombre
$_POST['nombre'];
$email $_POST['e-mail'];
$telefono $_POST['tlf'];
$comentario $_POST['coment'];
$titulo"Web trabajo";

$headers "MIME-Version: 1.0 \r\n";  
$headers .= "Content-type: text/html; charset=iso-8859-1 \r\n"
$headers .= "From: $email \r\n";   
$headers .= "X-Priority: 1 \r\n";  //1 urgente 5 no urgente 3 default
$headers .= "X-MSMail-Priority: High \r\n";  

$mensaje "Nombre : ";
$mensaje .= $nombre;
$mensaje .="<br>";
$mensaje .= "Teléfono : ";
$mensaje .= $telefono;
$mensaje .="<br>";
$mensaje .= "E-mail : ";
$mensaje .= $email;
$mensaje .="<br>";
$mensaje .= "Comentario : ";
$mensaje .= $comentario;

$target"[email protected]";

if (
mail($target,$titulo,$mensaje,$headers)){
print 
"<center>Mensaje enviado correctamente</center>";}
else {
print 
"<center>Existe un fallo en el envio</center>";}
?>
</body>
</html>
Mensaje Privado (Conectado)


[Aporte] Funcion Mail ()
« : Julio 21, 2009, 06:11:12 »
Responder con citaCitar Modificar mensajeModificar Eliminar mensajeEliminar
Bueno, muchos direis que vaya tonteria de aporte, es una funcion prestablecida por PHP, pero la considero de suma importancia, ya que, odio que cuando envie un formulario me salga el Outlook, lo considero algo muy feo en una web y si tienes la suerte de tener la funcion mail () habilitada en tu host esto queda muy bien, bueno, vamos a ello xD:

Comenzamos con un formulario normal:

Código:

<html>
<head>
<title>Funcion mail ()</title>
</head>
<body>
<form method="post" action="send.php">
<table>
<tr>
<td width="118">Nombre y apellidos:</td>
<td width="200"><input name="nombre" type="text"/></td>
</tr>
<tr>
<td>Teléfono:</td><td><input name="tlf" type="text"/>
</tr>
<tr>
<td>E-mail:</td><td><input name="e-mail" type="text"/></td>
</tr>
<tr>
<td>Comentario:</td><td><input name="coment" type="text"/></td>
</tr>
<tr>
<td></td><td><input name="enviar" type="submit" value="Enviar"/></td>
</tr>
</table>
</form>
</body>
</html>


Bueno comento el codigo, podeis ver un formulario procesado por el documento "send.php", este formulario es el que use en mi web y lo pongo por no crear otro codigo, total sirve igual, eso si acordaros de ponerles nombre ya que lo usaremos para las variables $_POST[''] xD. Seguimos con el send.php:

Código:

<html>
<head>
<title>Send.php</title>
</head>
<body>
<?
$nombre= $_POST['nombre'];
$email = $_POST['e-mail'];
$telefono = $_POST['tlf'];
$comentario = $_POST['coment'];
$titulo= "Web trabajo";

$headers = "MIME-Version: 1.0 \r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1 \r\n";
$headers .= "From: $email \r\n";
$headers .= "X-Priority: 1 \r\n"; //1 urgente 5 no urgente 3 default
$headers .= "X-MSMail-Priority: High \r\n";

$mensaje = "Nombre : ";
$mensaje .= $nombre;
$mensaje .="<br>";
$mensaje .= "Teléfono : ";
$mensaje .= $telefono;
$mensaje .="<br>";
$mensaje .= "E-mail : ";
$mensaje .= $email;
$mensaje .="<br>";
$mensaje .= "Comentario : ";
$mensaje .= $comentario;

$target= "[email protected]";

if (mail($target,$titulo,$mensaje,$headers)){
print "<center>Mensaje enviado correctamente</center>";}
else {
print "<center>Existe un fallo en el envio</center>";}
?>
</body>
</html>


Bueno la funcion mail () tiene la siguiente estructura: mail (direccion a la que va dirigida, Asunto, Mensaje, cabeceras); estas cabeceras quizas es lo mas dificil ya que varia dependiendo de la configuración del host, pero para la mayoria os servira los headers de este codigo.
la sintaxis es la siguiente, la funcion mail () devuelve true si es correcto el envio, por lo que imprime "Mensaje enviado correctamente" si no "Existe un fallo en el envio".

Este codigo expuesto es el mas sencillo, os ire añadiendo como validar el mensaje para que sea mas seguro y como protegerlo de posibles ataques.

Espero que os sirva mi aporte!!!!;) Sonreir
  #13 (permalink)  
Antiguo 09/08/2009, 16:27
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 11 años, 8 meses
Puntos: 23
Respuesta: Me llega el formulario vacio

Muchas gracias por tu aporte Zapiko, pero la verdad es que me gustaría arreglar lo que mas o menos he creado, aunque lo tendré en cuenta para el futuro.

Gracias.

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #14 (permalink)  
Antiguo 09/08/2009, 16:47
 
Fecha de Ingreso: julio-2007
Mensajes: 115
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Me llega el formulario vacio

deberias coger los headers de mi aporte, creo que es lo que te falla xq si te llega e-mail es que la funcion mail() esta habilitada, y te digo lo de los headers porque me pasaba igual que a ti, aunque mi aporte solo es para que sepais como funciona, ya que no tiene ninguna verificacion el formulario....lo que lo hace...muy inseguro xD
  #15 (permalink)  
Antiguo 09/08/2009, 16:52
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 10 años, 10 meses
Puntos: 14
Respuesta: Me llega el formulario vacio

Estimado ha verificado que la información requerida en su script de envio llegue a dicho form? es decir suponga que envia en un mail la ip del visitor , comprobo que dicho dato llegue con echo var_dump($_POST);

Saludos!
  #16 (permalink)  
Antiguo 09/08/2009, 16:53
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 11 años, 8 meses
Puntos: 23
Respuesta: Me llega el formulario vacio

Ok, agrego esto:

Código php:
Ver original
  1. $headers = "MIME-Version: 1.0 \r\n";
  2. $headers .= "Content-type: text/html; charset=iso-8859-1 \r\n";
  3. $headers .= "From: $email \r\n";
  4. $headers .= "X-Priority: 1 \r\n"; //1 urgente 5 no urgente 3 default
  5. $headers .= "X-MSMail-Priority: High \r\n";

Pero tengo dudas, yo no tengo ninguna variable llamada $email, el email está dentro de la variable cuerpo la cual tiene otra.

¿Cómo hago para llamarla?

Por cierto, ¿podrías explicarme el 1º, 4º y 5º header?

Cita:
Iniciado por jonatanc Ver Mensaje
Estimado ha verificado que la información requerida en su script de envio llegue a dicho form? es decir suponga que envia en un mail la ip del visitor , comprobo que dicho dato llegue con echo var_dump($_POST);

Saludos!
No entiendo

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #17 (permalink)  
Antiguo 09/08/2009, 17:03
 
Fecha de Ingreso: julio-2007
Mensajes: 115
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Me llega el formulario vacio

te explicaria los headers pero segun lei cuando me informe yo son movidas de Perl o derivadas al modulo PHP osea que sorry xD.

Los headers ponlos nomal donde tienes headers, mi variable $email es igual que la tuya, luego se mete en el mensaje que se envia ;) colocalos igual que como los tienes despues de la variable $cuerpo, $headers
  #18 (permalink)  
Antiguo 09/08/2009, 17:06
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 11 años, 8 meses
Puntos: 23
Respuesta: Me llega el formulario vacio

Pues sigue sin pasar nada, observen.

Saludos

Edito.

Enlace corregido.

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.

Última edición por Distriker; 09/08/2009 a las 17:31
  #19 (permalink)  
Antiguo 09/08/2009, 17:14
 
Fecha de Ingreso: septiembre-2008
Ubicación: Lanzarote, Canarias
Mensajes: 486
Antigüedad: 11 años, 3 meses
Puntos: 41
Respuesta: Me llega el formulario vacio

Pon todo el código incluido el html... por que con tanto post ni sé lo que tienes actualmente, además que no va la url que pusistes.
  #20 (permalink)  
Antiguo 09/08/2009, 17:32
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 11 años, 8 meses
Puntos: 23
Respuesta: Me llega el formulario vacio

A ver, este es el formulario:

Código HTML:
<form class="formulario-de-contacto">
<label for="nombre" class="formulario-de-contacto">Nombre:</label> <input type="text" id="nombre" title="Tu nombre" name="nombre" class="campos-de-texto"></label>
<br />
<label for="usuario" class="formulario-de-contacto">Usuario:</label> <input type="text" id="usuario" title="Tu usuario de la web" name="usuario" class="campos-de-texto" value="Si está registrado, escriba su usuario"></label>
<br />
<label for="genero" class="formulario-de-contacto">Genero:</label> <input type="text" id="genero" title="Tu genero" name="genero" class="campos-de-texto" value="Femenino o Masculino - Female or Male"></label>
<br />
<label for="email" class="formulario-de-contacto">Email:</label> <input type="text" id="email" title="Tu email" name="email" class="campos-de-texto"></label>
<br />
<label for="asunto" class="formulario-de-contacto">Asunto:</label> <input type="text" id="asunto" title="Asunto del mensaje" name="asunto" class="campos-de-texto">
<br />
<label for="mensaje" class="formulario-de-contacto">Mensaje:</label> <textarea id="campo-del-mensaje"></textarea>
<br />
<input type="submit" id="enviar" title="Enviar mensaje" value="Enviar mensaje"> 
</form> 
Y mi php:

Código PHP:
<?php
if(!isset($_POST['nombre'])){
echo 
'debe llenar el campo nombre en el formulario';

}else{
$cuerpo "Formulario enviado\n";
$cuerpo .= "Nombre:" $_POST["nombre"] . "\n" ;
$cuerpo .= "Usuario:" $_POST["usuario"] . "\n" ;
$cuerpo .= "Genero:" $_POST["genero"] . "\n" ;
$cuerpo .= "Email:" $_POST["email"] . "\n" ;
$cuerpo .= "Asunto:" $_POST["asunto"] . "\n" ;
$cuerpo .= "Mensaje:" $_POST["mensaje"] . "\n" ;
$headers "" ;

$headers "MIME-Version: 1.0 \r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1 \r\n";
$headers .= "From: $email \r\n";
$headers .= "X-Priority: 1 \r\n"//1 urgente 5 no urgente 3 default
$headers .= "X-MSMail-Priority: High \r\n"

if (!
mail("[email protected]""Formulario recibido satisfactoriamente"$cuerpo$headers)) {
echo 
"No se ha podido enviar el mensaje" ;
}else{
echo 
"El mensaje se ha enviado correctamente, gracias por haberlo enviado, será visto cuanto antes";
}
}
?>
¿Bien ahora?

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #21 (permalink)  
Antiguo 09/08/2009, 17:44
 
Fecha de Ingreso: septiembre-2008
Ubicación: Lanzarote, Canarias
Mensajes: 486
Antigüedad: 11 años, 3 meses
Puntos: 41
Respuesta: Me llega el formulario vacio

Bien... te falta poner method="post" en la etiqueta form y action

Código:
<?php
if(isset($_POST['enviar'])){

if(!$_POST['nombre']){ 
$error.= 'debe llenar el campo nombre en el formulario';
}

if(count($error)==0) {
$cuerpo = "Formulario enviado\n";
$cuerpo .= "Nombre:" . $_POST["nombre"] . "\n" ;
$cuerpo .= "Usuario:" . $_POST["usuario"] . "\n" ;
$cuerpo .= "Genero:" . $_POST["genero"] . "\n" ;
$cuerpo .= "Email:" . $_POST["email"] . "\n" ;
$cuerpo .= "Asunto:" . $_POST["asunto"] . "\n" ;
$cuerpo .= "Mensaje:" . $_POST["mensaje"] . "\n" ;
$headers = "" ;

$headers = "MIME-Version: 1.0 \r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1 \r\n";
$headers .= "From: $email \r\n";
$headers .= "X-Priority: 1 \r\n"; //1 urgente 5 no urgente 3 default
$headers .= "X-MSMail-Priority: High \r\n"; 

if (!mail("[email protected]", "Formulario recibido satisfactoriamente", $cuerpo, $headers)) {
echo "No se ha podido enviar el mensaje" ;
}else{
echo "El mensaje se ha enviado correctamente, gracias por haberlo enviado, será visto cuanto antes";
} 
}

}

?> 

<?php echo $error; ?>
<form class="formulario-de-contacto" method="post" action="archivo.php">
<label for="nombre" class="formulario-de-contacto">Nombre:</label> <input type="text" id="nombre" title="Tu nombre" name="nombre" class="campos-de-texto"></label>
<br />
<label for="usuario" class="formulario-de-contacto">Usuario:</label> <input type="text" id="usuario" title="Tu usuario de la web" name="usuario" class="campos-de-texto" value="Si está registrado, escriba su usuario"></label>
<br />
<label for="genero" class="formulario-de-contacto">Genero:</label> <input type="text" id="genero" title="Tu genero" name="genero" class="campos-de-texto" value="Femenino o Masculino - Female or Male"></label>
<br />
<label for="email" class="formulario-de-contacto">Email:</label> <input type="text" id="email" title="Tu email" name="email" class="campos-de-texto"></label>
<br />
<label for="asunto" class="formulario-de-contacto">Asunto:</label> <input type="text" id="asunto" title="Asunto del mensaje" name="asunto" class="campos-de-texto">
<br />
<label for="mensaje" class="formulario-de-contacto">Mensaje:</label> <textarea id="campo-del-mensaje"></textarea>
<br />
<input type="submit" id="enviar" title="Enviar mensaje" name="enviar" value="Enviar mensaje"> 
</form>
pon en action el nombre de el archivo bien.

edito:

te explico, si no pones method post, se envía por el metodo $_GET y no $_POST, por lo que siempre llegaría vacio, por que estas utilizando $_POST
  #22 (permalink)  
Antiguo 09/08/2009, 20:14
 
Fecha de Ingreso: septiembre-2008
Mensajes: 22
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Me llega el formulario vacio

sep es el form lo que te falla un form debe llevar el action y el metodo,

<form action="archivo.php" method="post">

el enctype es opcional para archivos de subida

<form action="archivo.php" method="post" enctype="multipart/from-data">

pon el action y el method como el primer ejemplo y seguro funciona...

los headers enrealidad no son nada importante, el header es una parte del mail para editar:

quien lo envia
remitente
texto plano/ texto html

y otras cosas, son como aditamentos para el mail, asique no es necesario solo lo puedes dejar en blanco asi

$headers="";
=) seguro con el method y el action funciona como ya te dijeron existe el metodo post y get

method="post"
method="get"
el get es para obtener datos de variables por url como
archivo.php?op=dato
$_GET['op'];

op es como un input y dato es el contenido tambn existe request que es para obtener datos ya sea de post o de get funciona para ambos

$_REQUEST['entrada']

EN RESUMEN SOLO EDITA ESTO:

<form class="formulario-de-contacto" action="archivo.php" method="post">

y yap no toques lo demas
  #23 (permalink)  
Antiguo 22/08/2009, 12:07
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 11 años, 8 meses
Puntos: 23
Respuesta: Me llega el formulario vacio

Perdonad que no os haya contestado antes pero mirad, sigo con problemas, creo que es algo raro.

A ver, ahora tengo el archivo contactar.php y el codigo-contacto.php

En el contactar.php tengo esto:

Código html:
Ver original
  1. <form action="codigo-contacto.php" method="post" class="formulario-de-contacto">
  2. <label for="nombre" class="formulario-de-contacto">Nombre:</label> <input type="text" id="nombre" title="Tu nombre" name="nombre" class="campos-de-texto"></label>
  3. <br />
  4. <label for="usuario" class="formulario-de-contacto">Usuario:</label> <input type="text" id="usuario" title="Tu usuario de la web" name="usuario" class="campos-de-texto" value="Si está registrado, escriba su usuario"></label>
  5. <br />
  6. <label for="genero" class="formulario-de-contacto">Genero:</label> <input type="text" id="genero" title="Tu genero" name="genero" class="campos-de-texto" value="Femenino o Masculino - Female or Male"></label>
  7. <br />
  8. <label for="email" class="formulario-de-contacto">Email:</label> <input type="text" id="email" title="Tu email" name="email" class="campos-de-texto"></label>
  9. <br />
  10. <label for="asunto" class="formulario-de-contacto">Asunto:</label> <input type="text" id="asunto" title="Asunto del mensaje" name="asunto" class="campos-de-texto">
  11. <br />
  12. <label for="mensaje" class="formulario-de-contacto">Mensaje:</label> <textarea id="campo-del-mensaje"></textarea>
  13. <br />
  14. <input type="submit" id="enviar" title="Enviar mensaje" value="Enviar mensaje">
  15. </form>

Y en el codigo-contacto.php esto:

Código php:
Ver original
  1. <?php
  2. if(isset($_POST['enviar'])){
  3.  
  4. if(!$_POST['nombre']){
  5. $error.= 'Debes poner tu nombre (usuario).';
  6. }
  7.  
  8. if(count($error)==0) {
  9. $cuerpo = "Formulario enviado\n";
  10. $cuerpo .= "Nombre:" . $_POST["nombre"] . "\n" ;
  11. $cuerpo .= "Usuario:" . $_POST["usuario"] . "\n" ;
  12. $cuerpo .= "Genero:" . $_POST["genero"] . "\n" ;
  13. $cuerpo .= "Email:" . $_POST["email"] . "\n" ;
  14. $cuerpo .= "Asunto:" . $_POST["asunto"] . "\n" ;
  15. $cuerpo .= "Mensaje:" . $_POST["mensaje"] . "\n" ;
  16. $headers = "MIME-Version: 1.0 \r\n";
  17. $headers .= "Content-type: text/html; charset=iso-8859-1 \r\n";
  18. $headers .= "From: $email \r\n";
  19. $headers .= "X-Priority: 1 \r\n"; //1 urgente 5 no urgente 3 default
  20. $headers .= "X-MSMail-Priority: High \r\n";
  21.  
  22. if (!mail("[email protected]", "Formulario recibido satisfactoriamente", $cuerpo, $headers)) {
  23. echo "No se ha podido enviar el mensaje" ;
  24. }else{
  25. echo "El mensaje se ha enviado correctamente, gracias por haberlo enviado, será visto cuanto antes";
  26. }
  27. }
  28.  
  29. ?>

¿Qué os parece?

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #24 (permalink)  
Antiguo 22/08/2009, 15:36
Avatar de JoseTejada  
Fecha de Ingreso: diciembre-2007
Ubicación: Peru.Lima.Cercado.MDuarez.Granaderos172
Mensajes: 218
Antigüedad: 12 años
Puntos: 11
Respuesta: Me llega el formulario vacio

Hola DIstriker, el error q encontré está en tu boton submit, cambia id="enviar" por name="enviar" ....Prueba esto y espero que te haya ayudado, bye
  #25 (permalink)  
Antiguo 22/08/2009, 16:04
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 11 años, 8 meses
Puntos: 23
Respuesta: Me llega el formulario vacio

Me sale este error:

Código:
Parse error: syntax error, unexpected $end in /home/distriker/domains/betaconsolas.com/public_html/probando-nueva-template/codigo-contacto.php on line 30
Y tengo lo siguiente:

<input type="submit" id="enviar" name="enviar" title="Enviar mensaje" value="Enviar mensaje">

¿Está correcto? ¿Qué pasa?

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #26 (permalink)  
Antiguo 22/08/2009, 19:48
Avatar de JoseTejada  
Fecha de Ingreso: diciembre-2007
Ubicación: Peru.Lima.Cercado.MDuarez.Granaderos172
Mensajes: 218
Antigüedad: 12 años
Puntos: 11
Respuesta: Me llega el formulario vacio

Parse Error: syntax error, unexpected $end

Es un error bastante común, porque es muy fácil reunir las condiciones para hacerlo saltar.

Basicamente suele deberse a uno de estos dos motivos:

■En alguna parte del código falta una llave de cierre (símbolo }, también llamado curly bracket).
■El PHP instalado no admite en su configuración el uso de etiquetas PHP en formato abreviado (”<?” en lugar de “<?php” ).
  #27 (permalink)  
Antiguo 22/08/2009, 19:53
Avatar de JoseTejada  
Fecha de Ingreso: diciembre-2007
Ubicación: Peru.Lima.Cercado.MDuarez.Granaderos172
Mensajes: 218
Antigüedad: 12 años
Puntos: 11
Respuesta: Me llega el formulario vacio

Avisa si lo resolviste...y cual fue la solución :D
  #28 (permalink)  
Antiguo 23/08/2009, 10:59
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 11 años, 8 meses
Puntos: 23
Respuesta: Me llega el formulario vacio

Bien, ya está correcto, envia el mensaje y todo.

Solo veo un problema, lo único que no envia es el mensaje.

¿Por qué?

El error anterior a este mensaje era que faltaba un { al final.

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #29 (permalink)  
Antiguo 23/08/2009, 17:26
 
Fecha de Ingreso: septiembre-2008
Ubicación: Lanzarote, Canarias
Mensajes: 486
Antigüedad: 11 años, 3 meses
Puntos: 41
Respuesta: Me llega el formulario vacio

No envia el mensaje por que el tag textarea no tiene ningún name

Código:
<textarea id="campo-del-mensaje"></textarea>
es así

Código:
<textarea name="mensaje" id="campo-del-mensaje"></textarea>
  #30 (permalink)  
Antiguo 23/08/2009, 17:31
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 11 años, 8 meses
Puntos: 23
Respuesta: Me llega el formulario vacio

Muchas gracias a todos los que me habeis ayudado, por las explicaciones y por todo.

Muchas gracias.

Ya está todo arreglado, karma para todos :P

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
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 20:23.