Foros del Web » Programando para Internet » PHP »

Enviar formulario al hacer clic en 'enviar' y no al cargar

Estas en el tema de Enviar formulario al hacer clic en 'enviar' y no al cargar en el foro de PHP en Foros del Web. Un saludo Tengo una Web con un formulario en php que envia los datos a mi correo. Funciona, exepto q envia el formulario vacio al ...
  #1 (permalink)  
Antiguo 29/08/2008, 00:22
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
Enviar formulario al hacer clic en 'enviar' y no al cargar

Un saludo

Tengo una Web con un formulario en php que envia los datos a mi correo.

Funciona, exepto q envia el formulario vacio al cargar la pagina, sin necesidad de hacer clic en 'enviar'.

Lo q quiero es precisamente q se envie cuando haga clic en 'enviar' y no al cargar la pagina, ya q se me llena el correo de formularios vacios.

Les dejo el codigo para q quede claro el problema:


Código HTML:
<form method="POST" action="contactenos.php" name="Contactenos">

<table border="0" width="100%" style="font-family: Arial, Verdana, Tahoma; font-size: 10pt; color: #000000" cellspacing="4">

<tr>
	<td width="168">Nombre:</td>
	<td>
	<input type="text" name="Nombre" size="44"></td>
	</tr>
	<tr>
	<td width="168">Correo electrónico:</td>
	<td>
	<input type="text" name="Correo" size="44"></td>
	</tr>
	<tr>
	<td width="168">Asunto:</td>
	<td>
	<input type="text" name="Asunto" size="44"></td>
	</tr>
	<tr>
	<td width="168">Comentarios:</td>
	<td>
	<textarea rows="9" name="Comentarios" cols="39"></textarea></td>
	</tr>
	</table>

<p>
<input type="submit" value="Enviar" name="Enviar">

<input type="reset" value="Borrar" name="Borrar">
</p>

</form> 
Código PHP:
<?

$nombre 
$_POST['Nombre'];
$correo $_POST['Correo'];
$asuntousuario $_POST['Asunto'];
$comentarios $_POST['Comentarios'];

$header 'From: ' $correo " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje "Nombre: " $nombre " \r\n";
$mensaje .= "E-mail: " $correo " \r\n";
$mensaje .= "Asunto: " $asuntousuario " \r\n";
$mensaje .= "Comentarios: " $comentarios " \r\n";
$mensaje .= "Enviado el " date('d/m/Y'time());

$para '[email protected]';
$asunto 'Contactenos';

mail($para$asuntoutf8_decode($mensaje), $header);

echo 
'Gracias por tu Visita.';

?>


Gracias por todo.

Espero alguien pueda ayudarme.

- - - - - - - - - - - - - - - - - - -- - - - - - - - - -- - - - - - - - - - - - - - - - --

Muchas gracias hector2c e ilie, su respuesta es basicamente la misma, solo q la de hector es más completa. De todas formas gracias, me sirvio de mucho.

Mucha suerte!!!

Por cierto, tambien soy nuevo en forosdelweb y no se si aqui se dan puntos o algo por el estilo, y si es asi no encontre como hacerlo.

¡¡Suete!!!

Última edición por dpruebas; 29/08/2008 a las 21:56 Razón: Agradecimiento
  #2 (permalink)  
Antiguo 29/08/2008, 00:40
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Enviar formulario al hacer clic en 'enviar' y no al cargar

son un mismo archivo ??
  #3 (permalink)  
Antiguo 29/08/2008, 00:43
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: Enviar formulario al hacer clic en 'enviar' y no al cargar

en el código php pon como condición que se te haya cargado el formulario:

if(isset($_POST['nombre']){
...
}

solo se cargará cuando envíes el formulario.
  #4 (permalink)  
Antiguo 29/08/2008, 00:46
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Pregunta Respuesta: Enviar formulario al hacer clic en 'enviar' y no al cargar

en caso sea solo un fichero, te recomendaria al inicio validar el envio del post del submit, seria algo asi:

Código PHP:
<?

if (isset($_POST['Enviar'])){
$nombre $_POST['Nombre'];
$correo $_POST['Correo'];
$asuntousuario $_POST['Asunto'];
$comentarios $_POST['Comentarios'];

$header 'From: ' $correo " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje "Nombre: " $nombre " \r\n";
$mensaje .= "E-mail: " $correo " \r\n";
$mensaje .= "Asunto: " $asuntousuario " \r\n";
$mensaje .= "Comentarios: " $comentarios " \r\n";
$mensaje .= "Enviado el " date('d/m/Y'time());

$para '[email protected]';
$asunto 'Contactenos';

mail($para$asuntoutf8_decode($mensaje), $header);

echo 
'Gracias por tu Visita.';
}


?>
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 04:46.