Foros del Web » Programando para Internet » PHP »

Problema con formulario de contacto

Estas en el tema de Problema con formulario de contacto en el foro de PHP en Foros del Web. Saludos comunidad, hago este tema porque tengo un problema con la acción de este formulario en html, resulta que tengo que hacer la acción en ...

  #1 (permalink)  
Antiguo 31/08/2011, 17:52
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Problema con formulario de contacto

Saludos comunidad, hago este tema porque tengo un problema con la acción de este formulario en html, resulta que tengo que hacer la acción en php pero me esta resultando un poco difícil ustedes me podrían ayudar adjuntaré el codigo html y php de la acción que tiene algo mal...

Código:
		<form id="contactform" method="post" action="contact.php" class="validateform">
			<div id="errormessage">
			</div>
			<div id="sendmessage">
				Tu mensaje ha sido enviado. ¡Gracias!
			</div>
			<ul class="cform">
				<li><label for="name">Nombre:</label>
				<input type="text" value="" name="name" id="name" class="fancyinput" data-rule="maxlen:3" data-msg="Por favor, introduzca al menos 3 caracteres" /><div class="valmsg"></div></li>
				<li><label for="email">E-mail:</label>
				<input type="text" value="" name="email" id="email" class="fancyinput" data-rule="email" data-msg="Por favor, introduzca un E-mail válido" /><div class="valmsg"></div></li>
				<li><label for="message">Mensaje:</label>
				<textarea rows="10" cols="62" name="message" class="fancyinputarea" id="message" data-rule="maxlen:10" data-msg="Por favor introduzca un mensaje"></textarea><div class="valmsg"></div></li>
				<li><input type="submit" value="Submit" class="fancybutton simple small_shadow" name="submit"/></li>
			</ul>
		</form>
PHP

Código:
<?php 
// define your emailadress here and errors here 
define("EMAIL"                ,     "[email protected]"); 
define("SUBJECT"            ,     "Mensaje del sitio web Redemprende.cl"); 
define("ERROR_MESSAGE"        ,    "Hay un error. Por favor, inténtelo de nuevo más tarde."); 

//for testing only 
//error_reporting (E_ALL ^ E_NOTICE); 

if($_POST) { 
//send email 
$email = mail(EMAIL, SUBJECT, $_POST['message'], "From: ".$_POST['name']." <".$_POST['email'].">rn" ."Reply-To: ".$_POST['email']."rn"); 

if($email) { echo 'OK';    }  else { echo '<div class="notification">'.ERROR_MESSAGE.'</div>';    } 
header("location: index_3d.php");

}     
?>
ojalá puedan ayudarme
  #2 (permalink)  
Antiguo 31/08/2011, 17:58
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema con formulario de contacto

y el problema es??
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 31/08/2011, 18:03
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con formulario de contacto

:o Se me olvido... sorry, la cosa es que bueno apreto el submit y no manda nada, ya que no avisa que el mensaje se ha enviado satisfactoriamente... se queda alli no avisa nada
  #4 (permalink)  
Antiguo 31/08/2011, 18:36
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con formulario de contacto

