Foros del Web » Programando para Internet » PHP »

ventanas de diálogo con php?

Estas en el tema de ventanas de diálogo con php? en el foro de PHP en Foros del Web. Hola amigos, me gustaría saber cómo mostrar en pantalla las ventanitas de diálogo típicas de Windows. Por ejemplo, para este caso: a la hora de ...
  #1 (permalink)  
Antiguo 23/05/2005, 05:46
 
Fecha de Ingreso: septiembre-2003
Mensajes: 320
Antigüedad: 14 años, 3 meses
Puntos: 3
ventanas de diálogo con php?

Hola amigos, me gustaría saber cómo mostrar en pantalla las ventanitas de diálogo típicas de Windows. Por ejemplo, para este caso: a la hora de loguearse un usuario, si introduce un nick o un password incorrectos, que no corresponden con lo de la base de datos, salga la ventanita avisando de que es incorrecto (y el consiguiente botón de "Aceptar"), para que vuelva a intentarlo.
Gracias.
Por cierto, no sé si a esas ventanas se las denomina exactamente de "diálogo".
  #2 (permalink)  
Antiguo 23/05/2005, 05:53
Avatar de caerolus  
Fecha de Ingreso: agosto-2004
Ubicación: Madrid, España
Mensajes: 280
Antigüedad: 13 años, 3 meses
Puntos: 1
Sí, se las podría llamar diálogo. En cuanto a lo que dices...vamos por partes.
Me supongo que la comprobación de si los datos introducidos son correctos, la harás en php en una página a la que se vaya después de que el cliente pulse un botón, y desde aquí ya hacer lo que sea.
Si es así, lo siento pero no le veo utilidad a lo que pides, pues al fin y al cabo se carga otra página. Para mí resulta mejor ver el mensaje en una página antes que tener que darle a un botoncito en un diálogo, que siempre es más molesto.
En cualquier caso, eso lo tienes que hacer con javascript con esta sentencia:

alert("Oye, que has puesto mal los datos");

Eso puedes ponerlo, por ejemplo, en el evento onLoad del body de la página que debe indicar el error.
__________________
Mi página personal: Julián Urbano
  #3 (permalink)  
Antiguo 24/05/2005, 11:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Recuerda que con PHP "generas" ese HTML/javascript/etc .. así que según tu condición PHP así generas tu código HTML/javascript ..

Por ejemplo
Código PHP:
<?
if ($validacion){
?>
<html>
<html>
</html>
<body onLoad="alert('blablalbla')>
</body>
</html>
<?
}else{
  
// nose ...
}
?>
Si la generación de tu "condición" incluye crear una "página" completa HTML según un caso u otro .. así será .. pero debes "componer" finalmente una página HTML correcta y completa (con tu "javascript" si corresponde).

Un saludo,
  #4 (permalink)  
Antiguo 24/05/2005, 12:24
 
Fecha de Ingreso: septiembre-2003
Mensajes: 320
Antigüedad: 14 años, 3 meses
Puntos: 3
Perfecto! Muchas gracias, Caerolus y CLuster! Voy a echar mano de las dos respuestas. Me refiero a que estoy completamente de acuerdo con Caerolus en que cuantos menos botoncillos se pulsen, mejor, y por otra parte, en algún otro lado usaré la solución proporcionada por Cluster.

Aun así, me ha surgido otra duda: Como estoy con una página de login, si uso la opción de que aparezca la ventana de diálogo, ¿cómo hacer para que si el login es incorrecto, se mantenga en la página? (es que se va a la página donde hace la comprobación, y claro. ésta aparece en blanco).

He probado colocando un "header("Location index.php") justo tras lo que me dijo Cluster, pero entonces lo que pasa es que sí que se sigue en la página (index), pero el mensaje del diálogo no aparece. También he probado con un par de maneras en Javascript (location.ref y window.location) y sigue ocurriendo lo mismo: que se sigue en index pero el diálogo no aparece... ¿Cómo hacer para que se mantenga en index y además salga la ventanita de diálogo?

Muchas gracias.
  #5 (permalink)  
Antiguo 24/05/2005, 12:31
 
Fecha de Ingreso: septiembre-2003
Mensajes: 320
Antigüedad: 14 años, 3 meses
Puntos: 3
Simplemente añadir que lo que he probado tiene esta pinta:

