Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-06-2007
Avatar de Coco_jac
Coco_jac Coco_jac is offline
Miembro
 
Registrado: mar 2005
Ubicación: Lima Peru
Posts: 338
Poder: 20
Coco_jac Va por buen camino
Impedir regresar a pagina anterior

Hola amigos, mi problema es este, tengo una ventana de logeo al cual direcciona a la pagina pricipal, si el usuario es valido claro. bueno estando aqui como bloqueo que pueda regresar a la pagina de logeo.

Gracias por su ayuda.
Responder Con Cita
  #2  
Antiguo 23-06-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

¿Para qué complicarse? Se me hace complicado lograr lo que dices, o, cuando menos, farragoso. ¿Qué hay de malo en que el usuario vuelva a la página de "logeo"? Cuando alguna vez lo he necesitado, en el Script PHP que muestra el formulario para que los usuarios se autentiquen, antes de nada, hago un "logout" del usuario. De modo que siempre que se entre en la página de "logeo" el usuario se vea forzado a autenticarse.

Aunque así explicado pueda parecer complicado, no lo es en absoluto, y, desde luego, se me hace más sencillo y natural que tratar de impedir al usuario que refrese a la página que le salga de las narices... me temo, como he dicho, que no debe haber una forma sencilla de conseguir esto, y mucho menos si el usuario se emperra en hacerlo... pero no sé qué sentido tiene, por otro lado.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 23-06-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Tampoco yo estoy seguro de que sea buena idea tratar de evitar regresar a una página. Pero algo puede intentarse:

login.php

Código PHP:
<?php
session_start
();

if (isset(
$_SESSION['usuario']))
{
  
header('location: indice.php');
  exit;
}

if (
$_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['usuario']) && !empty($_POST['usuario']))
{
  
$_SESSION['usuario'] = $_POST['usuario'];
  
header('location: indice.php');
  exit;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<title> Inicio de sesión </title>
</head>
<body>
<h1>Inicio de sesión</h1>

<form method='post' action='<?php echo $_SERVER['PHP_SELF'];?>'>
Usuario <input type='text' name='usuario'>
<input type='submit'>
</form>
</body>
</html>
indice.php

Código PHP:
<?php
session_start
();

if (!isset(
$_SESSION['usuario']))
{
  
header('location: login.php');
  exit;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<title> Página principal </title>
</head>
<body>
<h1>Página principal</h1>

<p>
Hola <?php echo $_SESSION['usuario']?>
</body>
</html>
La página para iniciar sesión (login.php) mira si ya se inició una, y de ser así, redirige a la página principal (indice.php). Ésta, a su vez, verifica que se hay iniciado sesión. De no ser así, manda a la de inicio. O sea, una a otra se pasan la bolita.

// Saludos

Última edición por roman fecha: 23-06-2007 a las 00:40:14.
Responder Con Cita
  #4  
Antiguo 04-07-2007
Avatar de Coco_jac
Coco_jac Coco_jac is offline
Miembro
 
Registrado: mar 2005
Ubicación: Lima Peru
Posts: 338
Poder: 20
Coco_jac Va por buen camino
Hola gracias por responder, me habia olvidado de este Post,disculpen por el anterior post, entendi mal lo que un amigo necesitaba. realmente era esto lo que necesitaba :
se tiene una ventana de logeo el cual una vez realizado el logeo nos direccione a una ventana principal de consultas, todo bien hasta hasta aqui. Lo correcto es poder regresar a la ventana de logeo, como ustedes mencionan, cosa que es normal, pero estando nuevamante en la ventana de logeo lo q no es correcto es al dar click en SIGUIENTE esta nos direccione nuevamente a la ventana principal si antes habernos logeado. Eh tratado de destruir la sesiones existentes al cargar la ventana de logeo cosa que funciona la primera vez que carga, pero en la segunda no entra en esta parte del codigo.
Como puedo hacer que habiendo regresando a dicha ventana el boton de adenlante quede desabilitado o se borre el historial hasta el momento navegado o que puedo hacer para solucionar este problema.

Espero sus comentarios, muchas gracias.
Responder Con Cita
  #5  
Antiguo 04-07-2007
semptrion semptrion is offline
Miembro
 
Registrado: abr 2007
Posts: 112
Poder: 18
semptrion Va por buen camino
Vamos por partes...

Premisa:
Cuando programamos para Internet, desconocemos cuál es el cliente que está interactuando con nuestro servidor.

Esta premisa nos permite ver un poco más allá del browser tradicional, en el que existen botones de adelnate y atrás, javascript o cookies.

De hecho, el protocolo lo único que requiere es texto plano. Y texto plano puede generar cualquier software.

Por tanto, no es correcto vivir pendiente del comportamiento de un cliente en particular. Si encuentras la maña para borrar el historial del IE, seguramente que esa maña no funcionará en el Mozilla; y si logras hacerlo también para el Mozilla, seguramente no funcionará en Konqueror y así, así.

Si un usuario no se encuentra autenticado en el sistema, no debería importar cuántas veces intente entrar a una página restringida, NO DEBERÍA PODER hacerlo.

En otras palabras, no se restringe sólamente la llamada, también se debe restringir el acceso

Cada uno de los programas restringidos debe tener una rutina de verificación de si el usuario está autenticado. En caso en que no esté, deben remitir el flujo del programa a la página de login.

El típico ejemplo:

Supongamos que este es el código de la página principal (donde sólo entran usuarios autenticados)
Código PHP:
<?php
include 'verificar_si_el_usuario_esta_autenticado.inc.php';

.
.
.

el resto del programa.

?>
el programa verificar_si_el_usuario_esta_autenticado.inc.php
Código PHP:
<?php

if( el usuario no est&#225; autenticado ) {
    /* debe autenticarse */
    
header'Location: login.php' );
    die();
}
?>
Como verás, se debe colocar el código de verificación de autenticación entre las primeras líneas de cada programa.

Una cosa más.

Siempre que sea enviado un formulario con método post, se debería "limpiar el buffer" del cliente para que no sea reenviado el formulario, como cuando se aprieta suficientes veces el botón de atrás.

Espero te sea útil.

Saludos
Responder Con Cita
  #6  
Antiguo 04-07-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Coco_jac
pero estando nuevamante en la ventana de logeo lo q no es correcto es al dar click en SIGUIENTE esta nos direccione nuevamente a la ventana principal si antes habernos logeado.
¿Y por qué consideras que no es correcto?

Parodiando lo que comenta semptrion

Cita:
Empezado por semptrion
Si un usuario no se encuentra autenticado en el sistema, no debería importar cuántas veces intente entrar a una página restringida, NO DEBERÍA PODER hacerlo.
yo diría:

Cita:
Si un usuario ya se encuentra autenticado en el sistema, no debería importar cuántas veces intente entrar a una página restringida, SÍ DEBERÍA PODER hacerlo.
¿Cuál es el problema? El usuario ya se identificó correctamente así que ¿qué más da lo que haga?

Yo más bien pondría un enlace en las distintas páginas, para salir de la sesión. Ese enlace llevaría a un script en donde destruyes la sesión.

// Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
volver a una página anterior y actualizar halizia HTML, Javascript y otros 5 25-04-2007 12:57:03
Regresar el numero de semana zvf OOP 2 28-11-2006 19:35:29
regresar valores Genner MS SQL Server 5 03-04-2006 13:55:43
regresar array de una función torito Varios 3 23-08-2005 16:03:35
Regresar un array a una función JorgeBec Varios 4 24-01-2005 23:01:23


La franja horaria es GMT +2. Ahora son las 18:33:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi