tengo dos archivos uno llamado contacto.php que contiene un formulario de contacto que envia los parametros:
nombre
asunto
mensaje
AL archivo enviar.php cuyo codigo es el siguiente:
Código :
<?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)); } //cambiar aqui el email $recipiente= \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"[email protected]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"; if (form_mail($recipiente, $_POST[asunto], \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Los datos introducidos en el formulario son:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", $_POST[email])) ?>
Todo funciona correctamente, agradezco que hayan aportado este código, ya que lo saque de aqui precisamente..... El FOrmulario funciona perfecto.
El problema es:
Que dentro de mi pagina contacto.php ... action= \"enviar.php\" . COMO PUEDO OCULTAR ESTE CODIGO PARA QUE NO SE VEA QUE EL FORMULARIO USA UN ARCHIVO PHP.
Lo que pasa es que cuando alguien ve ese codigo... y en su navegador escribe /dominio/enviar.php . EL CODIGO ME ENVIA UN CORREO VACIO AUTOMATICAMENTE AL CORREO. y quiero evitar eso...
DE QUE MANERA PUEDO HACER QUE CUANDO NO HAY MENSAJE no se envie nada de correo... de manera que cuando alguien escriba dominio/enviar.php ... SIN RECIBIR LOS PARAMETROS ... HACER QUE NO ENVIE EL CORREO.
Notas: En la pagina contacto.php tengo validado que no se envie el formulario con javascript cuando los campos estan vacios o el correo esta escrito de una forma incorrecta. ESO SI ESTA VALIDADO EN contacto.php....
PERO EL PROBLEMA ES CUANDO ABRO DIRECTAMENTE EN MI NAVEGADOR enviar.php .... NO QUIERO QUE ME ENVIE UN CORREO VACIO.
COMO PUEDO EVITAR QUE CUANDO ABRAN DIRECTAMENTE enviar.php... me envie el correo vacio?
Ayuda por favor. Les agradezco de antemano, quizas escribi mucho pero espero haber sido claro.
Un cordial saludo a todos y gracias por sus aportes....
EL codigo del formulario funciona perfectamente sientanse libres de descargarlo y probarlo si les es util, ya que lo tome y modifique de este mismo foro. Gracias !!