Tengo un problema con el formulario; me funciona "correctamente" y recibo archivos, pero me valida en Chrome pero no en Explorer, o sea que si se envía sin datos lo recibo tal cual; aún con campos requeridos.
Otro error que tengo es que recibo el archivo adjunto "abierto" y a su vez con el clip de archivo adjunto.
Me podrían echar una mano ?.
Gracias,
adjunto el código:
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!-- saved from url=(0022)http://www.midominio.com/ --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>Formulario</title> <meta name="language" content="es"/> <meta name="distribution" content="global"/> <meta name="rating" content="general"/> <meta name="robots" content="noindex,nofollow"/> <meta http-equiv="pragma" content ="no-cache"/> <meta http-equiv="imagetoolbar" content="no"/> <link rel=stylesheet type="text/css"/> <link rel="stylesheet" type="text/css" href="./css/defaultConcur.css"/> <link rel="stylesheet" type="text/css" href="./css/componentform.css"/> <script type src="./js/modernizr.custom.js"></script> <!--[if lt IE 7]> <script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE7.js" type="text/javascript"> </script> <![endif]--> <!--[if IE]> <![endif]--> <!--[if IE 6]> <![endif]--> <!--Librería jQuery (Funciona con jQuery 1.4 y superiores) --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <!--Plugin jQuery.html5form--> <script src="http://html5form.googlecode.com/svn/trunk/jquery.html5form-1.5-min.js"></script> </head> <body> <div class="container"> <h1>Formulario</h1> <form class='cbp-mc-form' id='formulario' method='post' action='./Files/formConcurso.php' target='_self' enctype="multipart/form-data"> <div class="cbp-mc-column"> <label for="asunto">Asunto</label> <input type='text' name='asunto' id='asunto' placeholder="Info, Otros." autocomplete="" required tabindex="1"/> <label for="email">Email</label> <input type="email" name="email" placeholder="[email protected]" autocomplete="off" required tabindex="3"/> <label></label> <div class="ColumnaCheckBox"> <input type="checkbox" autocomplete="off" required style="width: 20px; height: 23px"/></div><div class="ColumnaCentral"> Al enviar este formulario aceptas nuestra <a href="../../PrivacidadOtros/privacidad.html" onclick="window.open('../../PrivacidadOtros/privacidad.html','mywindow', 'location=no,status=1,scrollbars=1,width=500,height=500'); return false;"><ins> Política de privacidad</ins></a> y las <a href="#" onclick="window.open('../../privacidad.html','mywindow', 'location=no,status=1,scrollbars=1,width=500,height=500'); return false;"><ins> Bases del concurso</ins>.</a> </div> </div> <div class="cbp-mc-column"> <label for="cat_name">Nombre</label> <input name="nombre" type="text" autocomplete="off" required placeholder="Nombre" tabindex="2"/> <label for="archivo1">Adjuntar archivo<sub> (máx. 2,5 mb)</sub> <imput type="hidden" name="max_file_size" value="2500000"> <input type='file' name='archivo1' id='archivo1'/> </label> </div> <div class="cbp-mc-column"> <label for="comments">Comentario</label> <textarea name="mensaje" cols="40" rows="6" placeholder="Mensaje" autocomplete="off" required tabindex="4"></textarea> <label> <h2> <img alt="Volver" src="./Images/atras.png" height="75px" width="60px" onclick="history.back(-1)">Volver</h2> </label> </div> <div class="cbp-mc-submit-wrap"><input class="cbp-mc-submit" type="submit" value="Enviar"/> </div> </form> </div> </body></html>
Código PHP:
<?php
function form_mail($sPara, $sAsunto, $sTexto, $sDe)
{
$bHayFicheros = 0;
$sCabeceraTexto = "";
$sAdjuntos = "";
if ($sDe)$sCabeceras = "From:".$sDe."\n";
else $sCabeceras = "";
$sCabeceras .= "MIME-version: 1.0\n";
foreach ($_POST as $sNombre => $sValor)
$sTexto = $sTexto."\n".$sNombre." = ".$sValor;
foreach ($_FILES as $vAdjunto)
{
if ($bHayFicheros == 0)
{
$bHayFicheros = 1;
$sCabeceras .= "Content-type: multipart/mixed;";
$sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";
$sCabeceraTexto = "----_Separador-de-mensajes_--\n";
$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";
$sTexto = $sCabeceraTexto.$sTexto;
}
if ($vAdjunto["size"] > 0)
{
$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";
$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;
$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";
$oFichero = fopen($vAdjunto["tmp_name"], 'r');
$sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));
$sAdjuntos .= chunk_split(base64_encode($sContenido));
fclose($oFichero);
}
}
if ($bHayFicheros)
$sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";
return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));
}
if ($_FILES["archivo1"]["size"]>2500000){
die ("El archivo es demasiado grande.");
}
//cambiar aqui el email
if (form_mail("[email protected]", $_POST[asunto],
"Mensaje desde la web:\n\n", $_POST[email]))
echo "
";
header('Location: http://midominio.com/');
?>