Por Ejemplo: tenemos dos usuarios y sus IDs que lo establece automaticamente la base de datos cuando se registra una persona. (Pedro ID=1) y tenemos (Juan ID=2), cuando se logea cualquier usuario habra una opcion que lo llevara a su pagina "Prohibida.php" ahora lo que quiero hacer es que estas paginas (Prohibida_1.php = Pedro) y (Prohibida_2.php = Juan)
pueda accesar cada usuario en su session correspondiente es decir que (Pedro ID=1 no pueda entrar a la pagina prohibida_2.php que es la de Juan y viceversa) osea que cada uno pueda ver su pagina Prohibida.php pero a la ves no podran ver las paginas de otros usuarios tambien... todo esto lo quiero hacer reconociendo solamente su "ID" de usuario.
Aqui les muestro como lo estoy haciendo:
La estructura de mi base de datos es esta:
Código PHP:
Ver original
CREATE TABLE IF NOT EXISTS `Users` ( `User_ID` int(11) NOT NULL auto_increment, `Username` varchar(150) NOT NULL, `Username_Clean` varchar(150) NOT NULL, `Password` varchar(225) NOT NULL, `Email` varchar(150) NOT NULL, `ActivationToken` varchar(225) NOT NULL, `LastActivationRequest` int(11) NOT NULL, `LostPasswordRequest` int(1) NOT NULL default '0', `Active` int(1) NOT NULL, `Group_ID` int(11) NOT NULL, `SignUpDate` int(11) NOT NULL, `LastSignIn` int(11) NOT NULL, ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Pagina de Inicio de session:
Código PHP:
Ver original
<?php require_once("config.php"); //Esto impide que el usuario vea esta pagina sin antes haber iniciado session ?> <html> <head> <title>Bienvenido a la pagina prohibida de Pedro</title> </head> <div class="Menu"> <ul class="categoryitems"> <li><a href="logout.php">Salir</a></li> <li><a href="account.php">Inicio</a></li> <li><a href="<?php $group2 = $loggedInUser->groupID2(); echo $group2['User_ID']; ?>/prohibida.php">Ir a mi Pag Prohibida</a></li> <li><a href="change-password.php">Cambiar Contraseña</a></li> <li><a href="update-email-address.php">Cambiar Email</a></li> </div> <body> </body> </html>
Esta es la funcion isUserLoggedIn():
Código PHP:
Ver original
function isUserLoggedIn() { global $loggedInUser,$id,$db,$db_table_prefix; $sql = "SELECT User_ID, Password FROM ".$db_table_prefix."Users WHERE User_ID = '".$db->sql_escape($loggedInUser->user_id)."' AND Password = '".$db->sql_escape($loggedInUser->hash_pw)."' AND Active = 1 LIMIT 1"; if($loggedInUser == NULL) { return false; } else { //Consulta para asegurar que no hayan sido removidos o baneados de la bse de datos if(returns_result($sql) > 0) { return true; } else { //resultado para verificar que el usuario salio de la session $loggedInUser->userLogOut(); return false; } } }
OK hasta ahora todo bien esto lo que hace es que a personas no registradas no les permite ver las Opciones del Usuario. (tendrian que registrarse)
Y cuando van a sus opciones respectivas es decir "Ir a mi Pag Prohibida" lo hace perfecto lo lleva su pagina prohibida deacuerdo a sus IDs de usuarios, ahora el problema es q como hago para denegar el acceso a esa pagina prohibida cuando entra un suario con una ID distinta a la ya preestablecida?
ASI es como estoy haciendo...
NOTA IMPORTANTE: cada una de las paginas prohibidas las tengo en directorios diferentes y cada una le coloco numeros q vienen siendo las IDs de los usuarios osea a cada directorio les tengo su archivo de configuracion, Funcion, etc
La pagina prohibida de Pedro ID=1:
Código PHP:
Ver original
<?php require_once("config.php"); //Esto impide que el usuario vea esta pagina sin antes haber iniciado session ?> <html> <head> <title>Bienvenido a la pagina prohibida de Pedro</title> </head> <p>CONTENIDO PROHIBIDO de PEDRO AQUI!</p> <body> </body> </html>
La pagina prohibida de Juan ID=2:
Código PHP:
Ver original
<?php require_once("config.php"); //Esto impide que el usuario vea esta pagina sin antes haber iniciado session ?> <html> <head> <title>Bienvenido a la pagina prohibida de Juan</title> </head> <p>CONTENIDO PROHIBIDO de JUAN AQUI!</p> <body> </body> </html>
La funcion acceso_ID que es para la pagina prohibida:
Código PHP:
Ver original
//Comprobando si las IDs son iguales function acceso_ID() { global $db,$id,$db_table_prefix; $sql = "SELECT User_ID FROM ".$db_table_prefix."Users WHERE User_ID = '".$db->sql_escape($this->user_id)."'"; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); return ($row['User_ID']); } //Este ID si es para Pedro que tiene 1 $id = 1; //Aqui hago la validacion if ($row['User_ID'] == $id) { } else { }
Mi problema es que los usuarios pueden ver las paginas prohibidas de otros usuarios y quiero parar eso quiero denegar el acceso atraves de sus IDs de suarios, es decir que solo puedan entrar solo a su pag prohibida correspondiente
SI alguien por favor me pudiera ayudar mi problema, debe ser un error q estoy cometiendo en esta ultima funcion "acceso_ID", por q lo demas funciona perfecto les pido su ayuda GRACIAS POR LEER ESTE TEMA.