Obligara a rellenar los campos en php

Estoy haciendo un formulario en la web y quiero que cuao lo rellenen se aobligatorio quetodos los campos estén ocupados, he conseguido un para de cosillas pero pe manda sin obligar a rellenar, este es uno de ellos:
<?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 (form_mail("[email protected]", $_POST[asunto],
"Los datos introducidos en el formulario son:\n\n", $_POST[email]))
if (form_mail("[email protected]", $_POST[asunto],
"Los datos introducidos en el formulario son:\n\n", $_POST[email]))
echo "Su formulario ha sido enviado con exito.<br>
En 3 segundos será redirigido a la página principal si no quiere esperar pulse <a href='http://www.cdpatina.com'>aquí</a><br><br><br><br><strong>Gracias por su confianza</strong>";
?>
En este otro también lo he conseguido pero me dice al final que no se ha podido mandar, pero lo ha mandado, no se si en alguon de esllos ha echo algo mal por favor corregirme
<?php
# Guardo en la variable los campos del form
$nombre = $_POST['nombre'];
$mail = $_POST['mail'];
$asunto = $_POST['asunto'];
# Verifico que los campos se hallan completado
if ($nombre == "" AND $mail == "" AND $asunto == "" AND $mensaje == "") {
  # Muestro mensaje de error
  echo 'Complete el formulario';
}
# Caso contrario, procedo a enviar el email
else{
  $header = 'From: ' . $mail . " \r\n";
  $header .= "X-Mailer: PHP/" . Phpversion() . " \r\n";
  $header .= "Mime-Version: 1.0 \r\n";
  $header .= "Content-Type: text/plain";
  $mensaje = "Este mensaje fue enviado por " . $nombre .  " \r\n";
  $mensaje .= "Su e-mail es: " . $mail . " \r\n";
  $mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
  $mensaje .= "Enviado el " . Date('d/m/Y', time());
  $para = '[email protected]';
  $asunto = 'Contacto desde Pagina Web';
  $para = '[email protected]';
  $asunto = 'Contacto desde Pagina Web';
  if (mail($para, $asunto, utf8_decode($mensaje), $header)) {
    echo 'El mensaje fue enviado!';
  }
  else {
    echo 'Error inesperado. El mensaje no se envio.';
  }
}
?>
el formulario a rellenar que se ve en pantalla es:
<form name='formulario' id='formulario' method='post' action='enviar.php' target='_self' enctype="multipart/form-data">
Nombre:<br>
<input type='text' name='Nombre' id='Nombre'size="30"><br>
E-mail:<br>
<input type='text' name='email' id='email'size="30"><br>
Asunto:<br>
<input type='text' name='asunto' id='asunto' size="30"/><br>
Mensaje:<br>
<textarea name="mensaje" cols="40" rows="10" id="mensaje" ></textarea><br>
<p>Adjuntar archivo:<br> <input type='file'size="30" name='archivo1' id='archivo1'></p>
<input type='submit' value='Enviar'>
</form></div>
Se me olvidaba no me manda ningún archivo.
Gracias por adelantado ayudarme a corregirlo, soy novato en esto de php y se me da un poco mal.
Respuesta
1
Lo que necesitas es un validador de campos...
Te dejo uno muy bueno, yo lo utilizo en mis proyectos :)
Saludos!
<SCRIPT LANGUAGE="JavaScript">
<!--VALIDA FORMULARIO
function checkFields1() {
missinginfo = "";
if (document.form1.nombres.value == "") {
missinginfo += "\n     - Nombres ";
}
if (document.form1.apellidos.value == "") {
missinginfo += "\n     - Apellidos";
}
if (document.form1.fono.value == "") {
missinginfo += "\n     - Ingresar Número de contacto";
}
if (document.form1.email.value.indexOf("@") == -1 || document.form1.email.value.indexOf(".") == -1 || document.form1.email.value == "") {
missinginfo += "\n     - Ingrese E-Mail correcto";
}
if (document.form1.comentario.value == "") {
missinginfo += "\n     - Comentario";
}
if (missinginfo != "") {
missinginfo ="_____________________________\n" +
"Debe rellenar los campos:\n" +
missinginfo + "\n_____________________________" +
"\nPor favor inténtelo de nuevo";
alert(missinginfo);
return false;
}
else return true;
}
// Fin
</script>
Te explico un if:
if (document.form1.comentario.value == "") {
missinginfo += "\n     - Comentario";
}
if(document.form1(FORM1 es el nombre del formulario).comentario(este es el nombre del campo o input).value == ""(aqui comparo si el campo comentario del formulario form1 esta vacio o no)){
missinginfo += "\n     - Comentario"; ////////si esta vacio el campo, le digo a la funcion que muestre este atributo como no completo
}
¿Cómo utilizar esta función?
Muy simple, te lo explico en código...
<form id="form1" name="form1" method="post" action="enviar_consulta.php" onsubmit="return checkFields1();">

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas