Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Acceso multinivel

Estas en el tema de Acceso multinivel en el foro de PHP en Foros del Web. Saludos amigos, antes que nada les informo soy nuevo en el foro y en esto de programar aunque capto rapido y entre tutoriales y mucha ...
  #1 (permalink)  
Antiguo 02/12/2014, 02:39
 
Fecha de Ingreso: diciembre-2014
Mensajes: 3
Antigüedad: 10 años
Puntos: 0
Pregunta Acceso multinivel

Saludos amigos, antes que nada les informo soy nuevo en el foro y en esto de programar aunque capto rapido y entre tutoriales y mucha lectura he ido aprendiendo algunas cosillas, el caso es que estoy contruyendo un sitio para una banda marchante a la que pertenezco (cabe destacar sin fines de lucro)(su principal funcion es sacar a los jovenes del ocio), y pues como ya les he contado al ser sin fines de lucro no contamos con recursos para contratar un diseñador web razon por la cual he sido yo quien se ha puesto a ello. ahora la cosa se me ha complicado porque la idea general de la pagina cuenta como con 30 tipos de usuarios(integrantes de la institutución divididos por instrumento que tocan) divididos en 4 grupos, la cuestion es que por mucho que he leido y visto tutoriales no logro hacer que cada parte sea accesible solo a los usuarios que deben estar autorizados a ver dicho contenido. Agrego el codigo del menu de la pagina y en comentarios del codigo quienes estarian autorizados esperando puedan decirme como hacerlo y muchas gracias de antemano

