Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Problemita con el Formulario de contacto

Estas en el tema de Problemita con el Formulario de contacto en el foro de PHP en Foros del Web. Verán, me sucede lo siguiente: Hice el formulario y lo saco a través del sitio con un include pero cuando completas y mandás el formulario, ...
  #1 (permalink)  
Antiguo 03/03/2015, 20:36
Avatar de LucasAddams  
Fecha de Ingreso: febrero-2015
Ubicación: Argentina
Mensajes: 26
Antigüedad: 9 años, 5 meses
Puntos: 3
Problemita con el Formulario de contacto

Verán, me sucede lo siguiente: Hice el formulario y lo saco a través del sitio con un include pero cuando completas y mandás el formulario, se me abre una página en blanco -en la misma página- con el mensaje "Mensaje enviado".

Lo que yo quiero es que no se abra, si no que el "Mensaje enviado" aparezca dentro del include en donde se encontraba el formulario.


El código del formulario html es:

Código HTML:
<form method="POST" action="mail.php">

			<label for="">Nombre</label><br>
			<input type="text" name="nombre" id="nombre"/><br>
			<label for="correo">Correo Electrónico</label><br>
			<input type="text" name="mail" id="correo"/><br>
			<label for="asunto">Asunto</label><br>
			<input type="text" name="asunto" id="asunto"/><br>
			<label for="mensaje">¡Tu mensaje!</label><br>
		    <textarea cols="22" rows="10" name="mensaje" id="mensaje"></textarea><br>
			<input type="submit" value="Enviar"/>

</form> 
Y la función en php del mail es:

Código PHP:
<? //Recepcion de datos
$nombre=$_POST["nombre"];
$asunto=$_POST["asunto"];
$mensaje=$_POST["mensaje"];
$correo=$_POST["correo"];
//Fin de recepcion de datos
//accion de envio
//---------//

$para='[email protected]';
$mensaje='
Mensaje de:
'
.$nombre.'
correo:
'
.$correo.'
asunto:
'
.$asunto.'
mensaje:'
.$mensaje.'
'
;
$desde='from:'.$correo.'[email protected]';
ini_set(sendmail_from,'[email protected]');
mail($para,$asunto,$mensaje,$desde);
echo
'Mensaje Enviado';

?>
El include en el sitio lo saco así:

Código HTML:
<div id="Contacto">

[PHP]<?php include("mail.html");?>[/PHP]

</div> 

Para que vean mejor el problema, les dejo donde la subí para probarla: http://probandositios.esy.es/

Última edición por LucasAddams; 03/03/2015 a las 20:42 Razón: no salio el enlace
  #2 (permalink)  
Antiguo 03/03/2015, 20:47
Avatar de LucasAddams  
Fecha de Ingreso: febrero-2015
Ubicación: Argentina
Mensajes: 26
Antigüedad: 9 años, 5 meses
Puntos: 3
Respuesta: Problemita con el Formulario de contacto

De lo contrario, que al presionar el submit el formulario se resetee y todo siga igual o vuelva a cargar la página -siempre enviando el formulario, claro-
  #3 (permalink)  
Antiguo 03/03/2015, 21:08
 
Fecha de Ingreso: marzo-2015
Mensajes: 15
Antigüedad: 9 años, 4 meses
Puntos: 3
Respuesta: Problemita con el Formulario de contacto

El problema es que al hacer submit levanta el archivo "mail.php" y envia los datos alli, no te va a levantar el archivo del sitio donde hiciste el include de "mail.php".

lo que tenes que hacer es cambiar el atributo "action" del form y decirle que envia los datos POST al archivo que hace el include de "mail.php".

otro error que vi, es que haces include de "mail.html" y deberia ser con la extension ".php";

espero que te haya servido, saludos.
  #4 (permalink)  
Antiguo 03/03/2015, 21:14
Avatar de LucasAddams  
Fecha de Ingreso: febrero-2015
Ubicación: Argentina
Mensajes: 26
Antigüedad: 9 años, 5 meses
Puntos: 3
Respuesta: Problemita con el Formulario de contacto

Cita:
Iniciado por darioPHP Ver Mensaje
El problema es que al hacer submit levanta el archivo "mail.php" y envia los datos alli, no te va a levantar el archivo del sitio donde hiciste el include de "mail.php".

lo que tenes que hacer es cambiar el atributo "action" del form y decirle que envia los datos POST al archivo que hace el include de "mail.php".

otro error que vi, es que haces include de "mail.html" y deberia ser con la extension ".php";

espero que te haya servido, saludos.
No entendí, ¿qué debería poner en el action="" del form? ¿Qué iría ahí o solo cambio el include por mail.php y listo?

Sucede que lo hago al include en .html porque tengo el mail.html y el mail.php. Uno con el form y otro con las funciones.
  #5 (permalink)  
Antiguo 03/03/2015, 21:44
 
Fecha de Ingreso: marzo-2015
Mensajes: 15
Antigüedad: 9 años, 4 meses
Puntos: 3
Respuesta: Problemita con el Formulario de contacto

A esta bien, a ver si me puedo explicar.
Cuando envias el formulario, abre la pagina que pusiste en el atributo "action" y envia los datos via POST alli.

Lo que tienes que hacer es enviar los datos del formulario al archivo donde vas a mostrar el mensaje, e incluir el archivo mail.php alli. supongamos que en tu index.php incluyes el formulario pero cambiamos el atributo "action".

//mail.html
Código HTML:
Ver original
  1. <form method="POST" action="index.php">
  2.  
  3.             <label for="">Nombre</label><br>
  4.             <input type="text" name="nombre" id="nombre"/><br>
  5.             <label for="correo">Correo Electrónico</label><br>
  6.             <input type="text" name="mail" id="correo"/><br>
  7.             <label for="asunto">Asunto</label><br>
  8.             <input type="text" name="asunto" id="asunto"/><br>
  9.             <label for="mensaje">¡Tu mensaje!</label><br>
  10.             <textarea cols="22" rows="10" name="mensaje" id="mensaje"></textarea><br>
  11.             <input type="submit" value="Enviar"/>
  12.  
  13. </form>

ahora lo incluimos al div de contacto
y tambien al arrchivo encargado de procesar los datos POST.

//index.php
Código HTML:
Ver original
  1. <div id="Contacto">
  2.  
  3. <?php include("mail.html");?>
  4. <?php include("mail.php");?>
  5. </div>
  #6 (permalink)  
Antiguo 04/03/2015, 03:26
Avatar de LucasAddams  
Fecha de Ingreso: febrero-2015
Ubicación: Argentina
Mensajes: 26
Antigüedad: 9 años, 5 meses
Puntos: 3
Respuesta: Problemita con el Formulario de contacto

¡MUCHAS GRACIAS MAESTRO! Me solucionaste la vida, ahora te regalo a mi hermana c:

Etiquetas: contacto, formulario, html, problemita
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:05.