Como hacer formulario php?

Iniciado por illo05, 19 Mayo 2010, 21:10 PM

0 Miembros y 2 Visitantes están viendo este tema.

illo05

Hola a todos, estoy haciendo un formulario para una página web y no consigo que la información pase de la primera función y al final poder recibirla en mi correo. A ver si alguien me puede ayudar...

N4X

que tal un code y una info más detallada :huh:   :silbar:

Mr. Crowley

Si, mejor con de codigo. Pero imagino que seria algo asi:

Formulario para completar
Pagina que toma los datos (POST o GET) y los envia por email

O esta llamando al mismo archivo para que haga el envio??
Mi blog personal: www.calirojas.com

illo05

seria algo asi:

<?php
    function escribir($nombre,$email,$telefono,$texto)
{
?>
    <table style="text-align: left; width: 100%;" border="0"
     cellpadding="0" cellspacing="0">
     <tbody class="texto_contenido">
                                 <tr>
                                   <form action="contacto.php"
method="post"></form>
                                   <td style="width: 50%;"
align="right">Nombre
y apellidos:&nbsp;&nbsp;</td>
                                   <td style="width: 50%;"><input
name="nombre" size="30" type="text"></td>
                                 </tr>
                                 <tr>
                                   <td style="width: 50%;"
align="right">E-mail:&nbsp;&nbsp;</td>
                                   <td style="width: 50%;"><input
name="email" size="30" type="text"></td>
                                 </tr>
                                 <tr>
                                   <td style="width: 50%;"
align="right">Tel&eacute;fono de contacto
(opcional):&nbsp;&nbsp;</td>
                                   <td style="width: 50%;"><input
name="telefono" size="15" type="text"></td>
                                 </tr>
                                 <tr>
                                   <td style="width: 50%;"
align="right">Comentario:&nbsp;&nbsp;</td>
                                   <td style="width: 50%;"><textarea
name="texto" cols="30" rows="5"></textarea></td>
                                 </tr>
                                 <tr>
                                   <td style="width: 50%;"
align="right"></td>
                                   <td style="width: 50%;"><input
name="enviar" value="Enviar" type="submit"> <input
name="restablecer" value="Restablecer" type="reset"></td>
                                 </tr>
                               </tbody>
                             </table>
<?php }
function chequear($nombre,$email,$telefono,$texto)
{
if(!$nombre)
{
echo"No ha introducido el nombre";
escribir($nombre,$email,$telefono,$texto);
}
elseif(!$email)
{
echo"No ha introducido el email";
escribir($nombre,$email,$telefono,$texto);
}
elseif(!$texto)
{
echo"No ha escrito nada en el comentario";
escribir($nombre,$email,$telefono,$texto);
}
else
{
if(!eregi("^([a-z]|ñ|[A-Z]|Ñ)+( +([a-z]|ñ|[A-Z]|Ñ)+)?+$",$nombre))
{
echo"No ha introducido bien el nombre";
escribir($nombre,$email,$telefono,$texto);
}
else
resultado($nombre,$email,$telefono,$texto);
}
}
function resultado($nombre,$email,$telefono,$texto)
{
$todo="Formulario página web.\n";
$todo="Nombre: ".$nombre." \n";
$todo="E-mail: ".$email."\n";
$todo="Telefono: ".$telefono." \n";
$todo="Comentario: ".$texto." \n";
mail("?????@???.es","Formulario recibido","$todo");
echo"Gracias. El mensaje se ha enviado correctamente.";
}
if(!$_POST['enviar'])
escribir($_POST['nombre'],$_POST['email'],$_POST['telefono'],$_POST['texto']);
else
chequear($_POST['nombre'],$_POST['email'],$_POST['telefono'],$_POST['texto']);
?>

Mr. Crowley

Estimad@ illo05... todo ese codigo lo tiene en un solo archivo?
Mi blog personal: www.calirojas.com

illo05

Si. Sería para incluir un formulario en una página web.

Mr. Crowley

Ya veo, entonces esta llamando al mismo script.
El formulario le esta llegando vacio o ni siquiera le llega?? Es que me da pereza poner
el code.. jejeje
Mi blog personal: www.calirojas.com

illo05

No llega siquiera... al dar a enviar no hace nada

Mr. Crowley

Realmente solo heb usado ese metodo un par de veces, y la verdad es que personalmente no me agrada. Muchas veces es mas facil separarlo en dos archivos:

1. Formulario
En este archivo colocar la tabla con el formulario. En el ACTION poner el nombre del archivo que valida los datos (2. Validacion). Asi, al hacer clic lo va a redireccionar.

2. Validacion
En este otro archivo poner el codigo que toma las variables por POST o GET y hacer todas las validaciones o comprobaciones necesarias.

Creo que de esta forma podria salir de su problema y de paso se ordena un poco  ;D
Aunque tambien puede modificar ese codigo que tiene para "repararlo".
Mi blog personal: www.calirojas.com

illo05

Tienes razón si, voy a hacerlo así. Me costaba verlo que no llevo mucho con esto. Muchas gracias por todo.