Código:
    <div class="menu">
    	<nav>
        	<ul>
            	<li><a href="index.php">inicio</a><!--accesible a cualquiera-->
                	<div class="sub">
                        <ul>
                        	<li class="titulo"><a href="#">Biografía</a></li>
                            <li><a href="quienes-somos.php">Quienes somos</a></li><!--accesible a cualquiera-->
                            <li><a href="actuaciones.php">Actuaciones</a></li><!--accesible a cualquiera-->
                        </ul>  
                    </div>
                </li>
                <li><a href="#">galería</a>
                	<div class="sub"> 
                        <ul>
                        	<li class="titulo"><a href="#">Video</a></li>
                            <li><a href="videos-ferias.php">Ferias</a></li><!--accesible a cualquiera-->
                            <li><a href="videos-regional.php">Regionales</a></li><!--accesible a cualquiera-->
                            <li><a href="videos-nacional.php">Nacionales</a></li><!--accesible a cualquiera-->
                            <li><a href="videos-comercial.php">Comerciales</a></li><!--accesible a cualquiera-->
                            <li><a href="otros-videos.php">Otros</a></li><!--accesible a cualquiera-->
                        </ul>
                        <ul>
                        	<li class="titulo"><a href="#">Fotos</a></li>
                            <li><a href="galeria-grupal.php">Grupales</a></li><!--accesible a cualquiera-->
                            <li><a href="galeria-actuaciones.php">Actuaciones</a></li><!--accesible a cualquiera-->
                            <li><a href="galeria-practicas.php">Prácticas</a></li><!--accesible a cualquiera-->
                            <li><a href="galeria-secciones.php">Secciones</a></li><!--accesible a cualquiera-->
                            <li><a href="otras-galerias.php">Otros</a></li><!--accesible a cualquiera-->
                        </ul>
                    </div>
                </li>
                <li><a href="#">eventos</a>
                	<div class="sub">
                        <ul>
                        	<li class="titulo"><a href="#">Prácticas</a></li>
                            <li><a href="#">Generales</a></li><!--accesible a todos los integrantes-->
                            <li><a href="#">Cheer Leaders</a></li><!--accesible solo a los instructores y las Cheers Leaders-->
                            <li><a href="#">Batuteras</a></li><!--accesible solo a los instructores y las Batuteras-->
                            <li><a href="#">Metales</a></li><!--accesible solo a los instructores y todos los ejecutantes de instrumentos de viento, dentro de esta pagina habra un boton llamado tu compañia que debera redirigir a la pagina de las practicas del instrumento particular del integrante logeado-->
                            <li><a href="#">Percusión</a></li><!--accesible solo a los instructores y todos los ejecutantes de instrumentos de percusion, dentro de esta pagina habra un boton llamado tu compañia que debera redirigir a la pagina de las practicas del instrumento particular del integrante logeado-->
                            <li><a href="#">Heraldos</a></li><!--accesible solo a los instructores y todos los Heraldos, dentro de esta pagina habra un boton llamado tu compañia que debera redirigir a la pagina de las practicas del instrumento particular del integrante logeado-->
                        </ul>
                        <ul>
                        	<li class="titulo"><a href="#">Reuniones</a></li>
                                    <li><a href="#">Generales</a></li><!--debera aplicar el mismo sistema del submenu anterior-->
                            <li><a href="#">Cheer Leaders</a></li><!--debera aplicar el mismo sistema del submenu anterior-->
                            <li><a href="#">Batuteras</a></li><!--debera aplicar el mismo sistema del submenu anterior-->
                            <li><a href="#">Metales</a></li><!--debera aplicar el mismo sistema del submenu anterior-->
                            <li><a href="#">Percusión</a></li><!--debera aplicar el mismo sistema del submenu anterior-->
                            <li><a href="#">Heraldos</a></li><!--debera aplicar el mismo sistema del submenu anterior-->
                        </ul>
                        <ul>
                        	<li class="titulo"><a href="#">Desfiles</a></li>
                            <li><a href="#">Ferias</a></li><!--acceso solo a los integrantes de la institucion sin importar que instrumento toquen-->
                            <li><a href="#">Municipales</a></li><!--acceso solo a los integrantes de la institucion sin importar que instrumento toquen-->
                            <li><a href="#">Regionales</a></li><!--acceso solo a los integrantes de la institucion sin importar que instrumento toquen-->
                            <li><a href="#">Nacionales</a></li><!--acceso solo a los integrantes de la institucion sin importar que instrumento toquen-->
                            <li><a href="#">Televisados</a></li><!--acceso solo a los integrantes de la institucion sin importar que instrumento toquen-->
                            <li><a href="#">Otros</a></li><!--acceso solo a los integrantes de la institucion sin importar que instrumento toquen-->
                         </ul> 
                    </div>
                </li>
                <li><a href="#">social</a>
                	<div class="sub">
                    	<ul>
                        	<li class="titulo"><a href="#">Inscripción</a></li>
                            <li><a href="#">Registro</a></li><!--cualquiera puede acceder-->
                            <li><a href="#">Planilla</a></li><!--aqui colocare una consulta a la base de datos para que genere la planilla con los datos de la persona que se esta incribiendo-->
                            <li><a href="#">Normativa</a></li><!--cualquiera puede acceder-->
                            <li><a href="#">Requisitos</a></li><!--cualquiera puede acceder-->
                        </ul>
                        <ul>
                        	<li class="titulo"><a href="#">Integrantes</a></li>
                            <li><a href="registro-integrante.php">Registro</a></li><!--cualquiera puede acceder-->
                            <li><a href="#">General</a></li><!--todos los integrantes de la institucion registrados sin  importar que instrumento toquen-->
                            <li><a href="#">Tu Compañia</a></li><!--todos los ejecutantes de un instrumento en particular,(ejemplo:si un trompetista hace click lo llevara a una pagina  solo para trompetistas)y asi para todos los instrumentos-->
                            <li><a href="#">Archivos</a></li><!--todos los integrantes de la institucion registrados sin  importar que instrumento toquen-->
                        </ul>
                        <ul>
                        	<li class="titulo"><a href="#">Preguntas</a></li>
                            <li><a href="preguntas-visitante.php">Visitante</a></li><!--cualquiera puede acceder-->
                            <li><a href=preguntas-integrantes.php>Integrante</a></li><!--todos los integrantes de la institucion registrados sin  importar que instrumento toquen-->
                            <li><a href="preguntas-aspirantes.php">Aspirante</a></li><!--solo aquellos que se hayan inscrito en la institucion-->
                            <li><a href="preguntas-representantes.php">Representante</a></li><!--cualquiera puede acceder-->
                        </ul>
                    </div>
                </li>
                <li><a href="#">contacto</a></li><!--cualquiera puede acceder-->
            </ul>
      </nav>
    </div>
no se si me supe explicar, espero puedan ayudarme a solucionar esto. Saludos
  #2 (permalink)  
Antiguo 02/12/2014, 03:24
Avatar de garciasanchezdani  
Fecha de Ingreso: noviembre-2011
Mensajes: 429
Antigüedad: 13 años, 1 mes
Puntos: 51
Respuesta: Acceso multinivel

Hola @Eyseman, menuda putada.... :S he preparado una explicación super larga para ti, y cuando he dado a enviar, se le ha ido la olla a esto, y ha petado...y ni siquiera tengo el mensaje en borrador ni nada....
Por resumir, te paso este enlace, que habla de manejo de sesiones de usuario: http://www.9lessons.info/2009/09/php...e-example.html
Tendrías que habilitar un campo llamado tipo, en tu tabla usuarios de tu base de datos, y cada vez que un usuario se conecta, creas una sesión para ese usuario, y ya, dependiendo del tipo de usuario, muestras unas opciones del menú, u otras.