<html>
<body onLoad="alert('El ID del Agente ingresado no existe')">
<script language="JavaScript">
window.self.location="index.php";
</script>
</body>
</html>

Y nada, como digo, se mantiene en index pero el alert no sale...
  #6 (permalink)  
Antiguo 24/05/2005, 12:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En principio .. recarga de página o redirección a otra vas a tener (olvidando por el momento técnicas más complejas con Ajax/y afines).

Sería ideal que pongas el código que usas (los scripts que compongan tu proceso de "login" y validación) .. no me hago la idea de lo que estás haciendo (por mi parte).

Pero .. de todas formas .. Lo ideal sería un proceso tipo:

login.php
un formulario HTML común y corriente con tu petición usuario/contraseña

valida.php
el formualrio .. su action lo apuntas a este. Aquí validas a tu usuario ..

pagina_protegida.php
una página protegida ... cualquiera (aquí validas tus variables de sesión .. etc que uses para autentificar a tu usuario)

Con ese esquema .. de valida.php si no pasa la validación .. redireccionarías hacia login.php .. con el detalle de pasarle una variable de control para indicar a "login.php" que la validación no ha sido correcta. Ejemplo:

login.php
<html>
<head>
</head>
<body>
Tu formulario HTML ....
<?
// despues de tu formulario </form> y resto de página pero antes de cerrar el </body>
if (isset($_GET['msg'])){
?>
<script languaje="javascript">
alert("Login incorrecto");
</script>
}
<?
}
?>
</body>
</html>
[/php]

Mejor quedaría controlando el tema desde el <body> con un evento onLoad tipo

Código PHP:
<body <? if (isset($_GET['msg'])){ echo "onLoad=\"alert('blablabla')\"" ?>>
Es decir .. si hay error .. se genera:
<body onLoad="alert('blablabla')">
y si no hay error:
<body >

Será en tu "valida.php" donde hagas algo tipo:

Código PHP:
if ($error){
  
header ("Location: login.php?msg=error");
  exit;

Si no pasa tu validación .. redireccionas automáticamente hacia el login.php .. valida.php no ha de tener nada de "HTML" ahí .. no corresponde (sino tendrás problemas con header()).

Un saludo,
  #7 (permalink)  
Antiguo 25/05/2005, 05:30
 
Fecha de Ingreso: septiembre-2003
Mensajes: 320
Antigüedad: 14 años, 3 meses
Puntos: 3
Perfecto! Muchísimas gracias!
Ahora sí que funciona como yo quiero... a ver lo que tardo en volver a poner otro post por aquí con algún nuevo problema... Lo dicho, ¡muy, muy agradecido!
  #8 (permalink)  
Antiguo 25/05/2005, 06:38
 
Fecha de Ingreso: septiembre-2003
Mensajes: 320
Antigüedad: 14 años, 3 meses
Puntos: 3
Bueno.... no estaba tan perfecto como yo pensaba... Me estoy volviendo loco. El problema ahora es que solo funciona correctamente si la primera vez que se ingresa el usuario es incorrecta (entonces sale la alerta y ademas se mantiene en la página index con la estructura de 3 frames q contiene, estando el formulario de login en el frame izquierdo). Si se vuelve a intentar y se hace login correcto, todo ok, se va a una nueva página, privada.
Ahora bien, si inicialmente se introduce el login (y password) correctos, la página privada a la que se quiere acceder, aparece en el frame izquierdo, en lugar de la pantalla entera, como debería ser...
El código que he puesto, siguiendo los anteriores post, es:

Esta es la parte correspondiente al frame izquierdo (llamado indice), que contiene em formulario para el LOGIN de la página principal (index), que llama a "login_agente.php", que es donde se valida al usuario (en este caso, al agente)
-----------------------------------------------------------------
<body
<? if (isset($_GET['mens'])) {
echo "onLoad=\"alert('$_GET[mens]')\">";
echo "<form name=\"form2\" method=\"post\" action=\"login_agente.php\" target = \"_top\">";
}
else {
echo "><form name=\"form2\" method=\"post\" action=\"login_agente.php\">";
} ?>
-------------------------------------------------------------------
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:51.