- Utilice la función smtp en vez de mail().
- Pasar las variables por POST en vez de por GET. El resultado final es el mismo, solo que con el método GET podemos ver los parámetros pasados ya que están codificados en la URL y por lo tanto un problema de seguridad.
- También que revise el php para dejarlo preparado para la versión php 5 y con register_globals en off.
De todo eso el cambiar el metodo POST en vez del GET que uso no creo que me de muchos problemas, pero la funcion smtp no la he usado nunca y lo de modificar el php para no usar el register_globals tampoco tengo mucha idea de como hacerlo... os dejo el codigo que empleo actualmente y si podeis me hechais un cable, o almenos me guiais un poco...
Codigo HTML:
Código :
<FORM METHOD="GET" ACTION="enviacorreo.php"> <b>Nombre:</b> <INPUT TYPE="text" NAME="nombre" SIZE="32"> <b>Dirección:</b> <INPUT TYPE="text" NAME="direccion" SIZE="65"> <b>Población:</b> <INPUT TYPE="text" NAME="poblacion" SIZE="32"> <b>E-mail:</b> <INPUT TYPE="text" NAME="email" SIZE="51"> <b>Teléfono:</b> <INPUT TYPE="text" NAME="telf" SIZE="32"> <b>Móvil:</b> <INPUT TYPE="text" NAME="movil" SIZE="32"> <b>Comentarios:</b><br> <TEXTAREA NAME="comentarios" ROWS="10" COLS="66" WRAP="soft"></TEXTAREA> <br> <INPUT TYPE="submit" VALUE="ENVIAR"> <INPUT TYPE="reset" VALUE="LIMPIAR"> </FORM>
Codigo PHP:
Código :
<? /* aqui se incializan variables de PHP */ if (phpversion() >= "4.2.0") { if ( ini_get('register_globals') != 1 ) { $supers = array('_REQUEST', '_ENV', '_SERVER', '_POST', '_GET', '_COOKIE', '_SESSION', '_FILES', '_GLOBALS' ); foreach( $supers as $__s) { if ( (isset($$__s) == true) && (is_array( $$__s) == true) ) extract( $$__s, EXTR_OVERWRITE ); } unset($supers); } } else { if ( ini_get('register_globals') != 1 ) { $supers = array('HTTP_POST_VARS', 'HTTP_GET_VARS', 'HTTP_COOKIE_VARS', 'GLOBALS', 'HTTP_SESSION_VARS', 'HTTP_SERVER_VARS', 'HTTP_ENV_VARS' ); foreach( $supers as $__s) { if ( (isset($$__s) == true) && (is_array( $$__s) == true) ) extract( $$__s, EXTR_OVERWRITE ); } unset($supers); } } if($email=="") { /* reclama si no se ha rellenado el campo email en el formulario */ echo "No ingresaste la dirección de correo electrónico"; exit(); } $respuesta="respuesta.htm"; $para ="[email protected]"; $sujeto = "Nombre Apellidos"; $encabezado = "From: $nombre <$email>"; $encabezado .= "\nReply-To: $email"; $encabezado .= "\nX-Mailer: PHP/" . phpversion(); $ip=$REMOTE_ADDR; $mensaje .= "NOMBRE: $nombre\n"; $mensaje .= "DIRECCION: $direccion\n"; $mensaje .= "POBLACION: $poblacion\n"; $mensaje .= "EMAIL: $email\n"; $mensaje .= "TELF: $telf\n"; $mensaje .= "MOVIL: $movil\n"; $mensaje .= "COMENTARIOS: $comentarios\n"; $mensaje .= "IP: $ip\n"; /* aqui se intenta enviar el correo, si no se tiene éxito se da un mensaje de error */ if(!mail($para, $sujeto, $mensaje, $encabezado)) { echo "<h1>No se pudo enviar el Mensaje</h1>"; exit(); } else { /* aqui redireccionamos a la pagina de respuesta */ echo "<meta HTTP-EQUIV='refresh' content='1;url=$respuesta'>"; } ?>
Gracias y saludos
