Foros del Web » Programando para Internet » PHP »

ayuda con solicitud de clave para acceder.

Estas en el tema de ayuda con solicitud de clave para acceder. en el foro de PHP en Foros del Web. Buenas, He leído varios post similares pero no se sí tiene solució... os cuento el problema y sí me podéis orientar os lo agradezco. En ...
  #1 (permalink)  
Antiguo 09/06/2009, 09:09
 
Fecha de Ingreso: abril-2005
Mensajes: 22
Antigüedad: 19 años
Puntos: 0
ayuda con solicitud de clave para acceder.

Buenas,

He leído varios post similares pero no se sí tiene solució... os cuento el problema y sí me podéis orientar os lo agradezco.

En una web en la que se abren casi todas las páginas con dos páginas seguidas de parámetros, necesitaría colocar una contraseña para ciertas de ellas, qeu sólo puedo identificarlas por los parámetros.
Por ello hasta donde mis limitaciones llegaban no puedo poner una contraseña a la carpeta, porque me lo pediría en todas ellas.

Lo que necesitaría sería que la primera vez que entre a una de esas páginas que podré conocer por uno de los parámetros, le pidiera contraseña (quizás redirigiéndole a otra), dándole acceso a verlo sí teclea una guardada en bdd y no sí no lo hace.
Para que no se lo pida en las sucesivas páginas restringidas que pueda ver en esa visita, necesitaría que no lo solicitara. Imagino que con una variable de sesión.

Se puede hacer?, podéis orientarme un poco?
Gracias de antemano
  #2 (permalink)  
Antiguo 09/06/2009, 10:33
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 3 meses
Puntos: 43
De acuerdo Respuesta: ayuda con solicitud de clave para acceder.

Buenas,

Lo que puedes hacer es trabajar con sessiones, entonces, como dices solo es para determinadas pag, al inicio de cada pag verificas si la var de session existe y tiene el valor que tu desees o el parametro que quieres comprobar y le das el acceso o no..


Saludos
__________________
"No te preocupes si no funciona bien. Si todo lo hiciera, no tendrías trabajo."
"El problema no es no saber, sino no saber quién sabe"
..::Con Karma se piensa mejor::..
  #3 (permalink)  
Antiguo 11/06/2009, 03:40
 
Fecha de Ingreso: abril-2005
Mensajes: 22
Antigüedad: 19 años
Puntos: 0
Respuesta: ayuda con solicitud de clave para acceder.

Creo que estoy atascadísimo... (me podéis echar un cable por favor?)

.- Tengo una primera página con un formulario que manda usuario y password
.- Va a una página de login, que comprueba (de momento no entro en comprobar a bdd, ya que soy tan torpe que no consigo pasar la variable)

<?
session_start();
session_unset(); // Limpio las variables - esto igual no es necesario

echo 'La sesión actual es: '.session_id(); //esto sólo es por comprobar

// de momento puesto a mano, la idea es que luego compruebe en una bdd el usuario y contraseña
if ($_POST['usuario'] == "prueba" && $_POST['password'] == "prueba")


{

// Si ambos datos son correctos guardamos estos datos en la sessión.

$_SESSION['logeado'] = "SI";

$_SESSION['usuario'] = "Prueba";

// le mando a la siguiente página
echo "\n <script language='javascript'>this.location='index.php?Pag ina=237'</script>";
}

else

{

// sino le redirijo de nuevo a la página del login
echo "\n <script language='javascript'>this.location='index.php?Pag ina=login_form.php'</script>";

}

}// fin else
?>

En la página que le redirijo y en todas las posteriores, la idea es colocar el session_start(), y la comprobación de sí $_SESSION no es igual a SI, en cuyo caso le mando de nuevo a la página del formulario de logado

Pero ahora sólo tengo este trozo de código, y en el echo($_SESSION['logeado']), no me saca nada.

<?
session_start();
echo 'La sesión actual es: '.session_id();
echo($_SESSION['logeado']);
?>

¿Cómo he de propagar la sesión?, pensaba que con el valor register_globals = On
ya podía usarla.

He de incluir post, get o request ¿?.

Saludos y muchas gracias...
  #4 (permalink)  
Antiguo 11/06/2009, 04:33
 
Fecha de Ingreso: junio-2009
Ubicación: Valencia
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: ayuda con solicitud de clave para acceder.

Hola pesoft,

Tal y como lo has descrito es como se hace para trabajar con la sesión, pero seguro que hay algo que se nos escapa. ¿El id de sesión que te devuelve en ambas páginas coincide? ¿Has comprobado que las sesiones se están guardando bien? Comprueba que los ficheros se crean bien en el directorio definido en php.ini

Una posible causa es que no tengas activadas las cookies en tu navegador, ya que el id de sesión se guarda en una cookie. Prueba a añadir a las URL's el session id:

Código PHP:
$url 'index.php?Pagina=login_form.php&' SID
En cuanto al código, te propongo que pruebes los siguientes cambios:

1. Haz los redireccionamientos directamente en PHP, no en JavaScript:

