Foros del Web » Programando para Internet » PHP »

PHP OO Problema con formulario de contacto

Estas en el tema de Problema con formulario de contacto en el foro de PHP en Foros del Web. Buenas! tengo un problema con un formulario de contacto, puedo rellenar los datos pero cuando me llega el email aparecen todos los campos vacios, no ...
  #1 (permalink)  
Antiguo 26/06/2014, 12:14
 
Fecha de Ingreso: junio-2014
Ubicación: Buenos Aires
Mensajes: 4
Antigüedad: 9 años, 10 meses
Puntos: 0
Pregunta Problema con formulario de contacto

Buenas!
tengo un problema con un formulario de contacto, puedo rellenar los datos pero cuando me llega el email aparecen todos los campos vacios, no tengo mucha idea de PHP pero tiene que haber alguna variable mal.
Agradeceria si me pueden ayudar con el codigo, gracias!

Copio los codigos

Contacto.html

Cita:
<h4>Formulario de Contacto</h4>
<div class="status alert alert-success" style="display: none"></div>
<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php" role="form">
<div class="row">
<div class="col-sm-7">
<textarea name="message" id="message" required="required" class="form-control" rows="8" placeholder="Mensaje"></textarea>
</div>

<div class="col-sm-5">
<div class="form-group">
<input type="text" name="name" id="name" class="form-control" required="required" placeholder="Nombre">
</div>
<div class="form-group">
<input type="text" name="subject" id="subject" class="form-control" required="required" placeholder="Teléfono">
</div>
<div class="form-group">
<input type="text" name="email" id="email" class="form-control" required="required" placeholder="Email">
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-lg">Enviar Mensaje</button>
</div>
</div>

</div>
</form>

sendemail.php

Cita:
<?php
header('Content-type: application/json');
$status = array(
'type'=>'success',
'message'=>'Mensaje Enviado!'
);

$name = @trim(stripslashes($_POST['name']));
$email = @trim(stripslashes($_POST['email']));
$subject = @trim(stripslashes($_POST['subject']));
$message = @trim(stripslashes($_POST['message']));

$email_from = $email;
$email_to = '[email protected]';

$body = 'Nombre: ' . $name . "" . 'Email: ' . $email . "" . 'Tel: ' . $subject . "" . 'Mensaje: ' . $message;

$success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');

echo json_encode($status);
?>
  #2 (permalink)  
Antiguo 26/06/2014, 14:06
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Problema con formulario de contacto

- Has verificado que recibas algo del formulario ?

Código PHP:
Ver original
  1. var_dump($_POST);


- Por que pones ese '@' delante de la funcion mail() ? en etapa de desarrollo es mejor NO suprimir errores, al contrario pon al comienzo:

Código PHP:
Ver original 

- Has verificado la funcion mail() te este funcionando en esa maquina ? (lo cual depende de muchos factores)


Por favor suprime todos los '@' que te pueden arruinar el JSON pero son mailisima idea en esta etapa
__________________
Salu2!

Última edición por Italico76; 26/06/2014 a las 14:40
  #3 (permalink)  
Antiguo 26/06/2014, 18:54
 
Fecha de Ingreso: junio-2014
Ubicación: Buenos Aires
Mensajes: 4
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Problema con formulario de contacto

Cita:
Iniciado por Italico76 Ver Mensaje
- Has verificado que recibas algo del formulario ?

Código PHP:
Ver original
  1. var_dump($_POST);


- Por que pones ese '@' delante de la funcion mail() ? en etapa de desarrollo es mejor NO suprimir errores, al contrario pon al comienzo:

Código PHP:
Ver original 

- Has verificado la funcion mail() te este funcionando en esa maquina ? (lo cual depende de muchos factores)


Por favor suprime todos los '@' que te pueden arruinar el JSON pero son mailisima idea en esta etapa
Gracias por tu respuesta.
Pero no me quedo claro , no entiendo de php, este es un codigo que encontre, no lo hice yo y no tengo la menor idea como funciona.

