Foros del Web » Programando para Internet » PHP »

Problema con restrigir acceso a pagina

Estas en el tema de Problema con restrigir acceso a pagina en el foro de PHP en Foros del Web. Hola a todos les cuento lo que me pasa, resulta que necesito restringir una pagina con usuario contraseña y nivel de acceso. los niveles de ...
  #1 (permalink)  
Antiguo 21/09/2011, 11:13
 
Fecha de Ingreso: septiembre-2011
Mensajes: 18
Antigüedad: 12 años, 7 meses
Puntos: 0
Problema con restrigir acceso a pagina

Hola a todos
les cuento lo que me pasa, resulta que necesito restringir una pagina con usuario contraseña y nivel de acceso.

los niveles de acceso estan definidos como c - t - a.
en esta pagina solo acceden c, a
el codigo es el siguiente:


Código PHP:
<?php
if (!isset($_SESSION)) {
  
session_start();
}
$MM_authorizedUsers "c,a";
$MM_donotCheckaccess "false";

  
$isValid False

  if (!empty(
$UserName)) { 
     
    
$arrUsers Explode(","$strUsers); 
    
$arrGroups Explode(","$strGroups); 
    if (
in_array($UserName$arrUsers)) { 
      
$isValid true
    } 
 
    if (
in_array($UserGroup$arrGroups)) { 
      
$isValid true
    } 
    if ((
$strUsers == "") && false) { 
      
$isValid true
    } 
  } 
  return 
$isValid
}

