Comunidad de diseño web y desarrollo en internet online

problemas con formulario php

Citar            
MensajeEscrito el 23 Ene 2014 07:38 pm
AYUUUUDAAA ,,, TENGO SERIOS PROBLEMAS CON EL FORMULARIO DE CONTACTO QUE HE CREADO PARA UN SITIO WEB

Los correos me llevan sin remitente y sin el contenido del formulario
CODIGO HTML

Código HTML :

<form name="form1" method="post" action="send.php">
    <table width="691" border="0">
      <tr>
        <td height="27" colspan="4"><strong>Solicitud inscripción para matricula</strong></td>
        </tr>
      <tr>
        <td width="186"><label for="textfield2">Nombre apoderado</label></td>
        <td width="487" colspan="3"><input name="textfield" type="text" id="textfield2" size="50"></td>
        </tr>
      <tr>
        <td height="17">Mail</td>
        <td colspan="3"><input name="textfield2" type="text" id="textfield4" size="50"></td>
        </tr>
      <tr>
        <td height="19"><label for="textfield14">Cedula identidad</label></td>
        <td colspan="3"><input name="textfield3" type="text" id="textfield5" size="50"></td>
        </tr>
      <tr>
        <td height="22"><label for="textarea">Mensaje</label></td>
        <td colspan="3"><textarea name="textarea" id="textarea"></textarea></td>
      </tr>
      <tr>
        
        </tr>
      <tr>
        <td><p>&nbsp;</p></td>
        <td colspan="3" align="left" valign="top"><input type="submit" name="button" id="button" value="Enviar"></td>
      </tr>
    </table>
  </form>

CODIGO PHP

Código PHP :

<?php
$nombre_apoderado = $_POST['nombre'];
$mail  = $_POST['mail'];
$cedula_identidad = $_POST['cedula identidad'];
$mensaje = $_POST['mensaje'];


// Definir el correo de destino:
$dest = "[email protected]"; 


// Estas son cabeceras que se usan para evitar que el correo llegue a SPAM:
$headers = "From: $nombre $email\r\n";
$headers .= "X-Mailer: PHP5\n";
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";


// Aqui definimos el asunto y armamos el cuerpo del mensaje
$asunto = "$Contacto desde sitio web, para inscripción matriculas";

$cuerpo = "<strong>Nombre del apoderado:</strong> ".$nombre_apoderado."<br>";
$cuerpo .= "<strong>Mail:</strong> ".$mail."<br>";
$cuerpo .= "<strong>cedula identidad:</strong> ".$cedula_identidad."<br>";
$cuerpo .= "<strong>Mensaje:</strong> ".$mensaje;




    mail($dest,$asunto,$cuerpo,$headers); //ENVIAR!


echo 'Responderemos su mail a la brevedad, gracias por preferirnos';

?>

Por meick

0 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Ene 2014 11:50 pm
tus input esan mal nombrados

el atributilo name es tu error

un ejemplo sencillo:

<input type="text" name="campoChamo" id="campoChamo">

se recupera con

$_POST["campoChamo"] ó $_GET["campoChamo"]


Saludos.

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

firefox
Citar            
MensajeEscrito el 24 Ene 2014 12:44 pm
No uses la función mail(), mejor usa phpmailer.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 24 Ene 2014 03:11 pm
Meick:

Si tu campo lleva en name el valor textfield2, entonces tu variable $_POST se llama igual. No esperes que adivine que textfield2 es por ejemplo el campo mail. Luego entonces, si cambias el name a mail, entonces tu variable $_POST funcionará correctamente.

DriverOp: Sería genial que le explicarás la razón del porque le aconsejas no usar mail, como que es más productivo para todos. ;)

Saludos.

Por Aoyama

BOFH

6224 de clabLevel

6 tutoriales
12 articulos

Genero:Masculino   Anime Bloggers Bastard Operators From Hell

Webdesigner & Developer, en mis ratos libres bebo café por litros.

firefox
Citar            
MensajeEscrito el 24 Ene 2014 04:58 pm
Aoyama:
Con gusto.

Sucede que la función mail() simplemente no tiene ningún control de seguridad, ninguno.

El ejemplo perfecto es este formulario de contacto que se presenta en este tema. Simplemente poniendo en el mail del mensaje (variable $mail en el código) "[email protected]%0ACc:[email protected],%0ABcc:[email protected]" ya se está enviando un correo a donde no debería. En este caso se agrega otra cabecera al correo, el campo CC.

PHPMailer evita esto porque cada dirección debe agregarse en el lugar correcto y si no es así, el mensaje no se envía (esta entre otras ventajas, como que devuelve un completo informe de error y no solo un "false" en caso que no se pudo enviar el mensaje).

Pero por otro lado y no solo se limita al uso de la función mail() sino a todo dato que venga del cliente: Nunca confíes en los datos que te proporciona el usuario.

En el tema que nos ocupa ninguno de los datos recibidos por POST están validados de ninguna manera. No se controla que donde se espera una dirección de correo electrónico haya realmente una dirección de correo electrónico (o haya algo en primer lugar). No se controla que donde se espera un nombre haya realmente un nombre. Etc...

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.