Saque los @ pero sigue llegando igual.
Los emails llegan asi.

Cita:
Sin Asunto

Nombre:
Email:
Telefono:
Mensaje:
Osea, no llega el contenido del formulario, tiene los campos vacios.
Nose si esta mal el codigo html o el PHP.

Podrias enviarme el codigo corregido, no entiendo las variables.
gracias!
  #4 (permalink)  
Antiguo 26/06/2014, 19:21
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Problema con formulario de contacto

Cita:
Iniciado por diegomuser Ver Mensaje
Podrias enviarme el codigo corregido, no entiendo las variables.
gracias!
y Esto es un foro de ayuda para que quién pide la ayuda resuelva sus problemas por si mismo. No significa que vengamos y te hagamos las cosas hechas solo porque tu no entiendes de programación. Si el problema viene del trabajo, debes de entender que para eso te pagan y si es algo de estudios, deja de ser vago y ponte a estudiar.

No importa tus razones, aquí si quieres ayuda tienes que ganártela, no busques que te lleguen soluciones caídas del cielo.

Hablando de tu problema tienes que revisar que efectivamente esté llegando la información al archivo de sebmail.php, como haces eso? @Italico76 te dijo como. Tienes que depurar y ver si llegan los datos antes de proceder a enviar un formulario, es una regla básica de programación.

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #5 (permalink)  
Antiguo 26/06/2014, 19:30
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Problema con formulario de contacto

Sino vas a enviar nada a Javascript..... olvidate de esto:

Código PHP:
Ver original
  1. header('Content-type: application/json');
  2.  
  3. $status = array(
  4. 'type'=>'success',
  5. 'message'=>'Mensaje Enviado!'
  6. );

y esto:

Código PHP:
Ver original
  1. echo json_encode($status);

<<< que esta mal de todas formas porque no envia el estado del envio ($success) sino algo pre-definido donde siempre dice que fue exitoso.

Yo probaria asi:

Código PHP:
Ver original
  1. <?php
  2. // habilitamos todos los errores:
  3.  
  4. // veamos que recibes:
  5. var_dump($_POST);
  6.  
  7. $name = trim(stripslashes($_POST['name']));
  8. $email = trim(stripslashes($_POST['email']));
  9. $subject = trim(stripslashes($_POST['subject']));
  10. $message = trim(stripslashes($_POST['message']));
  11.  
  12. $email_from = $email;
  13. $email_to = '[email protected]'; // esto lo debes cambiar :)
  14.  
  15. $body = "Nombre: $name\nEmail: $email\nTel: $subject\nMensaje: $message";
  16.  
  17. $success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');
  18.  
  19. // si dice true es que fue exitoso
  20. var_dump($success);


EDIT: como te dice jonni09lo lo primero es ENTENDER que estas haciendo... investigar y tratar de seguir solito
__________________
Salu2!
  #6 (permalink)  
Antiguo 26/06/2014, 20:23
 
Fecha de Ingreso: junio-2014
Ubicación: Buenos Aires
Mensajes: 4
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Problema con formulario de contacto

Cita:
Iniciado por jonni09lo Ver Mensaje
y Esto es un foro de ayuda para que quién pide la ayuda resuelva sus problemas por si mismo. No significa que vengamos y te hagamos las cosas hechas solo porque tu no entiendes de programación. Si el problema viene del trabajo, debes de entender que para eso te pagan y si es algo de estudios, deja de ser vago y ponte a estudiar.

No importa tus razones, aquí si quieres ayuda tienes que ganártela, no busques que te lleguen soluciones caídas del cielo.

Hablando de tu problema tienes que revisar que efectivamente esté llegando la información al archivo de sebmail.php, como haces eso? @Italico76 te dijo como. Tienes que depurar y ver si llegan los datos antes de proceder a enviar un formulario, es una regla básica de programación.

Saludos
Si no quieres ayudar no me interesa tu opinion y menos tolerar el tono de tu mensaje.

