| ||||
Yo en tu caso lo que haria es asignarle permisos a los usuarios, entonces cuando verfiques al usuario y su contraseña ,y sea "positiva", levantes una session con el tipo de permiso del usuario. De esta forma cuando quieran ingresar alguna página verificas si tiene el permiso para entrar "ahi". Saludillos. |
| ||||
Asignas un numero o palabra especial a tu usuario. ejemplo: jose=100 o en su defecto 'usuario' pepe=200 o 'administrador' etc. Cuando el usuario inicie sesión pones $_SESSION['tipo_usuario']=100 y después en cada pagina pones Código PHP: ojala t sirva o ya de perdido t d una idea.
__________________ El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa la tristeza no existe, solo es... la ausencia de la felicidad. |
| |||
Cita: Pero si dices eso .. se "entiende" que algún tipo de código ya manejas .. alguna gestión de usuarios usas (valga la rebundancia).Al abrir la sesion puse el nombre arriba del usuarios en cada pagina que entra, No sé como creas tus variables de sesión o como gestionas los datos de tu usuario, pero .. tendrás que manejar un dato nuevo: "Nivel de acceso" .. o algo así para determina que nivel de acceso tiene cada usuario, ese dato lo obtienes cuando hagas tu "login" y generas una variable más de sesión con ese dato del "nivel del usuario". En tus páginas o procesos .. sólo valida ese dato con lo que tu necesites (un "IF()" simple). Un saludo, PD: Así funciona mi script "Autentificator": http://php.cluster-web./autentificator
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
tengo esto y me da error <? session_start(); echo $_SESSION['usuario']; if(empty($_SESSION['usuario']) || $_SESSION['usuario']==""){ header("location: noautirizado.php"); if($_SESSION['usuario']=0) { else { header("location: noautirizado.php"); //usuario no permitdo } ?> Cree en la base de datos un campo q se llama nivel de acceso, y quiero q el nivel 0, sea el administrador y el nivel 1 los usuarios q esten restringidos. |
| |||
Cita: Bueno .. y en tu script o parte que haces el "login" .. donde obtienes ese dato y generas la variable de sesión para que propague ese dato del "nivel de acceso" al igual que esa que ya manejas del "usuario" que supongo que dará el valor del nombre del usario o ID activo?
Iniciado por hulray tengo esto y me da error <? session_start(); echo $_SESSION['usuario']; if(empty($_SESSION['usuario']) || $_SESSION['usuario']==""){ header("location: noautirizado.php"); if($_SESSION['usuario']=0) { else { header("location: noautirizado.php"); //usuario no permitdo } ?> Cree en la base de datos un campo q se llama nivel de acceso, y quiero q el nivel 0, sea el administrador y el nivel 1 los usuarios q esten restringidos. Por otro lado .. no puedes hacer un "echo" y luego un header() ... No entiendo tu "iF()" que compones .. Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
mira ese es mi codigo y me funciona muy bien: <? session_start(); echo $_SESSION['usuario']; if(empty($_SESSION['usuario']) || $_SESSION['usuario']==""){ header("location: noautirizado.php"); } ?> ese echo es para q salga el nombre del usuario q se logeo en la pagina, y ese if es si intentan entrar sin haberse logeado, lo mando a una pagina que le dice q no tiene acceso por no logearse, es como de seguridad ese if y el header. lo que intento es ponerle o donde ponerle el nivel de acceso a ese codigo. no se si me podrias ayudar |
| |||
Cita: Ya te dije antes .. DONDE!!!! haces tu login? .. donde creas o le das el valor a tu variable de sesión $_SESSION['usuario']?
Iniciado por hulray mira ese es mi codigo y me funciona muy bien: <? session_start(); echo $_SESSION['usuario']; if(empty($_SESSION['usuario']) || $_SESSION['usuario']==""){ header("location: noautirizado.php"); } ?> ese echo es para q salga el nombre del usuario q se logeo en la pagina, y ese if es si intentan entrar sin haberse logeado, lo mando a una pagina que le dice q no tiene acceso por no logearse, es como de seguridad ese if y el header. lo que intento es ponerle o donde ponerle el nivel de acceso a ese codigo. no se si me podrias ayudar ESSSS en ese código donde -debes- crear tu variable de sesión $_SESSION['usuario_nivel'] .. y el valor que le daras será el que en tu campo de "nivel" de acceso del usuario creastes para el usuario en tu BBDD y que tendrás que obtener en tu consulta SQL que obtienes otros detalles del usuario. (Esto mismo ya te lo he dicho antes .. no entendistes? .. por qué repites lo mismo? .. yo te pido algunas cosas y no me contestas .. así no avanzamos nada sobre el problema). if(empty($_SESSION['usuario']) || $_SESSION['usuario']==""){ eso no tiene sentido!!. decir "si está vacia con empyt() y luego comparar contra == "") .. sólo usa: if(empty($_SESSION['usuario'])){ Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| |||
No me enojo ... Sólo digo las cosas como són y como las siento. Pero es que a veces pido "cosas" para completar posible solución al problema y parece que no se me "lee" por qué se insiste en lo mismo una y otra vez .. (como es tu caso que repites siempre la misma porción de código). Yo prefiero que me digan "no entendí a que te refires" (por qué no todos entendemos lo que uno intenta expresar) .. que se omita el tema por completo y se continue con lo mismo. Si expones el código que te pido, que lo debes tener .. por qué el valor de $_SESSION['usuario'] no se creará por arte de mágia supongo .. ahí veras que solventamos el problema rápido y bien. Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
ese es mi codigo del login, y disculpar la torpeza: session_start(); session_unset(); session_destroy(); if($_POST){ $nick = $_POST['nick']; $pass = md5($_POST['pass']); unset($_POST); if(eregi("^[-_A-Z0-9]{3,20}$",$nick)){ include("conexion.php"); LIMIT 1 $resp = mysql_query("SELECT id_usuario,nick,pass,intentos FROM usuarios WHERE nick='$nick' LIMIT 1",$conexion); if(mysql_num_rows($resp) == 1){ $row = mysql_fetch_assoc($resp); if($row['intentos'] < 5){ if($pass == $row['pass']){ session_start(); $_SESSION['id_usuario'] = $row['id_usuario']; $_SESSION['usuario'] = $row['nick']; $fecha = time(); $ip = "xxx.xxx.xxx.xxx"; mysql_query("UPDATE usuarios SET uconexion_fecha='$fecha', uconexion_ip='$ip' , conexiones=conexiones+1, intentos=0 WHERE id_usuario='$row[id_usuario]' LIMIT 1",$conexion); header("Location: /team/multiUserLog-In/welcome.php"); } else { mysql_query("UPDATE usuarios SET intentos=intentos+1 WHERE id_usuario='$row[id_usuario]' LIMIT 1",$conexion); echo "Contraseña incorrecta."; } } else { echo "Cuenta bloqueada ..."; } } else { echo "No existe tal usuario."; } } else { echo "nick no valido"; } } else { header("Location: ../index.php"); } ?> |
| |||
Fijate .. aquí .. generas tus variables de sesión actual: session_start(); $_SESSION['id_usuario'] = $row['id_usuario']; $_SESSION['usuario'] = $row['nick']; Ya te comenté una vez más que tienes que crear un campo nuevo en tu tabla de "usuarios" para indicar el "nivel" del usuario en tu sistema. Una vez que lo tengas creado y dado un valor a tus usuarios creados .. tan sólo debes añadir otra asignación .. crear otra variable de sesión más para "saber" en todas las páginas que el usuario navegue en tu aplicación que "nivel" de usuario tiene: session_start(); $_SESSION['id_usuario'] = $row['id_usuario']; $_SESSION['usuario'] = $row['nick']; $_SESSION['usuario_nivel'] = $row['nivel']; Y listo ... ahora sólo tienes que aplicar otro "IF" en tus páginas que desees restringir por nivel .. por ejemplo .. restringir una página sólo a usuarios con nivel "1" (tus "Administradores" .. sólo tienes que componer tu IF condicional como necesites): Código PHP: Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
Todo bien hasta que llega a header("location: noautorizado_nivel.php"); Código PHP: No descrimina si el usuario tiene nivel 0 o 1 Código PHP: |
| |||
Cita: Pero tu estás seguro que la variable de sesión se crea y con el valor esperado? .. Lo has comprobado? .. tengo creada el acceso nivel con el nombre "nivel" y no se porq me tira ese error Por favor .. debes adjuntar TODO el dichoso código que vas modificando y como te va quedando. Visto que algunos conceptos no los aplicas correctamente es necesario constantemente ir revisandolos .. lo que tu omites .. por ahí tienes el problema (la mayoría de casos). Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
Código PHP: |
| ||||
Observando tu código: Código PHP: Código PHP: |
| ||||
Te pido de favor que realizes los cambios, y nos comentes como te fue. Porque como estas asignado el valor a $_SESSION['nivel'] es incorrecto debido en que tu query tienes lo siguiente "SELECT id_usuario,nick,pass,intentos,usuario_nivel FROM usuarios WHERE nick='$nick' LIMIT 1",$conexion); Y la session la estas declarando $_SESSION['nivel'] = $row['nivel']; el campo nivel no existe en tu tabla. Saludillos. |
| ||||
Código PHP: |
| |||
Cita: Así es .. en tu tabla haces referencia al campo de nombre "usuario_nivel" y luego obtienes "nivel" .. no corresponde.
Iniciado por mauled Te pido de favor que realizes los cambios, y nos comentes como te fue. Porque como estas asignado el valor a $_SESSION['nivel'] es incorrecto debido en que tu query tienes lo siguiente "SELECT id_usuario,nick,pass,intentos,usuario_nivel FROM usuarios WHERE nick='$nick' LIMIT 1",$conexion); Y la session la estas declarando $_SESSION['nivel'] = $row['nivel']; el campo nivel no existe en tu tabla. Saludillos. (Te fijas lo IMPORTANTE que es colocar el código que te va quedando tras recibir los consejos que te damos y tu aplicas? .. Fueses más "metódico" en este aspecto hace días que tendrías resuelto tu problema). Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| |||
Cita: Y tu sabes que hace != ?
Iniciado por hulray Código PHP: Si no lo sabes, es tu deber -preguntar- .. así aprenderas lo que te damos como ejemplos ... Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
Cita:
Iniciado por Cluster Fijate .. aquí .. generas tus variables de sesión actual: session_start(); $_SESSION['id_usuario'] = $row['id_usuario']; $_SESSION['usuario'] = $row['nick']; Ya te comenté una vez más que tienes que crear un campo nuevo en tu tabla de "usuarios" para indicar el "nivel" del usuario en tu sistema. Una vez que lo tengas creado y dado un valor a tus usuarios creados .. tan sólo debes añadir otra asignación .. crear otra variable de sesión más para "saber" en todas las páginas que el usuario navegue en tu aplicación que "nivel" de usuario tiene: session_start(); $_SESSION['id_usuario'] = $row['id_usuario']; $_SESSION['usuario'] = $row['nick']; $_SESSION['usuario_nivel'] = $row['nivel']; Y listo ... ahora sólo tienes que aplicar otro "IF" en tus páginas que desees restringir por nivel .. por ejemplo .. restringir una página sólo a usuarios con nivel "1" (tus "Administradores" .. sólo tienes que componer tu IF condicional como necesites): Código PHP: Un saludo, Cita: Ya lo soluciones Cluster, y ya habia cambiado ese parametro q me dijo mauled, te agradezco tu paciencia, ya que la estabas perdiendo, jaja.
Iniciado por Cluster Así es .. en tu tabla haces referencia al campo de nombre "usuario_nivel" y luego obtienes "nivel" .. no corresponde. (Te fijas lo IMPORTANTE que es colocar el código que te va quedando tras recibir los consejos que te damos y tu aplicas? .. Fueses más "metódico" en este aspecto hace días que tendrías resuelto tu problema). Un saludo, |
| ||||
Jejeje creo que si Cluster hubiera perdido aunque un sea poco la paciencia no te hubiera apoyado. Lo que es un poco frustante es que no realizaras los cambios que se te pedian. Toma en cuenta que todo lo que se te dijo fue, para que en un futuro se te pueda brindar una mejor solución y de esta manera ahorrarse tiempo. Saludillos. |
| |||
Cita: Por el tema "paciencia" no se preocupen .. tengo mucha .. sino no estaría aquí con mis 33K mensajes o más a la fecha ..
Iniciado por mauled Jejeje creo que si Cluster hubiera perdido aunque un sea poco la paciencia no te hubiera apoyado. Lo que es un poco frustante es que no realizaras los cambios que se te pedian. Toma en cuenta que todo lo que se te dijo fue, para que en un futuro se te pueda brindar una mejor solución y de esta manera ahorrarse tiempo. Saludillos. Lo que si que veo mucho es que hay muchooooos problemas que se podrían resolver "de una patada" al instante casi si quien pregunta aportase todos los datos necesarios de su problema o .. si se le pieden algunos que faltaban .. los aportase completos. Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |