Ver Mensaje Individual
  #12 (permalink)  
Antiguo 09/08/2009, 15:25
Zapiko
 
Fecha de Ingreso: julio-2007
Mensajes: 115
Antigüedad: 16 años, 9 meses
Puntos: 1
Sonrisa Respuesta: Me llega el formulario vacio

Bueno cree este aporte para otro foro, no pienso decir el nombre porque ni se lo merece....espero que te ayude ;)

Bueno, muchos direis que vaya tonteria de aporte, es una funcion prestablecida por PHP, pero la considero de suma importancia, ya que, odio que cuando envie un formulario me salga el Outlook, lo considero algo muy feo en una web y si tienes la suerte de tener la funcion mail () habilitada en tu host esto queda muy bien, bueno, vamos a ello xD:

Comenzamos con un formulario normal:

Código HTML:
<html>
<head>
 <title>Funcion mail ()</title>
</head>
<body>
<form method="post" action="send.php">
<table>
 <tr>
  <td width="118">Nombre y apellidos:</td>
  <td width="200"><input name="nombre" type="text"/></td> 
 </tr>
 <tr>
  <td>Teléfono:</td><td><input name="tlf" type="text"/>
 </tr>
 <tr>
  <td>E-mail:</td><td><input  name="e-mail" type="text"/></td>
 </tr>
 <tr>
  <td>Comentario:</td><td><input  name="coment" type="text"/></td>
 </tr>
 <tr>
 <td></td><td><input name="enviar" type="submit" value="Enviar"/></td>
 </tr>
</table>
</form>
</body>
</html> 
Bueno comento el codigo, podeis ver un formulario procesado por el documento "send.php", este formulario es el que use en mi web y lo pongo por no crear otro codigo, total sirve igual, eso si acordaros de ponerles nombre ya que lo usaremos para las variables $_POST[''] xD. Seguimos con el send.php:

Código PHP:
<html>
<head>
<title>Send.php</title>
</head>
<body>
<?
$nombre
$_POST['nombre'];
$email $_POST['e-mail'];
$telefono $_POST['tlf'];
$comentario $_POST['coment'];
$titulo"Web trabajo";

$headers "MIME-Version: 1.0 \r\n";  
$headers .= "Content-type: text/html; charset=iso-8859-1 \r\n"
$headers .= "From: $email \r\n";   
$headers .= "X-Priority: 1 \r\n";  //1 urgente 5 no urgente 3 default
$headers .= "X-MSMail-Priority: High \r\n";  

$mensaje "Nombre : ";
$mensaje .= $nombre;
$mensaje .="<br>";
$mensaje .= "Teléfono : ";
$mensaje .= $telefono;
$mensaje .="<br>";
$mensaje .= "E-mail : ";
$mensaje .= $email;
$mensaje .="<br>";
$mensaje .= "Comentario : ";
$mensaje .= $comentario;

$target"[email protected]";

if (
mail($target,$titulo,$mensaje,$headers)){
print 
"<center>Mensaje enviado correctamente</center>";}
else {
print 
"<center>Existe un fallo en el envio</center>";}
?>
</body>
</html>
Mensaje Privado (Conectado)


[Aporte] Funcion Mail ()
« : Julio 21, 2009, 06:11:12 »
Responder con citaCitar Modificar mensajeModificar Eliminar mensajeEliminar
Bueno, muchos direis que vaya tonteria de aporte, es una funcion prestablecida por PHP, pero la considero de suma importancia, ya que, odio que cuando envie un formulario me salga el Outlook, lo considero algo muy feo en una web y si tienes la suerte de tener la funcion mail () habilitada en tu host esto queda muy bien, bueno, vamos a ello xD:

Comenzamos con un formulario normal:

Código:

<html>
<head>
<title>Funcion mail ()</title>
</head>
<body>
<form method="post" action="send.php">
<table>
<tr>
<td width="118">Nombre y apellidos:</td>
<td width="200"><input name="nombre" type="text"/></td>
</tr>
<tr>
<td>Teléfono:</td><td><input name="tlf" type="text"/>
</tr>
<tr>
<td>E-mail:</td><td><input name="e-mail" type="text"/></td>
</tr>
<tr>
<td>Comentario:</td><td><input name="coment" type="text"/></td>
</tr>
<tr>
<td></td><td><input name="enviar" type="submit" value="Enviar"/></td>
</tr>
</table>
</form>
</body>
</html>


Bueno comento el codigo, podeis ver un formulario procesado por el documento "send.php", este formulario es el que use en mi web y lo pongo por no crear otro codigo, total sirve igual, eso si acordaros de ponerles nombre ya que lo usaremos para las variables $_POST[''] xD. Seguimos con el send.php:

Código:

<html>
<head>
<title>Send.php</title>
</head>
<body>
<?
$nombre= $_POST['nombre'];
$email = $_POST['e-mail'];
$telefono = $_POST['tlf'];
$comentario = $_POST['coment'];
$titulo= "Web trabajo";

$headers = "MIME-Version: 1.0 \r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1 \r\n";
$headers .= "From: $email \r\n";
$headers .= "X-Priority: 1 \r\n"; //1 urgente 5 no urgente 3 default
$headers .= "X-MSMail-Priority: High \r\n";

$mensaje = "Nombre : ";
$mensaje .= $nombre;
$mensaje .="<br>";
$mensaje .= "Teléfono : ";
$mensaje .= $telefono;
$mensaje .="<br>";
$mensaje .= "E-mail : ";
$mensaje .= $email;
$mensaje .="<br>";
$mensaje .= "Comentario : ";
$mensaje .= $comentario;

$target= "[email protected]";

if (mail($target,$titulo,$mensaje,$headers)){
print "<center>Mensaje enviado correctamente</center>";}
else {
print "<center>Existe un fallo en el envio</center>";}
?>
</body>
</html>


Bueno la funcion mail () tiene la siguiente estructura: mail (direccion a la que va dirigida, Asunto, Mensaje, cabeceras); estas cabeceras quizas es lo mas dificil ya que varia dependiendo de la configuración del host, pero para la mayoria os servira los headers de este codigo.
la sintaxis es la siguiente, la funcion mail () devuelve true si es correcto el envio, por lo que imprime "Mensaje enviado correctamente" si no "Existe un fallo en el envio".

Este codigo expuesto es el mas sencillo, os ire añadiendo como validar el mensaje para que sea mas seguro y como protegerlo de posibles ataques.

Espero que os sirva mi aporte!!!!;) Sonreir