Foros del Web » Programando para Internet » PHP »

requerir campos obligatoriamente en un formulario php

Estas en el tema de requerir campos obligatoriamente en un formulario php en el foro de PHP en Foros del Web. un saludo!... soy novato en php y recien hago un formulario pero me gustaria q ciertos campos de este formulario fueran obligatorios... este es el ...
  #1 (permalink)  
Antiguo 23/06/2008, 19:47
 
Fecha de Ingreso: junio-2008
Mensajes: 3
Antigüedad: 15 años, 10 meses
Puntos: 0
requerir campos obligatoriamente en un formulario php

un saludo!... soy novato en php y recien hago un formulario pero me gustaria q ciertos campos de este formulario fueran obligatorios... este es el codigo de mi fomulario:
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
<head> 
    <title>Reservacion</title>

<style type="text/css">
<!--
.Estilo1 {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 14px;
}
-->
</style> 
</head> 

<body background="fondo2.jpg" text="#111111" topmargin="10" leftmargin="0" rightmargin="0" bottommargin="0">

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="600" id="AutoNumber1" align="center">
  <tr>
    <td height="40" align="right"><a id="ancla1" /><img src="reservaciones.gif" border="0" width="600" height="24"></td>
  </tr>
  </table>

<? 
if (!$HTTP_POST_VARS){ 
?> 
<table width="650" border="0" align="center" cellspacing="4">
  <tr> 
    <td width="650"><div align="justify" class="Estilo1">Para hacer tu reservación, por favor rellena el siguiente formulario.</td></tr>  
  <tr>
</table>
 
<form action="reservaciones.php" method=post>
<table width="600" border="0" align="center" cellspacing="4">
   <tr> 
    <td width="150" align="center">Nombre:</td>    
    <td width="434"><input type=text name="nombre" size=30></td></tr> 
<tr>
    <td width="150" align="center">Apellido:</td>   
    <td width="434"><input type=text name="apellido" size=30></td></tr> 
<tr>
    <td width="150" align="center">Telefono:</td>   
    <td width="434"><input type=text name="tel" size=20> </td></tr>
<tr>
    <td width="150" align="center">Email:</td>       
    <td width="434"><input type=text name="email" size=40></td></tr></table> 

<table width="600" border="0" align="center" cellspacing="4">
  <tr> 
    <td width="93" align="right">Dia:</td>
    <td width="100" align="right"><select name="dia"> 
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option> 
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option> 
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option> 
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option> 
<option value="19">19</option> 
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option> 
<option value="24">24</option> 
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option> 
<option value="30">30</option> 
<option value="31">31</option>
</select></td>
    <td width="90" align="center">Mes:</td> 
    <td width="100" align="center"><select name="mes"> 
<option value="Enero">Enero</option>
<option value="Febrero">Febrero</option>
<option value="Marzo">Marzo</option> 
<option value="Abril">Abril</option>
<option value="Mayo">Mayo</option>
<option value="Junio" selected>Junio</option>
<option value="Julio">Julio</option>
<option value="Agosto">Agosto</option>
<option value="Septiembre">Septiembre</option>
<option value="Octubre">Octubre</option>
<option value="Noviembre">Noviembre</option>
<option value="Diciembre">Dicembre</option>
</select></td>
    <td width="80" align="center">Hora:</td> 
    <td width="100" align="center"><select name="hora"> 
<option value="10:00">10:00</option>
<option value="11:00">11:00</option>
<option value="12:00">12:00</option> 
<option value="13:00">13:00</option>
<option value="14:00">14:00</option>
<option value="15:00">15:00</option>
<option value="16:00">16:00</option>
<option value="17:00">17:00</option>
<option value="18:00">18:00</option>
<option value="19:00">19:00</option>
<option value="20:00">20:00</option>
<option value="21:00">21:00</option>
<option value="22:00">22:00</option>
</select></td></tr></table>

<table width="600" border="0" align="center" cellspacing="4">
  <tr>
    <td width="200" align="center">Reservacion para:</td> 
	<td width="400"><select name="personas"> 
<option value="1 a 2">1 a 2</option>
<option value="2 a 5">2 a 5</option>
<option value="5 a 10">5 a 10</option> 
</select>&nbsp;personas</td></tr>
<tr> 
    <td width="200" align="center">Comentarios:</td> 
	<td width="400"><textarea name="coment" cols=32 rows=6></textarea></td></tr>
<tr> 
    <td width="200" align="center"><input type=submit value="Enviar"></td>
    <td width="200" align="center"><input type=reset value="Borrar Datos"></td> 
  </tr>
</table>
</form></div><? 
}else{ 
    //Estoy recibiendo el formulario, compongo el cuerpo 
    $cuerpo = "Formulario enviado\n"; 
    $cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
    $cuerpo .= "Apellido: " . $HTTP_POST_VARS["apellido"] . "\n";
    $cuerpo .= "Telefono: " . $HTTP_POST_VARS["tel"] . "\n";   
    $cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
    $cuerpo .= "Dia: " . $HTTP_POST_VARS["dia"] . "\n";
    $cuerpo .= "Mes: " . $HTTP_POST_VARS["mes"] . "\n"; 
    $cuerpo .= "Hora: " . $HTTP_POST_VARS["hora"] . "\n"; 
    $cuerpo .= "Para: " . $HTTP_POST_VARS["personas"] . "\n"; 
    $cuerpo .= "Comentarios: " . $HTTP_POST_VARS["coment"] . "\n"; 

    //mando el correo... 
    mail("[email protected]","Reservacion",$cuerpo); 

    //doy las gracias por el envío 
    echo "&nbsp;&nbsp;&nbsp;&nbsp;Gracias por rellenar el formulario, se ha enviado con éxito."; 
} 
?> 
</body> 
</html>
y creo el codigo para requerir un campo obligatoriamente seria asi:

