Foros del Web » Programando para Internet » PHP »

Cargar menú según nivel de acceso

Estas en el tema de Cargar menú según nivel de acceso en el foro de PHP en Foros del Web. Hola estoy intentando hacer que el menú cargue según el nivel de acceso del usuario, pero no acaba de funcionarme, os dejo los archivos a ...
  #1 (permalink)  
Antiguo 26/11/2012, 16:14
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 18 años, 9 meses
Puntos: 4
Cargar menú según nivel de acceso

Hola estoy intentando hacer que el menú cargue según el nivel de acceso del usuario, pero no acaba de funcionarme, os dejo los archivos a ver si podeis ayudarme.

index.php:
Código:
<?php
session_start();
$rol=$_SESSION["rol"];
require('admin/comunes_publicas.php');
require('funciones.php');

if ($rol=='2'){
    include ("templates/headeradmin.php");
	}elseif ($rol=='1'){
    include ("templates/headerusuario.php");
 	}else{
 	include("templates/header.php");
}   

include('templates/inicio.php');
include('templates/footer.tpl');
?>
login.php:

Código:
<?php
require "../admin/comunes_publicas.php"; //es la sentencia q usaremos para incluir el archivo de conexión a la base de datos que creamos anteriormente.


$nick=$_POST["nick"];
$password=$_POST["password"];


        $sql = mysql_num_rows(mysql_query("SELECT nick, password FROM usuarios WHERE nick = '$nick' and password = '$password'"));
        	if($sql==0){
				echo 'Su nombre de usuario o contrase&ntilde;a nos son correcto, Vuelva a intentarlo';
			} else {
				$consultarol = "SELECT rol FROM usuarios WHERE nick = '$nick' and password = '$password' and rol = '$rol'";
				$resultado=mysql_query($consultarol,$conexion);
				while ($row = mysql_fetch_array($resultado)){
				$rol=$row['rol'];}
					$_SESSION["autenticado"]= "SI";
					$_SESSION["nick"]=$nick;
					$_SESSION["rol"]=$rol;
					header("Location:../index.php");
			}	
?>
Muchas Gracias de antemano.
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)
  #2 (permalink)  
Antiguo 26/11/2012, 17:23
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Cargar menú según nivel de acceso

Guíanos un poco, donde te falla?, intenta de mas o menos localizar donde te falla o dinos que es lo que no hace :P
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #3 (permalink)  
Antiguo 26/11/2012, 18:00
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 18 años, 9 meses
Puntos: 4
Respuesta: Cargar menú según nivel de acceso

No da error el login lo realiza correctamente pero no carga el header correspondiente.
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)
  #4 (permalink)  
Antiguo 26/11/2012, 18:03
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Cargar menú según nivel de acceso

Haber, vamos por pasos, antes de:

if ($rol=='2'){

pon esto y dime que te muestra:

echo "El rol es: ".$rol;
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #5 (permalink)  
Antiguo 26/11/2012, 18:08
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 18 años, 9 meses
Puntos: 4
Respuesta: Cargar menú según nivel de acceso

El Rol es:

no lee la sesion
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)
  #6 (permalink)  
Antiguo 26/11/2012, 18:10
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Cargar menú según nivel de acceso

En login php te falta al inicio:

session_start();

tiene que ser lo primero que vaya detras de <?php
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #7 (permalink)  
Antiguo 26/11/2012, 18:21
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 18 años, 9 meses
Puntos: 4
Respuesta: Cargar menú según nivel de acceso

Sigue igual, ya lo tenia y funcionaba igual.
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)
  #8 (permalink)  
Antiguo 26/11/2012, 18:24
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Cargar menú según nivel de acceso

Ok, pero dejalo puesto ;), ahora prueba esto en el login.php

comenta:
Código PHP:
Ver original
  1. //header("Location:../index.php");

y pon:

Código PHP:
Ver original
  1. echo "El rol es: ".$_SESSION["rol"];

Poco a poco haber si damos con el error :P

Edito: acabo de darme cuenta de algo raro en esta consulta:

Código PHP:
Ver original
  1. $consultarol = "SELECT rol FROM usuarios WHERE nick = '$nick' and password = '$password' and rol = '$rol'";

Donde defines antes de aqui la variable $rol? creo que este podria ser el error y que te este devolviendo la consulta vacia, por eso no te recoge valor, prueba asi:

Código PHP:
Ver original
  1. $consultarol = "SELECT rol FROM usuarios WHERE nick = '$nick' and password = '$password'";
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #9 (permalink)  
Antiguo 27/11/2012, 14:30
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 18 años, 9 meses
Puntos: 4
Respuesta: Cargar menú según nivel de acceso

Ostras que tontería no me habia dado cuenta de eso, thx.

Funciona ok.
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)
  #10 (permalink)  
Antiguo 27/11/2012, 14:32
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Cargar menú según nivel de acceso

Para eso estamos, para ayudar ;)
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting

Etiquetas: mysql, nivel, según, sql, usuarios
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 04:21.