Foros del Web » Programando para Internet » PHP »

Restringir acceso a mi site (Por favor)

Estas en el tema de Restringir acceso a mi site (Por favor) en el foro de PHP en Foros del Web. Hola. Cómo puedo hacer para controlar el acceso de usuarios a mi página, de manera eficiente. ¿Me sirven las sesiones?. De ser así. Alguien me ...
  #1 (permalink)  
Antiguo 05/02/2003, 13:38
 
Fecha de Ingreso: julio-2002
Mensajes: 219
Antigüedad: 21 años, 9 meses
Puntos: 0
Restringir acceso a mi site (Por favor)

Hola.

Cómo puedo hacer para controlar el acceso de usuarios a mi página, de manera eficiente.

¿Me sirven las sesiones?.
De ser así. Alguien me podría explicar bien el manejo de sesiones, ya que he leido las FAQ's, los manuales, incluso el de php.net. Y todavía no me queda claro.

Yo tengo una pantalla inicial de registro, para que el usuario introduzca LOGIN Y PASSWORD, luego verifico que los datos esten en la base de datos, si están, ¿Debo crear una sessión?, si es así, cómo acceso a ella desde otras páginas. ¿Debo llevar un contador de sesiones?¿Cómo?.

Disculpen la preguntadera, pero en verdad estoy bastante enredado.

NOTA: No quiero usar cookies, porque no todos los usuarios las van a tener habilitadas.

Gracias por la atención.

Última edición por dagui; 05/02/2003 a las 14:51
  #2 (permalink)  
Antiguo 05/02/2003, 13:53
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 21 años, 8 meses
Puntos: 4
Hola, según tu pregunta, creo que lo que quieres es la idea general porque como dices ya viste las FAQS y alli tienes un par de buenos códigos (usando sesiones y usando encabezados) la idea general es la siguiente:

pagina de inicio.-
--------------------

inicia la sesion

si no existe, inicia variable de sesion contador de intentos $cont

si contador > 3 (intentos), transfiere el control a una pagina de despedida.

si recibe datos del formulario, verifica en la base de datos que existe ese usuario y password
---> si existe ok en la BD, inicia variable de sesion $validado
------> y transfiere el control a la pagina de bienvenida.
------> fin ;)

muestra un formulario de usuario y password, los datos del formulario los envia a si mismo, es decir:
Código PHP:
<form target="<?=$PHPSELF;?>>
-fin-



pagina de bienvenida y todas las demas paginas que mantengan la seguridad.-
---------------

inicia la sesion,
si no existe la variable de sesion $validado, envia al usuario a la pagina de inicio.

html y demas a mostrar ;)

-fin-


Bueno, eso es a grandes rasgos para que entiendas una de tantas formas de hacerlo con sesiones.
__________________
_________________________
La computadora nació para resolver problemas que antes no existían
  #3 (permalink)  
Antiguo 05/02/2003, 14:33
 
Fecha de Ingreso: julio-2002
Mensajes: 219
Antigüedad: 21 años, 9 meses
Puntos: 0
Gracias temaqueja.

Voy entendiendo un poco más. Pero todavía me quedan algunas dudas.

Una vez que estoy en otra página que no es la de registro, acceso a las variables de session, sólo con $_SESSION['var'] , o debo colocar primero session_start()..

Es decir, en cada página donde quiera validar o ver si existe la session, debo hacer lo siguiente:?


session_start();
if (!isset($_SESSION['count']))
{
$_SESSION['count'] = 0;
}
else
{
$_SESSION['count']++;
}


O

Acceso a las variables sólo llamandolas.

Gracias de nuevo.
  #4 (permalink)  
Antiguo 05/02/2003, 15:14
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 21 años, 8 meses
Puntos: 4
Si, debes usar session_start() siempre al inicio de cada página asegurada.

y registrar la variable de sesion con session_register()
__________________
_________________________
La computadora nació para resolver problemas que antes no existían
  #5 (permalink)  
Antiguo 05/02/2003, 15:26
Avatar de jrvilda  
Fecha de Ingreso: febrero-2003
Ubicación: Galdakao (Bizkaia)
Mensajes: 18
Antigüedad: 21 años, 2 meses
Puntos: 0
Una opcion seria
<?php
if (eregi("funciones.php",$PHP_SELF)) {
Header("Location: index.php");
die();
}
if (!isset($PHP_AUTH_USER)) {
header('WWW-Authenticate: Basic realm="Sitio Privado"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required.';
exit;
}

$fich = file("../../contraseñas.txt");
$i=0; $validado=false;
while ($fich[$i] && !$validado) {
$campo = explode("|",$fich[$i]);
if (($PHP_AUTH_USER==$campo[0]) && ($PHP_AUTH_PW==chop($campo[1]))) $validado=true;
$i++;
}

if (!$validado) {
header('WWW-Authenticate: Basic realm="Solo para personal autorizado"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required.';
exit;
}

donde el primer bloke redirije la web si se le realiza una llamada directa, y los dos siguientes usan la autentificacion del navegador para comprobar en el fichero contraseñas.txt los usuarios

---
contraseñas.txt
---

javier|PGY345u&dfg
jesus|23465266536

---
Para que esto funcione tiene que tener tu servidor implementado como cgi o algo asi creo
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 14:12.