if (!isset($_POST['nombre']) && $_POST['nombre'] == '') {
exit('Por favor, ingrese su Nombre.');
}

pero donde va el if? si pudieran ayudarme estaria muy agradecido.... y de antemano muchas gracias
  #2 (permalink)  
Antiguo 23/06/2008, 21:38
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 21 años, 8 meses
Puntos: 4
Respuesta: requerir campos obligatoriamente en un formulario php

Cita:
Iniciado por adidastdk Ver Mensaje
y creo el codigo para requerir un campo obligatoriamente seria asi:

if (!isset($_POST['nombre']) && $_POST['nombre'] == '') {
exit('Por favor, ingrese su Nombre.');
}

pero donde va el if? si pudieran ayudarme estaria muy agradecido.... y de antemano muchas gracias
Hum... primero un consejo, la funcion exit(); es deasiado tosca, esta hecha para paradas de emergencia o seguridad, no te vendria mal comenzar estructurando un poco... te sugiero la siguiente estructura::

archivo.php
Código PHP:
<?
 $mensaje
="";
 
// verificar la llegada de datos $_POST
 
if( isset($_POST['Enviar'])) {
    if(
$_POST['nombre']<>'') {
    
//anida if() si deseas cada cual q no cumpla 
    //un requisito como campo obligatorio etc 
   //que deje su error en $mensaje;
   // cuando verifique todos los requisitos que enve el email y haga un
   
header("Location: gracias.htm");
   exit();
   } else {
     
$mensaje "error nombre es obligatorio";
   }
 } else {
   
$mensaje "alguna invitacion a escribir en el formulario"
 
}
?>
<html>
aca va todo el website
<?
// aca lo bueno
 
if($mensaje=="") { echo "<div class=errormsg>$mensaje</div>"; }
?>
<form> ... 
 el form!!
  <input type=text name="nombre" value="<?=$_POST['nombre'];?>" size=30>
  <input type=text name="apellido" value="<?=$_POST['apellido'];?>" size=30>
</form>

...
</html>
Como ves, de esa manera la mayor parte del proceso esta al inicio del archivo valida los campos y si todo es correcto reenvia a una pagina de gracias luego de enviar el email, si hay problemas, deja un mensaje de error el cual sera mostrado mas abajo junto al formulario.

Bueno al ejemplo le faltan muchas cosas pero no quiero marearte, para comenzar basta.
__________________
_________________________
La computadora nació para resolver problemas que antes no existían
  #3 (permalink)  
Antiguo 23/06/2008, 22:37
 
Fecha de Ingreso: junio-2008
Mensajes: 3
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: requerir campos obligatoriamente en un formulario php

hola muchas gracias por tomarte tu tiempo!!!!..... pues e intentado lo q me dices pero nose bien como acoplarlo al formato q ya tengo deberas q si lo intente guiandome por como me dices pero a veces soy muy tapado... como lo podria acoplar? por tu ayuda tu time y tu paciencia muchas gracias de antemano.
  #4 (permalink)  
Antiguo 24/06/2008, 05:59
Avatar de PedroRodas  
Fecha de Ingreso: noviembre-2005
Ubicación: Cádiz
Mensajes: 393
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: requerir campos obligatoriamente en un formulario php

Hola adidastdk se si la forma que te voy a dar es la mas correcta o no, pero funciona:

El esquema de tu archivo debe ser:

1.- Se han enviado los datos? ( accion submit)

Si.- Son correctos?

Si.- Mensaje de envio correcto
No.- Se muestra el formulario con un preguntas if en cada campo obligatorio del formulario. seria algo asi como
Código PHP:
if (! $passwordcorrecto){mensaje de que no esta bien
No.- Muestra el formulario tal como debe de aparecer al cargar pagina por primera vez.

Notas:

- Todos las variables que guardaran el valor de los campos obligatorios debes establecerlas a true antes de preguntar si se han enviado los datos para evitar errores.

- Cuando haces la pregunta de si los campos oblgatorios se han rellenado hazlo asi:
Código PHP:
 if($_POST['contacto']==""){$contactocorrecto=false;}
 if(
$_POST['email']==""){$emailcorrecto=false;}
 if(
$_POST['telefono']==""){$telefonocorrecto=false;}
 if(
$_POST['modelo']=="- Selecciona -"){$modelocorrecto=false;}
 
//if($_POST['color']==""){$colorcorrecto=false;}

 
 
if ($contactocorrecto && $emailcorrecto && $telefonocorrecto && $modelocorrecto
__________________
Genial concierto de Roger Waters, Pink Floyd siguen vivos!!!
  #5 (permalink)  
Antiguo 24/06/2008, 11:16
 
Fecha de Ingreso: junio-2008
Mensajes: 3
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: requerir campos obligatoriamente en un formulario php

bueno muchas gracias pedrorodas por tu tiempo y por ayudarme... pero mi problema esq no se como adaptar esto q me dices en el codigo de mi pagina si pudieras ayudarme desde ya gracias.
  #6 (permalink)  
Antiguo 24/06/2008, 12:18
Avatar de _cx
_cx
 
Fecha de Ingreso: diciembre-2007
Ubicación: Montevideo, Uruguay
Mensajes: 70
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: requerir campos obligatoriamente en un formulario php

te recomiendo que pruebes éste Javascript, si bien no es validación del lado del servidor, esta bueno y es lindo a la vista.

saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:36.