if($_POST) { este como que no me suena porque no lo termina...
  #5 (permalink)  
Antiguo 31/08/2011, 18:44
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Problema con formulario de contacto

Por la sensación que a mi me da, este código... ¿lo has copiado y pegado, verdad?

Para empezar, no hace falta poner un "action", yo muchas veces proceso el mismo formulario en la misma página, aparte de eso no entiendo porqué tienes esto aquí:

Código HTML:
Ver original
  1. <div id="errormessage">
  2. </div>
  3. <div id="sendmessage">
  4.     Tu mensaje ha sido enviado. ¡Gracias!
  5. </div>

Como tampoco comprendo el uso que haces de la lista y el nombre de las clases y los ID de los elementos, que vamos a suponer que es por diseño (CSS).

Bien, desde mi punto de vista "el problema" lo tienes en el archivo de php por el [URL="http://es2.php.net/manual/es/function.header.php"]header[/URL] que te redirecciona a "index_3d.php", por lo que no ves el mensaje, con eliminar o comentar la línea ya te vale.
  #6 (permalink)  
Antiguo 31/08/2011, 18:53
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con formulario de contacto

Esto esta metido en una página, cuando uno envia el formulario sale un cartel arriba del formulario diciendo el exito de la envio, todo lo demás es por el CSS, el código php claro lo busque por internet haber si me ayudaba, no entendi lo del header
  #7 (permalink)  
Antiguo 31/08/2011, 18:55
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con formulario de contacto

Lo siento pero lo del header ahora lo entendi xddd me salio este texto

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\gogreen\contact.php on line 12
Hay un error. Por favor, inténtelo de nuevo más tarde.

debe ser porque estoy usando XAMPP?
  #8 (permalink)  
Antiguo 31/08/2011, 18:58
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Problema con formulario de contacto

Sí, exacto, sale un texto que dice "Tu mensaje ha sido enviado. ¡Gracias!", incluso antes de enviar nada, siempre sale. Por eso lo eliminaría.

El [URL=http://es2.php.net/manual/es/function.header.php]header[/URL] es un redireccionamiento que tiene PHP, simplemente elimina o comenta la línea que tiene el [URL=http://es2.php.net/manual/es/function.header.php]header[/URL]
  #9 (permalink)  
Antiguo 31/08/2011, 19:01
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Problema con formulario de contacto

Cita:
Iniciado por alvaaz
debe ser porque estoy usando XAMPP?
Exacto, XAMPP no se puede conectar con el "programa" que envía e-mail y por lo tanto te manda ese error. En un hosting de internet, te debería de funciona perfecamente.
  #10 (permalink)  
Antiguo 31/08/2011, 19:02
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con formulario de contacto

Exacto la elimine y envia el mensaje pero tengo otro problema ya que quiero que me salga arriba del formulario y sin que se redireccione a otra página y diga ok, sino que diga gracias por tu mensaje arriba, en html hay un send message, y ahi dirá gracias por tu mensaje pero nose como trabajarlo
  #11 (permalink)  
Antiguo 31/08/2011, 19:05
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con formulario de contacto

Porque con css me salio arriba del formulario sin redireccionar que había un error pero cuando se envie tambien quieroo que salga asi
  #12 (permalink)  
Antiguo 31/08/2011, 19:08
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con formulario de contacto

Inclusive en css esta este código para lo antes dicho

Cita:
#sendmessage {
background:url('../img/icons/success_icon.png') no-repeat 20px center #DFF2BF;
border:1px solid #4F8A10;
color:#4F8A10;
display:none;
padding:15px 12px 15px 65px;
margin:10px 0;
  #13 (permalink)  
Antiguo 31/08/2011, 19:18
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Problema con formulario de contacto

Yo sólo te voy a dar los pasos a seguir, ahora tu tienes que crear el resto:

Código PHP:
Ver original
  1. <?php
  2.  
  3.     if ($_POST) {
  4.  
  5.         $to = '[email protected]';
  6.         $subjet = 'asunto';
  7.         $txt = $_POST['campo'];
  8.  
  9.         if (mail($to, $subjet, $txt)) {
  10.        
  11.             $alerta = "Tu mensaje ha sido enviado. ¡Gracias!";
  12.            
  13.         } else {
  14.        
  15.             $alerta = "Hay un error. Por favor, inténtelo de nuevo más tarde.";
  16.        
  17.         }
  18.  
  19.     }
  20.  
  21. ?>
  22.  
  23. <html>
  24.  
  25.     <head> ... </head>
  26.  
  27.     <body>
  28.    
  29.         <?php echo $alerta; ?>
  30.  
  31.         <form method="POST">
  32.  
  33.             <input type="text" name="campo">
  34.             <input type="submit" value="enviar">
  35.  
  36.         </form>
  37.  
  38.     </body>
  39.  
  40. </html>

Si quieres que te lo explique paso a paso, no tengo problema.
  #14 (permalink)  
Antiguo 31/08/2011, 19:26
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con formulario de contacto

Mmm en eso no tengo problema en crear un formulario, lo que si tengo problema es que el mensaje de notificación salga arriba del formulario y no lo mande a otra página nose si me entiendo en eso me estoy cabezeando...
  #15 (permalink)  
Antiguo 31/08/2011, 19:33
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Problema con formulario de contacto

El código que te puse (#13), lo hace.
  #16 (permalink)  
Antiguo 31/08/2011, 19:52
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con formulario de contacto

No lo hace me sale en blanco, lo que estoy pensando en el header de ultimo que me tinca que es algo para incluir el sendmessage de html corrigeme si me equivoco please
  #17 (permalink)  
Antiguo 31/08/2011, 20:00
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Problema con formulario de contacto

Cita:
Iniciado por alvaaz
No lo hace me sale en blanco, lo que estoy pensando en el header de ultimo que me tinca que es algo para incluir el sendmessage de html corrigeme si me equivoco please
El Header no te va a incluir el mensaje, simplemente te va a redireccionar.

En relación al código que te puse (#13), a mi me funciona perfectamente tal cual está escrito ahí.
  #18 (permalink)  
Antiguo 31/08/2011, 20:01
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con formulario de contacto

Mira esto quiero para ver si estamos hablando lo mismo, envia un formulario si puede... y arriba saldra se ha enviado en ingles obvio..
  #19 (permalink)  
Antiguo 31/08/2011, 20:11
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con formulario de contacto

Compadre te agradezco enormemento la ayuda que me estas brindando...

tengo una duda, con sacarle el header a mi código ya esta funcionando

Cita:
<?php
// define your emailadress here and errors here
define("EMAIL" , "[email protected]");
define("SUBJECT" , "Mensaje del sitio web Redemprende.cl");
define("ERROR_MESSAGE" , "Hay un error. Por favor, inténtelo de nuevo más tarde.");

//for testing only
//error_reporting (E_ALL ^ E_NOTICE);

if($_POST) {
//send email
$email = mail(EMAIL, SUBJECT, $_POST['message'], "From: ".$_POST['name']." <".$_POST['email'].">rn" ."Reply-To: ".$_POST['email']."rn");

if($email) { echo 'OK'; } else { echo '<div class="notification">'.ERROR_MESSAGE.'</div>'; }
}
?>
y me sale Ok, existe alguna posibilidad que el echo de esta frase if($email) { echo 'OK'; } se conecte con este código que esta en el copntact.html <div id="sendmessage">
Tu mensaje ha sido enviado. ¡Gracias!

yo creo que ese es el problema...
  #20 (permalink)  
Antiguo 31/08/2011, 20:23
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con formulario de contacto

Mira encontre algo!

contact.php

Cita:
<?php
// define your emailadress here and errors here
define("EMAIL" , "[email protected]");
define("SUBJECT" , "Mensaje del sitio web Redemprende.cl");
define("ERROR_MESSAGE" , "Hay un error. Por favor, inténtelo de nuevo más tarde.");

//for testing only
//error_reporting (E_ALL ^ E_NOTICE);
header("location: contact.html");
if($_POST) {
//send email
$email = mail(EMAIL, SUBJECT, $_POST['message'], "From: ".$_POST['name']." <".$_POST['email'].">rn" ."Reply-To: ".$_POST['email']."rn");

if($email) { echo '<div class="validateform" id="sendmessage">'; } else { echo '<div class="validateform">'.ERROR_MESSAGE.'</div>'; }
}

?>

abajo donde dice
Cita:
if($email) { echo '<div class="validateform" id="sendmessage">'; } else { echo '<div class="validateform">'.ERROR_MESSAGE.'</div>'; }
}
puse un <div class="validateform" id="sendmessage"> asiendo alusion a contact.html que sale
Cita:
<div id="errormessage">
</div>
<div id="sendmessage">
Tu mensaje ha sido enviado. ¡Gracias!
</div>
resulta que me manda el correo sin salir de el formulario...
  #21 (permalink)  
Antiguo 31/08/2011, 20:24
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Problema con formulario de contacto

Tendrías que volver al archivo que está el formulario redireccionando con header y de paso llevar una variable por $_GET y mediante PHP, que si existiera la misma apareciera el famoso mensaje.
  #22 (permalink)  
Antiguo 31/08/2011, 20:30
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con formulario de contacto

exactamente puse header("location: contact.html"); y luego llame a los div respectivos al error y al sendmessage
  #23 (permalink)  
Antiguo 31/08/2011, 20:36
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Problema con formulario de contacto

Entonces te ha funcionado?
  #24 (permalink)  
Antiguo 31/08/2011, 20:47
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con formulario de contacto

Mira me manda el correo pero no me dice el mensaje arriba queda en el mismo formulario eso lo arregle pero el mensaje arriba no me lo tira :S
Cita:
<?php

// define your emailadress here and errors here
define("EMAIL" , "[email protected]");
define("SUBJECT" , "Mensaje del sitio web Redemprende.cl");
define("ERROR_MESSAGE" , "Hay un error. Por favor, inténtelo de nuevo más tarde.");

//for testing only
//error_reporting (E_ALL ^ E_NOTICE);
header("location: contact.html");
if($_POST) {
//send email
$email = mail(EMAIL, SUBJECT, $_POST['message'], "From: ".$_POST['name']." <".$_POST['email'].">rn" ."Reply-To: ".$_POST['email']."rn");

if($email) { echo '<div class="validateform" id="sendmessage"></div>';} else { echo '<div id="errormessage"></div>';}
}

?>
  #25 (permalink)  
Antiguo 31/08/2011, 21:08
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Problema con formulario de contacto

¡Al final voy a tener que escribir el código! aquí lo tienes (funciona perfectamente):

Código PHP:
Ver original
  1. <?php
  2.  
  3.     if($_POST) {
  4.  
  5.         $email = "[email protected]";
  6.         $subject = "Mensaje del sitio web Redemprende.cl";
  7.        
  8.         if(@mail($email, $subject, $_POST['message'], "From: {$_POST['name']} <{$_POST['email']}>\r\n Reply-To: {$_POST['email']}\r\n")) {
  9.        
  10.             $alerta = '<div id="sendmessage">Tu mensaje ha sido enviado. ¡Gracias!</div>';
  11.            
  12.         }  else {
  13.        
  14.             $alerta = '<div id="errormessage">Hay un error. Por favor, inténtelo de nuevo más tarde.</div>';
  15.            
  16.         }
  17.  
  18.     }
  19.  
  20. ?>
  21.  
  22. <html>
  23.  
  24.     <head> ... </head>
  25.    
  26.     <body>
  27.  
  28.         <form id="contactform" method="POST" class="validateform">
  29.        
  30.             <?php echo $alerta; ?>
  31.        
  32.             <ul class="cform">
  33.                 <li><label for="name">Nombre:</label>
  34.                 <input type="text" value="" name="name" id="name" class="fancyinput" data-rule="maxlen:3" data-msg="Por favor, introduzca al menos 3 caracteres" /><div class="valmsg"></div></li>
  35.                 <li><label for="email">E-mail:</label>
  36.                 <input type="text" value="" name="email" id="email" class="fancyinput" data-rule="email" data-msg="Por favor, introduzca un E-mail válido" /><div class="valmsg"></div></li>
  37.                 <li><label for="message">Mensaje:</label>
  38.                 <textarea rows="10" cols="62" name="message" class="fancyinputarea" id="message" data-rule="maxlen:10" data-msg="Por favor introduzca un mensaje"></textarea><div class="valmsg"></div></li>
  39.                 <li><input type="submit" value="Submit" class="fancybutton simple small_shadow" name="submit"/></li>
  40.             </ul>
  41.            
  42.         </form>
  43.        
  44.     </body>
  45.        
  46. </html>
  #26 (permalink)  
Antiguo 31/08/2011, 21:16
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con formulario de contacto

nada de nada velo por ti mismo http://vistapacifico.net/redemprende/gogreen/contact.html incluso ahora ni siquiera me llegan los correos ._.
  #27 (permalink)  
Antiguo 31/08/2011, 21:17
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con formulario de contacto

en el html pusiste <?php echo $alerta; ?> no le faltará algo para indicar que la variable se encuentra en contact.php?
  #28 (permalink)  
Antiguo 31/08/2011, 21:19
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con formulario de contacto

le agregue un include
  #29 (permalink)  
Antiguo 31/08/2011, 21:20
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con formulario de contacto

nada de nada...
  #30 (permalink)  
Antiguo 31/08/2011, 21:25
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Problema con formulario de contacto

no, lo que tienes que hacer es eliminar el archivo contact.php porque ya lo tienes todo incluido (#25), y, el archivo contact.html pasarlo a llamar contact.php, ya que si no tiene esa extensión la web no sabe que tiene dentro PHP.

Etiquetas: contacto, html, 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 01:17.