Domingo 22 de Diciembre de 2024, 19:45
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación Web y Scripting
»
PHP
(Moderador:
F_Tanori
) »
Control de Acceso?
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Control de Acceso? (Leído 2188 veces)
Comodoro
Miembro activo
Mensajes: 73
Control de Acceso?
«
en:
Sábado 22 de Mayo de 2010, 01:38 »
0
Hola a todos/as he realizado un Control de Acceso, en el cual cualquier Usuario que este Registrado en la Tabla Usuario puede entrar al Sistema.
Lo que quiero hacer es que este Control de Usuario tenga varios Niveles o Roles de Usuario, que dependiendo del Tipo de Usuario el pueda accesar solo a ciertas paginas del Sistema.
Lo que quiero hacer:
1.- Que dependiendo del Tipo de Usuario que sea la Persona; cuando este escriba su Nombre de Usuario y Password que lo Direccione a una Determinada Pagina.
La BD es esta:
id_usuario
usuario
clave
respuesta
nivel Es en este Campo es donde va a ir el Nivel del Usuario (Administrador, Usuario_1 y Usuario_2)
El codigo Php
(Este codigo Funciona, lo que me faltaria es que dependiendo del Nivel te Re-direccione, no se como hacerlo)
<?Php
//include ("../Include/Conexion.php");
$servidor = "localhost";
$usuario = "root";
$password = "";
$db = "cacique";
$cn = mysql_connect ($servidor, $usuario, $password) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($db, $cn);
session_start();
if (isset($_POST['Enviar']))
{
$user = $_POST['user'];
$pass = $_POST['pass'];
if (($_POST['user'] == "") or ($_POST['pass'] == ""))
{
echo '<script>alert("Llene los Campos");</script>';
}else
{
$query = mysql_query ("SELECT usuario, clave FROM usuarios WHERE usuario = '$_POST[user]' AND clave = '$_POST[pass]'");
$Ssql = mysql_fetch_array($query);
if (($Ssql['usuario'] != $user) or ($Ssql['clave'] != $pass)){
echo '<script>alert("Nombre de Usuario o Contraseña Invalido");</script>';
}else
{
session_register ("user");
$_SESSION[user] = $Ssql ["usuario"];
header ("Location: Seccion_Usuario.php");
}
}
}
?>
Bueno eso es todo espero quue me puedan ayudar, lo agradeceria Mucho!
Tweet
fonsi3
Miembro activo
Mensajes: 95
Re: Control de Acceso?
«
Respuesta #1 en:
Sábado 22 de Mayo de 2010, 03:24 »
0
session_register ("user"); está deprecado, directamente puedes poner $_SESSION['user'] = 'Morfon' y todo ok.
Sobre tu duda de redireccionar a x lugar dependiendo que tipo de usuario es, bueno primero debes obtener que nivel de usuario tiene tal usuario, luego ya sabiendo que nivel de usuario posee, ya sabrás adónde redireccionarlo, por ejemplo:
Aviso que tienes un enorme error de seguridad, al poner directamente en la query $_POST['....'], primero debes satinizar la variable!!
Código: PHP
<?php
// sanitizo la variables:
$usuario
=
mysql_real_escape_string
(
$_POST
[
'usuario'
]
)
;
$clave
=
mysql_real_escape_string
(
$_POST
[
'clave'
]
)
;
// preparo la consulta
$query
=
" SELECT usuario, nivel FROM usuarios
WHERE usuario = '
$usuario
' AND clave = '
$clave
' LIMIT 1 "
;
// la mando
$result
=
mysql_query
(
$query
)
;
// pregunto si no arrojo resultados
if
(
!
$result
)
{
die
(
'Fatal error: Usuario/Contraseña incorrecto.'
)
;
}
else
{
// todo ok, tonces fetcheo la fila
$row
=
mysql_fetch_assoc
(
$result
)
;
$_SESSION
[
'usuario'
]
=
$row
[
'usuario'
]
;
$_SESSION
[
'nivel'
]
=
$row
[
'nivel'
]
;
// pregunto que nivel tiene el usuario, y lo redirecciono
switch
(
$_SESSION
[
'nivel'
]
)
{
case
'admin'
:
header
(
'Location: adminpanel.php'
)
;
break
;
case
'user'
:
header
(
'Location: userpanel.php'
)
;
break
;
}
}
?>
Cha che chi cho chu buenichimo!
http://mensoscripts.com
Links de interes:
HTML
|
CCS2
~
CSS*
|
PHP
Indispensables tools]Firebug[/url] |
Web Developer
|
FireFTP
|
Live Headers
Comodoro
Miembro activo
Mensajes: 73
Re: Control de Acceso?
«
Respuesta #2 en:
Sábado 22 de Mayo de 2010, 15:17 »
0
Muchas gracias por Responder, habia intentado de hacerlo pero nada no me salia, y otra pregunta tu mencionas algo de Satanizar la Varible que es eso, me podrias explicar el Error que estoy cometinedo porque yo no lo Veo, tu escribes esto!:
Aviso que tienes un enorme error de seguridad, al poner directamente en la query $_POST['....'], primero debes satinizar la variable!!
fonsi3
Miembro activo
Mensajes: 95
Re: Control de Acceso?
«
Respuesta #3 en:
Sábado 22 de Mayo de 2010, 15:40 »
0
Como todos los datos que se almacenan en $_POST los ingresa el usuario, es posible que algun hijo de puta escriba codigo malicioso en los textboxes, y si no sanitizas las variables, es decir limpiarlas, corres el riesgo de sufrir lo que se denomina una
sql injection
. Por eso como veras para evitar eso utilizo la funcion mysql_real_escape_string( ) que se encarga de escapar todo caracter problematico como la comilla, etc.
Cha che chi cho chu buenichimo!
http://mensoscripts.com
Links de interes:
HTML
|
CCS2
~
CSS*
|
PHP
Indispensables tools]Firebug[/url] |
Web Developer
|
FireFTP
|
Live Headers
Comodoro
Miembro activo
Mensajes: 73
Re: Control de Acceso?
«
Respuesta #4 en:
Sábado 22 de Mayo de 2010, 16:03 »
0
Ok, entendi Gracias por la Prontitud de tu Respuesta!
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación Web y Scripting
»
PHP
(Moderador:
F_Tanori
) »
Control de Acceso?