Foros del Web » Programando para Internet » PHP »

Urgente es necesario usar switch en un formulario

Estas en el tema de Urgente es necesario usar switch en un formulario en el foro de PHP en Foros del Web. Ola soy nueva en este foro y toy aciendo un kursillo d php y stoy probando a acer formularios y tengo este codigo como ejemplo ...
  #1 (permalink)  
Antiguo 09/08/2007, 13:44
 
Fecha de Ingreso: agosto-2007
Mensajes: 2
Antigüedad: 16 años, 8 meses
Puntos: 0
Pregunta Es necesario usar una estructura switch en un formulario xa el flujo dl programa

Ola soy nueva en este foro y toy aciendo un kursillo d php y stoy probando a acer formularios y tengo este codigo como ejemplo k me venia en un manual:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>New Document</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<FORM ACTION="ejer8.php" METHOD="POST" NAME="formu">
<table width="550" cellpadding="0" cellspacing="0" height="80%" border="0" align="center">
<TR>
<TD colspan="4"><BR>FORMULARIO DE INSCRIPCI&Oacute;N</td>
</tr>
<TR>
<TD colspan="4">Introduce tus datos personales. * Los campos con asterisco son obligatorios</td>
</tr>
<TR>
<TD height="10">Nombre*: </TD><TD colspan="3"><INPUT TYPE="text" NAME="nombre"></TD>
</TR>
<TR>
<TD height="10">Apellidos*: </TD><TD colspan="3"><INPUT TYPE="text" NAME="apellidos" size="50"></TD>
</TR>
<tr>
<td>Direcci&oacute;n*:</td><td colspan="3"><input name="direccion" type="text" size="50"></td>
</tr>
<tr>
<td width="30" height="10">Poblaci&oacute;n*:</td><td><input name="poblacion" type="text"></td>
<td align="right" width="30">Provincia:</td><td><select name="provincia">
<option value="Alava">&Aacute;lava</option>
<option value="Burgos">Burgos</option>
<option value="La Rioja">La Rioja</option>
<option value="Madrid">Madrid</option>
</select></td>
</tr>
<tr>
<td width="30">C.P.:</td><td><input name="cp" type="text"></td>
<td align="right" width="30">DNI*:</td><td><input name="dni" type="text"></td>
</tr>
<tr>
<td width="30" height="10">Tel&eacute;fono*:</td><td><input name="telefono" type="text"></td>
<td align="right" width="30">Email:</td><td><input name="email" type="text"></td>
</tr>
<tr>
<td colspan="4" align="center">
<INPUT TYPE="submit" value="enviar" name="envia">
</td>
</tr>
</TABLE>
</FORM>
</body>
</html>
<?php
if(isset($_POST['nombre']))
{
if($_POST['nombre']=='' || $_POST['apellidos']=='' || $_POST['direccion']=='' || $_POST['poblacion']=='' || $_POST['telefono']=='' || $_POST['dni']=='')
echo "<br><br><h2> Los campos nombre, apellidos, direccion, poblacion, telefono y DNI son obligatorios</h2>";
else
{
$longitud=strlen($_POST['nombre']);
if($longitud < 3)
echo "<br><b> El nombre debe tener por lo menos 3 caracteres</b>";
$longitud=strlen($_POST['apellidos']);
if($longitud < 3)
echo "<br><b> Los apellidos deben tener por lo menos 3 caracteres</b>";
$longitud=strlen($_POST['direccion']);
if($longitud < 5)
echo "<br><b> La direcci&oacute;n debe tener por lo menos 5 caracteres</b>";
$longitud=strlen($_POST['poblacion']);
if($longitud < 2)
echo "<br><b> La poblaci&oacute;n debe tener por lo menos 2 caracteres</b>";
$longitud=strlen($_POST['cp']);
if($longitud !=5)
echo "<br><b> El C.P. debe tener 5 caracteres</b>";
$longitud=strlen($_POST['dni']);
if($longitud < 8)
echo "<br><b> El dni debe tener por lo menos 8 numeros</b>";
$longitud=strlen($_POST['telefono']);
if($longitud <9)
echo "<br><b> El telefono debe tener por lo menos 9 numeros</b>";
$arroba=substr_count($_POST['email'],"@") ;
$caracteres=strstr($_POST['email'],'.');
$longitud=strlen($caracteres);
if($arroba!=1 && ($longitud!=3 || $longitud!=4))
echo "<br><b> Email incorrecto </b>";
}

?>

Y serie aceptable utilizar un switch ????? alguien save sobre ste tema

Y ota kosa sobre este mismo formulario x ejemplo y kisiera k muestre x pantalla el formulario y oto k se encargue d la validacion d los datos, sabrian km se aria xa ver un ejemplo???
  #2 (permalink)  
Antiguo 10/08/2007, 01:54
 
Fecha de Ingreso: agosto-2007
Mensajes: 2
Antigüedad: 16 años, 8 meses
Puntos: 0
Urgente es necesario usar switch en un formulario

Alguien me podria decir si es necesario usar una estructura switch xa el flujo d programa, en ste ejemplo d formulario????


<html>
<head>
<title>Envíanos tus comentarios</title>
</head>
<body>
<?
if (!$HTTP_POST_VARS){
?>
<FORM ACTION="envia_form.php" METHOD="POST">
Nombre: <input type="text" name="nombre"><br>
E-mail: <input type="text" name="email"><br>
Comentarios: <textarea name="coment" cols="30" rows="6"></textarea><br>
<input type="submit" value="Enviar">
</FORM>
<?
}else{
//Hemos recibido el formulario, componemos el cuerpo del mensaje
$cuerpo = "Formulario enviado desde www.midominio.com\n";
$cuerpo .= "Nombre: ".$HTTP_POST_VARS["nombre"]."\n";
$cuerpo .= "Email: ".$HTTP_POST_VARS["email"]."\n";
$cuerpo .= "Comentarios: ".$HTTP_POST_VARS["coment"]."\n";
//Envío del formulario por e-mail.
$exito=mail("[email protected]","Formulario recibido",$cuerpo,
"From: ".$HTTP_POST_VARS["email"]."\nReply-To: ".$HTTP_POST_VARS["email"]);
//Informamos al usuario
if($exito)
echo "Los datos se han enviado correctamente. Gracias por tu participación";
else
echo "Ha ocurrido algún problema y los datos no se han enviado correctamente";
}
?>
</body>
</html>
  #3 (permalink)  
Antiguo 10/08/2007, 08:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Urgente es necesario usar switch en un formulario

Para que quieres utilizar un switch? Que es lo que tratas de hacer?

Saludos.

PD Porfavor no dupliques temas.
  #4 (permalink)  
Antiguo 10/08/2007, 09:50
 
Fecha de Ingreso: enero-2007
Ubicación: Buenos Aires, ARG
Mensajes: 71
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Urgente es necesario usar switch en un formulario

Bueno si no entendi mal lo q vos preguntas es si se puede usar un switch en esta parte:

Código PHP:
...
$longitud=strlen($_POST['nombre']);
if(
$longitud 3)
echo 
"<br><b> El nombre debe tener por lo menos 3 caracteres</b>";
$longitud=strlen($_POST['apellidos']);
if(
$longitud 3)
echo 
"<br><b> Los apellidos deben tener por lo menos 3 caracteres</b>";
$longitud=strlen($_POST['direccion']);
if(
$longitud 5)
echo 
"<br><b> La direcci&oacute;n debe tener por lo menos 5 caracteres</b>";
$longitud=strlen($_POST['poblacion']);
if(
$longitud 2)
echo 
"<br><b> La poblaci&oacute;n debe tener por lo menos 2 caracteres</b>";
$longitud=strlen($_POST['cp']);
if(
$longitud !=5)
echo 
"<br><b> El C.P. debe tener 5 caracteres</b>";
$longitud=strlen($_POST['dni']);
if(
$longitud 8)
echo 
"<br><b> El dni debe tener por lo menos 8 numeros</b>";
$longitud=strlen($_POST['telefono']);
.... 

Si esto es lo q preguntaste a mi entender no se puede, porque??

porque la variable $longitud va cambiando.
Quizá lo q te haya confundido es que siempre usa la misma variable, pero el tema es q esa variable va cambiando con los sucesivos valores de las variables q vienen del $_POST,
O sea, quizá para q no te confundas el nombre de la variable podría cambiar, por ejemplo:

Código PHP:
...
$longitud_1=strlen($_POST['nombre']);
if(
$longitud_1 3)
echo 
"<br><b> El nombre debe tener por lo menos 3 caracteres</b>";
$longitud_2=strlen($_POST['apellidos']);
if(
$longitud_2 3)
echo 
"<br><b> Los apellidos deben tener por lo menos 3 caracteres</b>";
$longitud_3=strlen($_POST['direccion']);
if(
$longitud_3 5)
... 
Acá se ve bien q la variable q usas para el control( $longitud_x) ca cambiando a medida q tomas la longitud de cada variable q viene del $_POST

Una estructura de switch podría haber sido

Código PHP:
$longitud_1=strlen($_POST['nombre']);
switch( 
$longitu_1 ){
case 
"1":
               ............
case 
"2":
           ..................

.......


O sea como podes ver, lo hago de acuerdo a el valor de la longitud q tiene la variable $_POST['nombre']( q no sabemos cuanto es), pero el valor por más q no sepamos cuanto es "es un valor definido", y nosotros con el switch planteamos todas las posibilidades..

Intenté explicartelo, pero no se si te lo pude transmitir bien, espero q te sirva..., 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 17:58.