Foros del Web » Programando para Internet » PHP »

Ayuda con sesiones por favor...

Estas en el tema de Ayuda con sesiones por favor... en el foro de PHP en Foros del Web. Mirate el script authentificar de Cluster, ahi puedes aprener algo, o mirate e mi web que yo tambien uso sessions. Pero el authentificator esta bastante ...
  #1 (permalink)  
Antiguo 13/02/2003, 11:06
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años, 1 mes
Puntos: 1
Mirate el script authentificar de Cluster, ahi puedes aprener algo, o mirate e mi web que yo tambien uso sessions.

Pero el authentificator esta bastante explicado





Saludos
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon
  #2 (permalink)  
Antiguo 13/02/2003, 12:35
 
Fecha de Ingreso: junio-2002
Ubicación: España
Mensajes: 348
Antigüedad: 15 años, 6 meses
Puntos: 8
Ayuda con sesiones por favor...

Me he mirado el tutorial de php.net sobre sesiones, y los de muchas otras páginas, tambien el FAQ del foro y no consigo aclararme.

En una tabla de mi base de datos hay user, pass y tipo.
En la página principal hay un form con user y pass, y segun el nombre y pass, busco en la tabla y segun el tipo va a una página u otra. El problema es que cualquier usuario pude pasar a cualquier zona, sea suya o no, y no quiero poner en todas las páginas un form de validacion, por eso kiero usar las sesiones.

Alguien puede hacerme un eskema para tontos de como usar las sesiones dependiendo de lo que el usuario mete en el form principal(user y pass) y que tendria ke poner en la página a la ke accede un usuario o un administrador.

Por cierto user y pass los valido de la base de datos
  #3 (permalink)  
Antiguo 13/02/2003, 13:12
Avatar de gomo  
Fecha de Ingreso: mayo-2002
Ubicación: [email protected]
Mensajes: 906
Antigüedad: 15 años, 7 meses
Puntos: 0
Mira es mas o menos asi
supone que tenes 2 secciones: la A y la B y dependiendo del username y pass se accede a una o a la otra, se llaman seccionA.php y seccionB.php
Entonces primero validas en una pagina con la BD el user & pass y declaras una variable $acceso que puede valer A, B o nada dependiendo del acceso que tenga

Código PHP:
**esto para la pagina de login.php**
session_start();
session_register('acceso');

//con esto lo redireccionas a la seccion
//correspondiente si se loguearon bien
if($acceso){
header("Location: seccion".$acceso.".php");
}

//si no paso el test le das error etc
echo "Error: login malo";

**
ahora esto al principio de seccionA.php**
//recuperas la sesion
session_start();
//si no tienen los permisos de acceso
//para esta seccion los mandas al login
if($_SESSION['acceso'] != "A"){
header("Location: login.php");
}
//aca tu contenido 
Y haces lo mismo con seccionB.php cambiando las letras.
Esa seria la idea aprox.
No te olvides que tanto las funciones de sesiones como header() tienen que ser usadas ANTES de mandar nada al browser (no puede haber un echo() antes).
Saludos cualquier cosa just ask
__________________
  #4 (permalink)  
Antiguo 13/02/2003, 16:20
 
Fecha de Ingreso: junio-2002
Ubicación: España
Mensajes: 348
Antigüedad: 15 años, 6 meses
Puntos: 8
No se hacerlo funcionar....

Lo siento pero no se hacerlo funcionar. Me surgen muchas dudas como...
para empezar...
ke valor tiene acceso?
kien le ha dado el valor A, para ke valla a seccionA.php?
como darle esos valores yo a acceso?
donde coloco mi formulario?

Podria yo hacer esto?:en index.php

session_start()
form para validar(de forma recursiva con isset)
if (el usuario esta registrado)
seleccinar de una base de datos $user_db y despues
session_register($user);
if($user==$user_db){
header("Location: seccion".$user_db.".php");
}
echo "Error el login no es correcto";

///////y en seccionAdmin.php

session_start();
if($_SESSION[$user] != $user_db){
header("Location: index.php");

Saludos y gracias por el interes.
por cierto mi pagina tiene include("head.php"); pero pongo antes el session_start(); es asi no?

Última edición por ZeroZ; 13/02/2003 a las 16:27
  #5 (permalink)  
Antiguo 13/02/2003, 16:48
Avatar de banyuken  
Fecha de Ingreso: diciembre-2002
Ubicación: Madrid
Mensajes: 83
Antigüedad: 15 años
Puntos: 0
agente.php

Código PHP:
<?
session_start
();
if (!isset(
$_SESSION['user']) || !isset($_SESSION['pass']) || !isset($_SESSION['typeuser']))
{
    
// Borramos la sesion creada por el inicio de session anterior
    
session_destroy();
    
$error=2;
    
tePillao($error);
}
$url=getIdPagina($PHP_SELF);
if (
$url es de administrador(pe busca en un array que contenga las pag del administrador)) 
{
    if (
$_SESSION['typeuser']=="usuario")
    {
        
$error=5;
        
tePillao($error);
    }
}
if (
$url es de usuario(pe busca en un array que contenga las pag del administrador))
{
    if (
$_SESSION['typeuser']=="administrador")
    {
        
$error=5;
        
tePillao($error);
    }
}
function 
getIdPagina($cadena)
{
    
$aux=explode("/",$cadena);
    
$i=count($aux);
    
$id=$aux[$i-1];
    
$aux=explode(".",$id);
    
$id=$aux[0];
    
$aux=explode("?",$id);
    
$id=$aux[0];
    return 
$id;
}
//tePillao($idError) muestra un mensaje de error y te manda a la página inicial
//donde hay que hacer login para entrar.
?>
Yo lo llamo así; seguramente tendrá muchos detractores, pero yo tenía el problema que tú tenías y ya no lo tengo. Impórtalo en las páginas que se encuentren en zona reservada, y se encarga de asegurar que el usuario puede verlas, sin que haya posibilidad de "intercambio de personalidades" entre usuario y administrador o profesor o como quieras llamarlo.
Un saludo,
Banyú.
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:01.