Foros del Web » Programando para Internet » PHP »

Ayuda con sesiones.-

Estas en el tema de Ayuda con sesiones.- en el foro de PHP en Foros del Web. Buenas estoy armando una sección para un sitio, la cual debe ser restringida a los usuarios. Al principio me las arreglé con $_SERVER['HTTP_REFERER'] y andaba, ...
  #1 (permalink)  
Antiguo 22/12/2010, 18:14
 
Fecha de Ingreso: agosto-2010
Mensajes: 100
Antigüedad: 13 años, 7 meses
Puntos: 2
Ayuda con sesiones.-

Buenas estoy armando una sección para un sitio, la cual debe ser restringida a los usuarios.
Al principio me las arreglé con $_SERVER['HTTP_REFERER'] y andaba, pero leyendo por google vi comentarios que decían que no era del todo seguro. No sé si me podrían orientar en el por qué de esas afirmaciones.
Pero el tema en cuestión, es que me pus ea ver el tema de las sesiones en PHP.
En un principio logré que el sitio pueda ser accesado mediante registro, el problema fue en que no puedo lograr que la sesion cierre luego del logout.
En estos momentos estoy probando mi código en mi localhost.
En fin, los código son los siguientes:

- check.php:
Código PHP:
<?php
session_start
();
header('Content-Type: text/html; charset=utf-8');
$user $_POST["user_input"];
$passwd $_POST["pass_input"];
$passwd "'".$passwd."'";

$servidor "localhost";
$usuario "root";
$clave "lalalala";
$basedatos "colegio";

$conect mysql_connect($servidor,$usuario,$clave);

mysql_select_db($basedatos$conect) OR die ("Error en la conexión. Intente más tarde.-");

$query "select * from usuarios u where ((u.dni = $user) and (u.passwd LIKE $passwd))";

$resultado mysql_query($query);

$row mysql_fetch_array ($resultado);

if (
mysql_num_rows($resultado) <> 1){
    echo 
"Usuario o contraseña no válidos:<br>Solicitud rechazada!.";
}else{
  echo 
"Usuario válido:<br>Redirigiendo...";
  
$_SESSION["estado"] = "logeado";
  
header ("Location: http://localhost/private/privado.php");}
?>
- privado.php
Código PHP:
<?php
session_start
();
if ((isset(
$_SESSION["estado"])) || ($_SESSION["estado"] <> "logeado")){
  echo 
"Estas intentando entrar a un sitio restringido!.<br>";
}else{
  echo 
"Bienvenido.";
}
?>
<form id="quit" name="quit" method="post" action="quit.php"><input type="submit" name="enter" id="enter" value="cerrar" /></form>
-quit.php:
Código PHP:
<?php
session_start
();
session_unset();
session_destroy();
echo 
"chau";
?>
Bueno esos son los códigos.
Agradecería cualquier ayuda.
Un saludo.
  #2 (permalink)  
Antiguo 22/12/2010, 18:29
 
Fecha de Ingreso: agosto-2010
Mensajes: 100
Antigüedad: 13 años, 7 meses
Puntos: 2
Respuesta: Ayuda con sesiones.-

Bueno, creo que lo resolví.
En el archivo privado.php, deje solo la segunda condición al primer if:
Código PHP:
if ($_SESSION["estado"] <> "logeado"){
todo lo demas

Voy a ver que tal anda a partir de ahora.
Gracias.
De todas formas cualquier ayuda para mejorar el código es bienvenida.
  #3 (permalink)  
Antiguo 22/12/2010, 18:36
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Ayuda con sesiones.-

t etengo varias dudas, laprimera no te hace el logout?? y estas destruyendo la session?? bueno una de las razones pudiera ser esta
Código PHP:
Ver original
  1. if ((isset($_SESSION["estado"])) || ($_SESSION["estado"] <> "logeado")){
en ese if indicas si existe la variable de sesion estado O estado diferente de logueado, aca estas diciendo que de ser verdadero alguna de las dos entra, entonces deberias utilizar Y no o.

Otra cosa esto
Código PHP:
Ver original
  1. else{
  2.   echo "Usuario válido:<br>Redirigiendo...";
  3.   $_SESSION["estado"] = "logeado";
  4.   header ("Location: http://localhost/private/privado.php");}
no te da un error de cabecera?? porque estas imprimiendo o enviando una salida antes de la redireccion y cuando pasa esto el navegador te indica el siguiente error
Cita:
Warning: Cannot modify header information - headers already sent by (output started at...
seguro que no te da este error?? un saludo y espero mi comentario te sirva
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #4 (permalink)  
Antiguo 22/12/2010, 18:46
 
Fecha de Ingreso: agosto-2010
Mensajes: 100
Antigüedad: 13 años, 7 meses
Puntos: 2
Respuesta: Ayuda con sesiones.-

Carlitos, gracias por la respuesta.
Te comento por partes, con respecto al if por suerte me dí cuenta y salió andando jeje.
Y con lo otro, a decir verdad no me marca ningún error/warning.

Volviendo al tema de las sesiones, hago una pregunta al público. Si el usuario X inicia su sesion desde su casa, luego sin cerrar la sesion se va a tomar mates a lo de su amigo Z y le usurpa la computadora e ingresa a su cuenta del sitio...que hace la funcion session? cierra la cuenta de la casa de X o le dice que no puede entrar desde la compu de Z ??.
O eso corre por cuenta del programador ?.
Saludos.
  #5 (permalink)  
Antiguo 22/12/2010, 18:51
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Ayuda con sesiones.-

interesante que esas lines no te den error y te redirija bien lo mas seguro es que no tengas los reportes de errores activados pero bue, y con respecto a tu duda deberias de colocar que para que un usuario pueda cambiar de session deba cerrar primero la misma, ya que el otro usuario la dejo abierta no piensas tu??
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Etiquetas: sesiones
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 18:07.