No soy programador, es obvio que intente solucionarlo por mis propios medios y acudi a expertos para que me digan como realizarlo, no cuento con conocimientos de PHP.

Creo que no entiendes el sentido de un foro, acepto que me digas que me tengo que esforzar para poder encontrar la solucion, pero no voy a aceptar que me trates de vago por no tenes conocimientos de programacion.
  #7 (permalink)  
Antiguo 26/06/2014, 20:30
 
Fecha de Ingreso: junio-2014
Ubicación: Buenos Aires
Mensajes: 4
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Problema con formulario de contacto

Cita:
Iniciado por Italico76 Ver Mensaje
Sino vas a enviar nada a Javascript..... olvidate de esto:

Código PHP:
Ver original
  1. header('Content-type: application/json');
  2.  
  3. $status = array(
  4. 'type'=>'success',
  5. 'message'=>'Mensaje Enviado!'
  6. );

y esto:

Código PHP:
Ver original
  1. echo json_encode($status);

<<< que esta mal de todas formas porque no envia el estado del envio ($success) sino algo pre-definido donde siempre dice que fue exitoso.

Yo probaria asi:

Código PHP:
Ver original
  1. <?php
  2. // habilitamos todos los errores:
  3.  
  4. // veamos que recibes:
  5. var_dump($_POST);
  6.  
  7. $name = trim(stripslashes($_POST['name']));
  8. $email = trim(stripslashes($_POST['email']));
  9. $subject = trim(stripslashes($_POST['subject']));
  10. $message = trim(stripslashes($_POST['message']));
  11.  
  12. $email_from = $email;
  13. $email_to = '[email protected]'; // esto lo debes cambiar :)
  14.  
  15. $body = "Nombre: $name\nEmail: $email\nTel: $subject\nMensaje: $message";
  16.  
  17. $success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');
  18.  
  19. // si dice true es que fue exitoso
  20. var_dump($success);


EDIT: como te dice jonni09lo lo primero es ENTENDER que estas haciendo... investigar y tratar de seguir solito
Te agradesco nuevamente tu ayuda pero tampoco pude solucionarlo :(
El codigo javascript sirve para que me muestre en pantalla que el mensaje ha sido enviado, luego desaparece.

Al no tener conocimientos de programacion me cuesta entender el codigo, he mirado otros formularios pero no logro encontrar un patron.

No es mi intencion pedir nada, si es una molestia prefiero que ignoren el post.
gracias nuevamente.
  #8 (permalink)  
Antiguo 22/10/2014, 15:19
 
Fecha de Ingreso: octubre-2014
Mensajes: 1
Antigüedad: 9 años, 6 meses
Puntos: 0
Pregunta Respuesta: Problema con formulario de contacto

Tambien soy nuevo en PHP pero encontre que este theme usa un archivo .js (main.js) con el siguiente codigo:

jQuery(function($) {

//Ajax contact
var form = $('.contact-form');
form.submit(function () {
$this = $(this);
$.post($(this).attr('action'), function(data) {
$this.prev().text(data.message).fadeIn().delay(300 0).fadeOut();
},'json');
return false;
});

//Goto Top
$('.gototop').click(function(event) {
event.preventDefault();
$('html, body').animate({
scrollTop: $("body").offset().top
}, 500);
});
//End goto top

});

Espero que nuestros amigos del foro nos puedan ayudar a solucionar este problema.

He estado investigando pero no logro entender como funciona.

Gracias a todos
  #9 (permalink)  
Antiguo 22/10/2014, 16:43
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Problema con formulario de contacto

Y qué te arroja el var_dump($_POST)? Los valores llegan hasta el archivo??

Una cosa más, saca ese arroba delante de la función mail. No tiene nada que hacer ahí :)

Tu código:
Código PHP:
<?php
    $success 
= @mail($email_to$subject$body'From: <'.$email_from.'>');
?>
Debería ser:
Código PHP:
<?php
    $success 
mail($email_to$subject$body'From: <'.$email_from.'>');
?>

Etiquetas: contacto, formulario
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 17:23.