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.
<?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 de JuanGarciaR
1