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...
que tal un code y una info más detallada :huh: :silbar:
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??
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: </td>
<td style="width: 50%;"><input
name="nombre" size="30" type="text"></td>
</tr>
<tr>
<td style="width: 50%;"
align="right">E-mail: </td>
<td style="width: 50%;"><input
name="email" size="30" type="text"></td>
</tr>
<tr>
<td style="width: 50%;"
align="right">Teléfono de contacto
(opcional): </td>
<td style="width: 50%;"><input
name="telefono" size="15" type="text"></td>
</tr>
<tr>
<td style="width: 50%;"
align="right">Comentario: </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']);
?>
Estimad@ illo05... todo ese codigo lo tiene en un solo archivo?
Si. Sería para incluir un formulario en una página web.
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
No llega siquiera... al dar a enviar no hace nada
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".
Tienes razón si, voy a hacerlo así. Me costaba verlo que no llevo mucho con esto. Muchas gracias por todo.