Foros del Web » Programando para Internet » PHP »

Respetar orden de mensajes

Estas en el tema de Respetar orden de mensajes en el foro de PHP en Foros del Web. Holas amigos un saludos a todos: Mi consulta es la siguiente tengo un formulario de ingresos y estoy haciendo ciertas validaciones, pero el problema esta ...
  #1 (permalink)  
Antiguo 24/08/2006, 11:36
 
Fecha de Ingreso: septiembre-2003
Ubicación: lima
Mensajes: 378
Antigüedad: 14 años, 3 meses
Puntos: 0
Respetar orden de mensajes

Holas amigos un saludos a todos:

Mi consulta es la siguiente tengo un formulario de ingresos y estoy haciendo ciertas validaciones, pero el problema esta en que no me respeta el orden de los errores y hay uno que no se ejecuta pese a la condicion.

Como ejemplo doy solo 2 campitos en esta direccion:

http://www.juanhh.com/formulario/formulario.php

los errores que emito son estos:

if (isset($_GET["error_mensaje"])){
$num_error[0]="Ingrese un Nombre y un Correo";
$num_error[1]="Ingrese por favor su Nombre";
$num_error[2]="Ingrese por favor su Email";
$num_error[3]="El correo que ingreso es invalido";
$num_error[4]="Ingrese un Nombre<br>El correo es invalido";
$error=$_GET['error_mensaje'];
}

y la condicion que le doy para que cada mensaje se ejecute es esto:

if (empty($nombre) and empty($mail)){
header("Location: formulario.php?error_mensaje=0");
exit();
}

if (empty($nombre)){
header("Location: formulario.php?error_mensaje=1");
exit();
}

if (empty($mail)){
header("Location: formulario.php?error_mensaje=2");
exit();
}

if (!eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$", $_POST['mail'])){
header("Location: formulario.php?error_mensaje=3");
exit();
}

if (empty($nombre) and !eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$", $_POST['mail'])){
header("Location: formulario.php?error_mensaje=4");
exit();
}

Hay condiciones que no se respeta o quizas los estoy empleando mal el orden o la logica, los errores los saques de la validacion de javascript que hace el dreamweaver es asi como lo estoy empleando pero validando en php.

Gracias por tomarse el tiempo de leer este mensaje y por su ayuda prestada
  #2 (permalink)  
Antiguo 24/08/2006, 11:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Código PHP:
if (isset($_GET["error_mensaje"])){ 
$num_error[0]="Ingrese un Nombre y un Correo";
$num_error[1]="Ingrese por favor su Nombre";
$num_error[2]="Ingrese por favor su Email";
$num_error[3]="El correo que ingreso es invalido";
$num_error[4]="Ingrese un Nombre<br>El correo es invalido";
$error=$_GET['error_mensaje'];


Supongo que despues de eso .. harás algo tipo:

Código PHP:
echo $num_error[$error]; 
No sé si antes de usar
Código PHP:
if (empty($nombre) and empty($mail)){ 
tendrás alguna asignación tipo:
Código PHP:
$nombre=$_POST['nombre']; 
y lo mismo con otras variables .. (Para no estar "deduciendo cosas" por favor para próximas veces .. coloca todo tu código completo!!!).

El caso es que debes usar los arrays supergloblales ($_GET, $_POST .. ) directos en la medida de lo posible.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 24/08/2006, 12:24
 
Fecha de Ingreso: septiembre-2003
Ubicación: lima
Mensajes: 378
Antigüedad: 14 años, 3 meses
Puntos: 0
Gracias y disculpa:

Si es cierto que imprimo los errores de esta manera:

echo $num_error[$error];

y antes de usar if (empty($nombre) and empty($mail)){ tengo esto:

session_start();
$_SESSION['nombre']=$_POST['nombre'];
$_SESSION['mail']=$_POST['mail'];

Eso hago para q los valores q ingresan al enviar los datos no se pierdan se mantengan.

luego en el value de cada campo pongo esto:

<? if (isset($_SESSION['nombre'])){ echo $_SESSION['nombre'];} ?>

Mi problema esta cuando no ingreso el nombre e ingreso un mail invalido se deberia ejecutar el "error 4" pero se ejecuta el "error 1"

Muy agradecido por tu ayuda
  #4 (permalink)  
Antiguo 24/08/2006, 12:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
mm .. En tu código haces algo tipo:
Código PHP:
if (!eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$"$_POST['mail'])){
header("Location: formulario.php?error_mensaje=3");
exit();
}

if (empty(
$nombre) and !eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$"$_POST['mail'])){
header("Location: formulario.php?error_mensaje=4");
exit();

validas el e-mail y el e-mail más el nombre ...

Insisto que quedaría más claro que expusieras todo el código involucrado tal cual lo usas ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 24/08/2006, 13:46
 
Fecha de Ingreso: septiembre-2003
Ubicación: lima
Mensajes: 378
Antigüedad: 14 años, 3 meses
Puntos: 0
Gracias cluster por tomarte el tiempo de revisar los mensajes ya solucione mi problema solo era cuestion de mover el orden de los mensajes. Gracias

Otra cosita:

Para no perder los valores que ingresa el usuario hago esto en un text

<input size="20" name="City_of_origin" tabindex="10" value="<? if (isset($_SESSION['City_of_origin'])){ echo $_SESSION['City_of_origin'];} ?>">

Pero como haria para un combo:

<select size="1" name="Number_of_Adults" tabindex="12">
<option selected>01</option>
<option>02</option>
<option>03</option>
<option>04</option>
<option>05</option>
<select>

Gracias nuevamente
  #6 (permalink)  
Antiguo 24/08/2006, 15:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por juanpro Ver Mensaje
Gracias cluster por tomarte el tiempo de revisar los mensajes ya solucione mi problema solo era cuestion de mover el orden de los mensajes. Gracias

Otra cosita:

Para no perder los valores que ingresa el usuario hago esto en un text

<input size="20" name="City_of_origin" tabindex="10" value="<? if (isset($_SESSION['City_of_origin'])){ echo $_SESSION['City_of_origin'];} ?>">

Pero como haria para un combo:

<select size="1" name="Number_of_Adults" tabindex="12">
<option selected>01</option>
<option>02</option>
<option>03</option>
<option>04</option>
<option>05</option>
<select>

Gracias nuevamente
Intenta no mezclar temas diferentes en un mismo mensaje.


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 16:11.