PROBLEMA CON UPLOAD PHP

bongoix
08 de Enero del 2010
TENGO UN FORMULARIO "FORMULARIO.PHP"
-----------------------------------------------------------------
al ingresar los datos correspondientes y al adjuntar un archivo, los datos me llegan a un correo determinado. y a la vez la pagina se va a "ENVIAR.PHP", quisiera poner validaciones a mis campos de formulario para que al presionar boton enviar no me destine a "ENVIAR.PHP" sin antes de completar mi formulario.

"FORMULARIO.PHP"
----------------------------------------------------------------
<form action='enviar.php' method='post' enctype="multipart/form-data" name='formulario' target='_self' class="back01" id='formulario'>
<div align="center">
<table width="800" height="79" border="0" align="center" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
</table>
<table width="556" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="294" valign="top" bgcolor="#FFFFFF" class="cajita1">Envienos su consulta y a la brevedad le responderemos su requerimiento.<br>
<br>
<TABLE WIDTH=515 BORDER=0 CELLPADDING=0 CELLSPACING=0>
<TR>
<TD width="79" valign="top" bgcolor="#FFFFFF"><font color="#660066" size="2" face="Arial, Helvetica, sans-serif" class="cajitafrei">Nombre: </font></TD>
<TD colspan="2" valign="top" bgcolor="#FFFFFF"><input type='text' name='Nombre' id='Nombre'></TD>
</TR>
<TR>
<TD valign="top" bgcolor="#FFFFFF" class="cajitafrei"><font color="#660066" size="2" face="Arial, Helvetica, sans-serif" class="cajitafrei">Telefono:</font></TD>
<TD colspan="2" valign="top" bgcolor="#FFFFFF"><font color="#660066" size="2" face="Arial, Helvetica, sans-serif"><strong>
<input type='text' name='Fono' id='Fono'>
</strong></font></TD>
</TR>
<TR>
<TD valign="top" bgcolor="#FFFFFF"><font color="#660066" size="2" face="Arial, Helvetica, sans-serif" class="cajitafrei">Email:</font></TD>
<TD colspan="2" valign="top" bgcolor="#FFFFFF"><font color="#660066" size="2" face="Arial, Helvetica, sans-serif"><strong>
<input type='text' name='Email' id='email'>
</strong></font></TD>
</TR>
<TR>
<TD valign="top" bgcolor="#FFFFFF"><font color="#660066" size="2" face="Arial, Helvetica, sans-serif"><strong> </strong></font></TD>
<TD colspan="2" valign="top" bgcolor="#FFFFFF">&nbsp;</TD>
</TR>
<TR>
<TD valign="top" bgcolor="#FFFFFF" class="cajitafrei"><font color="#660066" size="2" face="Arial, Helvetica, sans-serif" class="cajitafrei">Consulta:</font></TD>
<TD colspan="2" valign="top" bgcolor="#FFFFFF"><label>
<textarea name="Consulta" id="Consulta" cols="22" rows="5"></textarea>
</label></TD>
</TR>
<TR>
<TD height="18" valign="top" bgcolor="#FFFFFF">&nbsp;</TD>
<TD colspan="2" valign="top" bgcolor="#FFFFFF">&nbsp;</TD>
</TR>
<TR>
<TD height="36" valign="top" bgcolor="#FFFFFF">&nbsp;</TD>
<TD width="114" valign="top" bgcolor="#FFFFFF"><input type='submit' value='Enviar'>
<br>
<br></TD>
<TD width="322" valign="top" bgcolor="#FFFFFF"><input type='reset' value='Borrar'></TD>
</TR>
</TABLE>
<br></td>
</tr>
</table>
<br>
<table width="556" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="137" valign="top" bgcolor="#FFFFFF" class="cajita1"><span class="solonegro">Postula</span> para ser parte de nuestro team env&iacute;anos tu c.v
<TABLE WIDTH=515 BORDER=0 CELLPADDING=0 CELLSPACING=0>
<TR>
<TD width="111" height="59" valign="top" bgcolor="#FFFFFF"><font color="#660066" size="2" face="Arial, Helvetica, sans-serif" class="cajitafrei">Adjuntar C.V</font></TD>
<TD width="404" valign="top" bgcolor="#FFFFFF"><input type='file' name='archivo2' id='archivo2'>
<br>
<br>
<br>
<input type='submit' value='Enviar'>
<br></TD>
</TR>
</TABLE>
<br></td>
</tr>
</table>
</div>
</form>
---------------------------------------------------


ENVIAR.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.0n";
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-1n";
$sCabeceraTexto .= "Content-transfer-encoding: 7BITn";

$sTexto = $sCabeceraTexto.$sTexto;
}
if ($vAdjunto["size"] > 0)
{
$sAdjuntos .= "nn----_Separador-de-mensajes_--n";
$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name="".$vAdjunto["name"].""n";;
$sAdjuntos .= "Content-Transfer-Encoding: BASE64n";
$sAdjuntos .= "Content-disposition: attachment;filename="".$vAdjunto["name"].""nn";

$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."nn----_Separador-de-mensajes_----n";
return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));
}

//cambiar aqui el email
if (form_mail("[email protected]", $_POST[Nombre],
"Datos de swv.cl:nn", $_POST[email]))
echo ".";
?>


favor ayuda! gracias.

carmarri
08 de Enero del 2010
Para validar los datos se suele utilizar javascript:

en el tag del form añade onSubmit="return false" y luego en lugar de:

<input type='submit' value='Enviar'>

puede hacer algo así:
<input type='button' value='Enviar' onClick='CheckForm()'>
<script>

function CheckForm()
{

// comprobación de los campos del form...
//...

//envía el form si todo está bien
document.formulario.Submit();

}
</script>


Un saludo
-------------------------------------------------------
Diseño web Valencia, Xatcom.net
http://www.xatcom.net