Foros del Web » Programando para Internet » PHP »

Mi propio script para formularios - Porque no funciona?

Estas en el tema de Mi propio script para formularios - Porque no funciona? en el foro de PHP en Foros del Web. Hola a todos. Bien, he comenzado con PHP, y queria comenzar haciendo algo básico como un formulario, tengo esto en el html: Código: <form action="formulario.php" ...
  #1 (permalink)  
Antiguo 09/04/2007, 23:49
Avatar de hey_alan  
Fecha de Ingreso: diciembre-2006
Ubicación: México
Mensajes: 348
Antigüedad: 13 años
Puntos: 8
Pregunta Mi propio script para formularios - Porque no funciona?

Hola a todos.

Bien, he comenzado con PHP, y queria comenzar haciendo algo básico como un formulario, tengo esto en el html:

Código:
	<form action="formulario.php" method="get">
	<table cellpadding="5">
	<tr>
	<td align="right" valign="middle">Inserta tu nombre/nick:</td>
	<td align="left" valign="middle"><input type="text" name="nombre"/></td>
	</tr>
	<tr>
	<td align="right" valign="middle">Tu email:</td>
	<td align="left" valign="middle"><input type="text" name="email"/></td>
	</tr>
    <tr>
	<td align="right" valign="middle">Asunto:</td>
	<td align="left" valign="middle"><input type="text" name="asunto"/></td>
	</tr>
	<tr>
	<td align="right" valign="middle">Tus comentarios:</td>
	<td align="left" valign="middle"><label><textarea name="comentario"></textarea></label></td>
	</tr>
    <tr>
	<td></td>
	<td align="left" valign="middle"><label><input type="submit" name="Submit" value="Enviar" /></label></td>
	</tr>
	</table>
	
	</form>
Y este es el código del archivo formulario.php:

Código:
<?php 
if (strstr($_GET["email"], "@")) { //comprueba que el string insertado en email contenga el simbolo '@'
if !($_GET["comentario"]=""){ //Comprueba que se haiga insertado algun comentario
$sfrom=$_GET["email"]; //cuenta que envia el mail
$sdestino="[email protected]"; //cuenta que recibira el mail
$ssubject=$_GET["asunto"]; //el asunto del mensaje
if ($ssubject=""){$ssubject="Formulario de Envio";} //Asiga un asinto en caso de no haber alguno
$shtml="Nick: ".$_GET["nombre"]."\nComentario:\n\n".$_GET["comentario"]."\n\n\n"; //el nick y el comentario
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n"; //Algunos datos adicionales
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n"; //Manda la version de PHP
$sheader=$sheader."Mime-Version: 1.0\n"; 
$sheader=$sheader."Content-Type: text/html"; 
mail($sdestino,$ssubject,$shtml,$sheader); //Finalmente, manda el correo
?>
<div align="center">
<p>
Su mensaje ha sido enviado correctamente.<br>Nos comunicaremos con usted lo antes posible.</p>
<p>Usted sera redireccionado en unos segundos<br>Si tiene problemas al ser es redireccionado, haga click 
<a href=\"javascript:history.back()\">Aqui</a>
</div>
<?php
}else{?><div align="center"><strong>Debes insertar un comentario</strong></div><?php
}
}else{?><div align="center"><strong>Debes insertar una direcci&oacute;n email valida</strong></div><?php
}
?> 

<script LANGUAGE="JavaScript">
var pagina="contacto.php"
function redireccionar() 
{
location.href=pagina
} 
setTimeout ("redireccionar()", 1000);
</script>
He usado como base el codigo que ofrecen aqui en el Faq, y lo he modificado un poco.

Lo que sucede, es que me manda a la pagina formulario.php, que esta toda en blanco (se supone que deberia aparecer un mensaje) y además no me manda el correo :(

¿Que puede estar pasando?

Última edición por hey_alan; 09/04/2007 a las 23:59
  #2 (permalink)  
Antiguo 10/04/2007, 01:37
 
Fecha de Ingreso: abril-2006
Ubicación: Colombia
Mensajes: 648
Antigüedad: 13 años, 8 meses
Puntos: 3
Re: Mi propio script para formularios - Porque no funciona?

Hola

Bueno, y ya revisaste que todos los datos lleguen correctamente, pon a imprimir el arreglo del $_GET con print_r($_GET); en la pagina formulario.php, si no te imprime nada tal vez estas usando una versión antigua de php, entonces imprime print_r($HTTP_GET_VARS); y si esta si te imprime valores entonces todo lo que tienes con $_GET lo debes cambiar a $HTTP_GET_VARS, revisa eso a ver si tal vez algo de eso es, de lo contrario entonces tal vez es algo que esta atascando el codigo y se te paso por alto. pon los print_r como primeras lineas dentro de <?php ?>
__________________
Suerte.
_______________________________
"La vida es el principio de la muerte".
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:33.