Por ejemplo, sería algo así:

Código PHP:
Ver original
  1. <?php if ($_SESSION["tipo"] == "administrador" ) { ?>
  2. <li><a href="index.php">inicio</a><!--accesible a administrador-->
  3.                     <div class="sub">
  4.                         <ul>
  5.                             <li class="titulo"><a href="#">Biografía</a></li>
  6.                             <li><a href="quienes-somos.php">Quienes somos</a></li><!--accesible a cualquiera-->
  7.                             <li><a href="actuaciones.php">Actuaciones</a></li><!--accesible a cualquiera-->
  8.                         </ul>  
  9.                     </div>
  10.                 </li>
  11. <?php } ?>

Saludos, y ve diciéndome cualquier duda ;)
__________________
Diseño Web Jaén
  #3 (permalink)  
Antiguo 02/12/2014, 11:01
 
Fecha de Ingreso: diciembre-2014
Mensajes: 3
Antigüedad: 10 años
Puntos: 0
Respuesta: Acceso multinivel

Muchas gracias @garciasanchezdani probare he ire escribiendo, aunque no me explique muy bien jeje la cosa no seria ocultar partes del menú, sino en las páginas a las que direcciona cada enlace, a ver tratare de explicarme si por ejemplo yo accedo a la pagina como un visitante cualquiera puedo ver todos los items del menu pero al hacer click en general de la sección integrantes antes de mostrame el contenido me pida logearme(podria ser como he visto en algunas paginas que es una ventana propia del navegador que solicita la autenticación de usuario), pero si le doy click en mi compañia vea que instrumento toco en la base de datos y me dirija a la pagina correspondiente a ese intrumento.Saludos espero haberme explicado mejor esta vez y gracias de antemano
  #4 (permalink)  
Antiguo 02/12/2014, 13:23
 
Fecha de Ingreso: julio-2007
Mensajes: 114
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Acceso multinivel

Saludos Eyseman la cosa que quieres no es tan dificil... ve tiene que ver hacer tu sistema de loggin en donde deberias identicar cada usurio con un rol de usuario es solo un campo que diga rol y el contenido de este sea admnistrador, y los demas tipos de usuarios.. y armarte un menu par cada tipo de usuario entonces despues de la pagina de login la pagina que va a ser tu pagina principal del sistema le agregar una condicion o lo hace sen una pagina aparte y la incluyes con inlcude
pero la sentencia seria

trayendote los datos de la base de datos con el rol del usuario
$bus="SELECT * FROM USUARIOS WHERE usuario='$_POST[USUARIO]";

if($bus[rol]=='admnistrador){
include('menu_adminitrador');

}
elseif($bus[rol]=='otroUsuario'){
include('menu_otroUsuario');

}


y asi vas hasta lograr lo deseado...

es solo una idea saludos
  #5 (permalink)  
Antiguo 02/12/2014, 17:12
 
Fecha de Ingreso: diciembre-2014
Mensajes: 3
Antigüedad: 10 años
Puntos: 0
Respuesta: Acceso multinivel

muchas gracias @huascar ya he ido progresando un poco aunque aun tengo ciertos dilemas, explico la opcion general la direccione a una pagina de login donde se autentica el usuario y lo redirige a general aqui el codigo del la validacion de usuario


php require_once('Connections/conexionbci.php');

if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}


// *** Validate request to login to this site.
if (!isset($_SESSION)) {
session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['Username'])) {
$loginUsername=$_POST['Username'];
$password=$_POST['Password'];
$MM_fldUserAuthorization = "";
$MM_redirectLoginSuccess = "general.php";
$MM_redirectLoginFailed = "index.php";
$MM_redirecttoReferrer = true;
mysql_select_db($database_conexionbci, $conexionbci);

$LoginRS__query=sprintf("SELECT strEmail, strPassword, intNivel FROM tblintegrantes WHERE strEmail=%s AND strPassword=%s AND intNivel=50",
GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));

$LoginRS = mysql_query($LoginRS__query, $conexionbci) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = "";

if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}
//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;

if (isset($_SESSION['PrevUrl']) && true) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}

quite las etiquetas de php del codigo aqui publicado pero el codigo en uso si lo tiene

eso funciona bien si el usuario que se logea no tiene nivel 50 no lo lleva a general, el dilema que se me presenta ahora es que si tecleo lla ruta a general.php en la barra de direcciones del navegador me permiteel acceso; disculpen lo tedioso que soy pero como soluciono esto

Etiquetas: multinivel, registro, 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 08:50.