Código PHP:
header('Location: index.php?Pagina=login_form.php'); 
2. Si el único punto de entrada a la web es el index.php, pon la llamada a session_start() en ese fichero y quítalo del resto. Así será mucho más fácil de mantener.

Un saludo,
Carlos.
  #5 (permalink)  
Antiguo 11/06/2009, 06:35
 
Fecha de Ingreso: abril-2005
Mensajes: 22
Antigüedad: 19 años
Puntos: 0
Respuesta: ayuda con solicitud de clave para acceder.

El header no me consigo que me lo admita, no da error pero no hace nada, por eso pongo el otro código.

Respecto de las sesiones y cookies creo que está correcto, porque tengo el siguiente código en todos los sitios que requieren sean autenticados...

<?
session_start();

echo 'La sesión actual es: '.session_id();

if(isset($_COOKIE["PHPSESSID"]))
{
echo $_SESSION['data'];
echo "oohhhh";
}
else
{
echo "no cookies required!";
}
?>

Y siempre pone la misma sesión, y entra en el if de las cookies, listando el 'oohhhh', de lo que no hay rastro es del valor de data.
En la página anterior del login, poniendo el mismo echo $_SESSION['data'];, tras darle el valor, sí que lo lista.

Revisando el .ini, ha cambiado el path dónde ha de guardarlo a c:\temp, pero tras reiniciar todo sigue igual, no lista nada y tampoco veo un fichero qeu tenga el valor o la cookie.

Los valores actuales del php.ini de las sesiones que tengo son estos.
¿veis alguno mal?
[Session]
session.save_handler = files
session.save_path = "C:\Temp
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0

Viendo las faqs de session y demás, veo otro posible problema que pudiera ser que no tengo posibilidad de colocar el session.start() en la primer línea, ya que la página tiene por así decirlo una estructura inicial, que no he de tocar, pues el tema de las sesiones no es para todas las páginas.
Sí lo pongo en la primera parte del código referido a la session, pero antes, puede haber otro código php...
Esto puede ser la razón del problema?

Saludos y muuchas gracias
  #6 (permalink)  
Antiguo 11/06/2009, 07:05
 
Fecha de Ingreso: abril-2005
Mensajes: 22
Antigüedad: 19 años
Puntos: 0
Respuesta: ayuda con solicitud de clave para acceder.

Siento ser tan pesado, pero creo que puedo descartar que se trate por no poner el session.start() al principio, ya que he hecho la siguiente prueba sólo con el código siguiente:

Página del formulario


<form name="login" ACTION="login2.php" METHOD="post">

usuario<br><input type="text" name="usuario"><br>
clave<br><input type="password" name="password">
<input type=image src="c_system_config/img/botentrar.gif" align="absbottom" hspace="5" width="75" height="27" border=0>
</form>


Página del login

Código PHP:
<? session_start();
echo 
'La sesión actual es: '.session_id(); 
    if (
$_POST['usuario'] == "prueba" && $_POST['password'] == "prueba")
        {
        
$_SESSION["data"] = "SesionActiva";
        echo 
$_SESSION["data"];
        echo 
"\n <script language='javascript'>this.location='login3.php'</script>";
        }
    else
        {
        echo 
"\n <script language='javascript'>this.location='login_form.php'</script>";
    }
?>
resultado cuando introduzco los valores correctos 'prueba', 'prueba'
La sesión actual es: 9e22f3e520ebe9ca01ba0d921e0cdfdfSesionActiva

Salta a la página login3.php que tiene el siguiente código.

Código PHP:
<? session_start();

    echo 
'La sesión actual es: '.session_id(); 

if(isset(
$_COOKIE["PHPSESSID"]))
{
     echo 
$_SESSION['data'];
echo 
"oohhhh";
}
  else
{
  echo 
"no cookies required!";
}
?>
Y como resultado muestra...
La sesión actual es: 9e22f3e520ebe9ca01ba0d921e0cdfdfoohhhh

La sesión sí mantiene la misma, saca el echo 'ohhhh', pero ni rastro del data='SesionActiva', que debiera usar para ir a una u otra página.

Saludos y mil gracias
  #7 (permalink)  
Antiguo 11/06/2009, 07:17
 
Fecha de Ingreso: diciembre-2007
Mensajes: 107
Antigüedad: 16 años, 4 meses
Puntos: 4
Respuesta: ayuda con solicitud de clave para acceder.

tambien puedes usar facilmente un htaccess
  #8 (permalink)  
Antiguo 11/06/2009, 07:26
 
Fecha de Ingreso: junio-2009
Ubicación: Valencia
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: ayuda con solicitud de clave para acceder.

¿Tienes configurado PHP con la opción para que te muestre todos los errores, warnings y notice activada? Quizás nos sirva de ayuda cualquier mensaje que pueda darnos PHP...
  #9 (permalink)  
Antiguo 12/06/2009, 01:23
 
Fecha de Ingreso: abril-2005
Mensajes: 22
Antigüedad: 19 años
Puntos: 0
Respuesta: ayuda con solicitud de clave para acceder.

No tengo activados los errores, lo he solicitado a ver sí me lo permiten cambiar para ver sí sale algo, y lo pongo...

Gracia por la ayuda
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 21:13.