$MM_restrictGoTo "ayuda.php";
if (!((isset(
$_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers$_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  
$MM_qsChar "?";
  
$MM_referrer $_SERVER['PHP_SELF'];
  if (
strpos($MM_restrictGoTo"?")) $MM_qsChar "&";
  if (isset(
$_SERVER['QUERY_STRING']) && strlen($_SERVER['QUERY_STRING']) > 0
  
$MM_referrer .= "?" $_SERVER['QUERY_STRING'];
  
$MM_restrictGoTo $MM_restrictGoTo$MM_qsChar "accesscheck=" urlencode($MM_referrer);
  
header("Location: "$MM_restrictGoTo); 
  exit;
}
?>
  #2 (permalink)  
Antiguo 21/09/2011, 11:20
Avatar de gustavopino  
Fecha de Ingreso: septiembre-2011
Ubicación: venezuela
Mensajes: 152
Antigüedad: 12 años, 7 meses
Puntos: 29
Respuesta: Problema con restrigir acceso a pagina

pero exactamente que es lo que quieres
__________________
Visita a Publiventa donde compras y vendes de todo
  #3 (permalink)  
Antiguo 21/09/2011, 11:29
 
Fecha de Ingreso: septiembre-2011
Mensajes: 18
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema con restrigir acceso a pagina

Claro coloco todo y no el problema.... mis disculpas por el descuido ese
bueno aca esta el problema:
Ese codigo me genera el Dreamweaver pero no me funciona los usuarios con los niveles de acceso c y a no pueden acceder a esa pagina y deberia poder acceder.
  #4 (permalink)  
Antiguo 21/09/2011, 11:40
Avatar de gustavopino  
Fecha de Ingreso: septiembre-2011
Ubicación: venezuela
Mensajes: 152
Antigüedad: 12 años, 7 meses
Puntos: 29
Respuesta: Problema con restrigir acceso a pagina

bueno amigo lo que pasa es que ese sistema de validacion de Dreamweaver siempre trae errores al validar.
por que no haces una tabla sql que tenga usuario, contraseña, control_aceso y lo que quieras agregar.

y cuando estes validando el usuario creas una variable de sesion al usuario y al control de aceso.
si no sabes como hacerlo me dices y yo te ayudo.
Espero tu respuesta.
__________________
Visita a Publiventa donde compras y vendes de todo
  #5 (permalink)  
Antiguo 21/09/2011, 11:55
 
Fecha de Ingreso: septiembre-2011
Mensajes: 18
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema con restrigir acceso a pagina

Muchas gracias Gustavo por tu ayuda, hare lo que tu dices pero no se como hacerlo asi que si me pudieras decir como hacer estaria muy agradecido.
  #6 (permalink)  
Antiguo 21/09/2011, 12:10
Avatar de gustavopino  
Fecha de Ingreso: septiembre-2011
Ubicación: venezuela
Mensajes: 152
Antigüedad: 12 años, 7 meses
Puntos: 29
Respuesta: Problema con restrigir acceso a pagina

Amigo vamos a lo primero:

Supongamos que tienes una tabla clientes que esta conformada por:

1.- usuario
2.- contraseña
3.- tipo_acceso
4.- otra restricción que le quieras poner

Entonces en donde vas a validar supongamos que es validacion.php haz esto:

Código PHP:
Ver original
  1. //Verificamos si recibimos valores
  2.  
  3. if(isset($_POST['usuario'])){
  4. //Creamos las variables
  5.  
  6. $usuario = $_POST['usuario'];
  7. $pass = $_POST['pass'];
  8.  
  9. //Hacemos la consulta
  10.  
  11. $sql = mysql_query("select * from clientes where usuario='$usuario'");
  12. $r = mysql_fetch_array($sql);
  13. $password = $r['pass'];
  14. $tipo_acceso = $r['tipo_acceso'];
  15. if($password == $pass){
  16.   $_SESSION['usuario'] = $r['usuario'];
  17.   $_SESSION['acceso'] = $tipo_acceso;
  18. }else{
  19. echo "Error";
  20. }
  21. }
Y despues en todas las paginas que quieres restringir el acceso haz esto:

Otra_pagina.php
Código PHP:
Ver original
  1. <?php
  2. if(!isset($_SESSION['usuario'])){
  3. // lo mando a iniciar sesion
  4. header("location:sesion.php");
  5. }else{
  6. //aqui pones el control de acceso
  7.    if($_SESSION['acceso'] == "a"){?>
  8. <html>
  9. ...
  10. </html>
  11. <?php
  12. }else{
  13. echo"No tienes acceso a esta pagina";
  14. }
  15. }
Espero tu respuesta
__________________
Visita a Publiventa donde compras y vendes de todo
  #7 (permalink)  
Antiguo 21/09/2011, 13:01
 
Fecha de Ingreso: septiembre-2011
Mensajes: 18
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema con restrigir acceso a pagina

Muchas gracias voy a probar y te cuento como me fue
  #8 (permalink)  
Antiguo 21/09/2011, 13:55
 
Fecha de Ingreso: septiembre-2011
Mensajes: 18
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema con restrigir acceso a pagina

Gustavo
Puse el codigo y me quedo de la siguiente manera

Código PHP:
if(isset($_POST['usuario'])){
//Creamos las variables
 
$usuario $_POST['usuario'];
$pass $_POST['Password'];
 
//Hacemos la consulta
 
$sql mysql_query("select * from usuarios where usuario='$usuario'",$conexion_ongemprender);
$r mysql_fetch_array($sql);
$password $r['Password'];
$tipo_acceso $r['Tipo_de_Acceso']; 
if(
$password == $pass){
  
$_SESSION['usuario'] = $r['usuario'];
  
$_SESSION['acceso'] = $tipo_acceso;
}else{
echo 
"Error";
}

y me genera los siguientes errores en los cuales estoy estancado


Notice: Undefined index: Tipo_de_Acceso in C:\wamp\www\bd_ongemprender\Entrada.php on line 16

Notice: Undefined index: usuario in C:\wamp\www\bd_ongemprender\Entrada.php on line 18

mi base de datos es la siguiente:

CREATE TABLE IF NOT EXISTS `usuarios` (
`Nombres` text NOT NULL,
`Apellido Paterno` text NOT NULL,
`Apellido Materno` text NOT NULL,
`Usuario` varchar(50) NOT NULL,
`Password` varchar(50) NOT NULL,
`Tipo de Acceso` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  #9 (permalink)  
Antiguo 21/09/2011, 16:06
Avatar de gustavopino  
Fecha de Ingreso: septiembre-2011
Ubicación: venezuela
Mensajes: 152
Antigüedad: 12 años, 7 meses
Puntos: 29
Respuesta: Problema con restrigir acceso a pagina

1.- Tienes un error ya que en la base de datos lo tienes asi: Usuario y cuando lo llamas sale asi:
$_SESSION['usuario'] = $r['usuario']; ves el usuario tiene la U mayuscula en la base de datos y tu la pones en minuscula.

2.- el otro error es que en la base de datos lo tienes asi: Tipo de Acceso y cuando lo llamas lo haces asi: $tipo_acceso = $r['Tipo_de_Acceso'];

Soluciones:
1.- Pon en usuario la U mayuscula
2.- quitales los guion bajo (no me acuerdo como se llaman) al tipo de acceso
__________________
Visita a Publiventa donde compras y vendes de todo
  #10 (permalink)  
Antiguo 22/09/2011, 10:50
 
Fecha de Ingreso: septiembre-2011
Mensajes: 18
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema con restrigir acceso a pagina

Corregi los dos errores lo primero cambie en la base de datos las variables que empezaban con mayuscula a minuscula para evitar futuros errores y el segundo error tambien lo corregi pero ahora me sale un warning con lo siguiente:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\bd_ongemprender\Entrada.php on line 14
  #11 (permalink)  
Antiguo 22/09/2011, 11:49
Avatar de gustavopino  
Fecha de Ingreso: septiembre-2011
Ubicación: venezuela
Mensajes: 152
Antigüedad: 12 años, 7 meses
Puntos: 29
Respuesta: Problema con restrigir acceso a pagina

no entiendo por lo que se ve ese error si tienes la consulta bien revisa el codigo de la consulta a ver si le falta las comillas
__________________
Visita a Publiventa donde compras y vendes de todo
  #12 (permalink)  
Antiguo 22/09/2011, 12:46
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Problema con restrigir acceso a pagina

Si miras la documentación, puedes observar que la función mysql_query devuelve false si no se puede realizar la consulta.

http://php.net/manual/es/function.mysql-query.php
  #13 (permalink)  
Antiguo 22/09/2011, 13:54
 
Fecha de Ingreso: septiembre-2011
Mensajes: 18
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema con restrigir acceso a pagina

El validar.php me funciona sin problemas muchas gracias por eso, ahora el problema es que el codigo para restringir acceso lo agrego a la pagina de la manera en que tu me dijiste y equeda asi:
Código PHP:
<?php
if(!isset($_SESSION['usuario'])){
// lo mando a iniciar sesion
header("location:Entrada.php");
}else{
// control de acceso
   
if($_SESSION['acceso'] == "c"){
?>
<html>
...
</html>

<?php
}else{
echo
"No tienes acceso a esta pagina";
}
}
?>
el problema es que cuando ingreso el nombre de usuario y contraseña correctos para ingresar a la pagina me manda a iniciar session
  #14 (permalink)  
Antiguo 22/09/2011, 17:06
Avatar de gustavopino  
Fecha de Ingreso: septiembre-2011
Ubicación: venezuela
Mensajes: 152
Antigüedad: 12 años, 7 meses
Puntos: 29
Respuesta: Problema con restrigir acceso a pagina

te falta session_start(); en la parte de arriba al principio del php
espero tu respuesta.
__________________
Visita a Publiventa donde compras y vendes de todo
  #15 (permalink)  
Antiguo 22/09/2011, 17:59
 
Fecha de Ingreso: septiembre-2011
Mensajes: 18
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema con restrigir acceso a pagina

Puse el session_start(); pero sigue mandandome a la pagina de inicio de sesion
  #16 (permalink)  
Antiguo 22/09/2011, 20:36
Avatar de gustavopino  
Fecha de Ingreso: septiembre-2011
Ubicación: venezuela
Mensajes: 152
Antigüedad: 12 años, 7 meses
Puntos: 29
Respuesta: Problema con restrigir acceso a pagina

rebisaste si cuando validas la contraseña como lo puse no te imprime error?
me parece extraño eso porque yo en mi pagina lo tengo asi y no tengo problema en eso.
haz pruebas:
adonde esta el header quitalo y prueba haciendo un echo $_SESSION['usuario'] a ver si imprime

Espero tu respuesta.
__________________
Visita a Publiventa donde compras y vendes de todo
  #17 (permalink)  
Antiguo 23/09/2011, 10:17
 
Fecha de Ingreso: septiembre-2011
Mensajes: 18
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema con restrigir acceso a pagina

en la pagina de la validacion cambie el header por el echo $_SESSION['usuario'] y me imprime sin problemas, por lo que el problema parece estar en la pagina donde se aplica esta restriccion, a lo mejor me falta algo y no me e dado cuenta.
Código PHP:
<?php 
session_start
();
if(!isset(
$_SESSION['usuario'])){ 
// lo mando a iniciar sesion 
header("location:Entrada.php"); 
}else{ 
// control de acceso 
   
if($_SESSION['acceso'] == "c"){ 
?> 
<html> 
... 
</html> 

<?php 
}else{ 
echo
"No tienes acceso a esta pagina"


?>
  #18 (permalink)  
Antiguo 23/09/2011, 23:31
Avatar de gustavopino  
Fecha de Ingreso: septiembre-2011
Ubicación: venezuela
Mensajes: 152
Antigüedad: 12 años, 7 meses
Puntos: 29
Respuesta: Problema con restrigir acceso a pagina

pero es raro que te imprima adonde esta el header ya que aqui dice en (if(isset($_SESSION['usuario'])) que si no existe la variable session mandalo a entrada.php

Yo te surgiero que revises bien tu codigo por que de repente estas fallando en algo.

Espero tu respuesta
__________________
Visita a Publiventa donde compras y vendes de todo
  #19 (permalink)  
Antiguo 24/09/2011, 13:23
 
Fecha de Ingreso: septiembre-2011
Mensajes: 18
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema con restrigir acceso a pagina

me faltaba un sessio_star(); en la pagina de validacion lo agregue, hise un par de pruebas y me funciona sin problemas hasta ahora, al parecer ese era el problema.
Muchas gracias Gustavo has sido de mucha ayuda.
  #20 (permalink)  
Antiguo 25/09/2011, 02:35
tukymix
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con restrigir acceso a pagina

Hola, chumex, te aconsejo que utilices este sistema, es muy bueno, yo siempre lo utilizo en mis paginas creadas, tienes todo un sistema de registro, acceso, etc... e incluso niveles si te fijas, aqui te dejo el link, espero te sirva http://www.php-hispano.net/archivos/Manuales/51/1/Sistema-de-registro-de-usuarios1.html un saludo

Etiquetas: 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 15:21.