Hola qué tal ?
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>
Y este sería el PHP:
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/');
?>
Gracias de antemano.