Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/05/2008, 11:35
marx-pola
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años, 10 meses
Puntos: 1
Autenticación de Usuarios - A ver si lo hice bien.

Hola a todos! Estuve dando vueltas por el foro tratando de armar una parte de mi sitio con usuario y pass pero hay cosas que no sé si las hice bien y esto es una recopilación que hice y estoy probando. Por eso quería ponerles mis códigos y si pueden, acepto todas las correcciones y sugerencias para poder ajustarlo lo mejor posible. Veamos.

login.php
Código PHP:
include('conectar.php');

if(!isset(
$_SESSION[usuario]) )
{

echo 
'<form action="autentificar.php" method="POST">
        Nick: <input type="text" name="nick" size="30"><br>
        Password: <input type="password" name="pass" size="30" ><br>
      <input type="submit" name="submit" value="Enviar"></form>'
;

}else{

echo 
'Bienvenido '.$_SESSION[usuario];
echo 
'<br>Tu nivel es '.$_SESSION[nivel];
if(
$_SESSION[nivel] == 1)
{
header('Location: paginaprivada.php');
}
echo 
'<br><a href=logout.php>Salir</a>'

autenticar.php
Código PHP:
include('conectar.php');

if( (
$_POST[nick] == ' ') or ($_POST[pass] == ' ') )
{
Header("Location:login.php");
}else{

//comprobamos en la db si existe ese nick con esa pass
$usuarios=mysql_query("SELECT * FROM usuarios WHERE nick_usuario='$_POST[nick]' and password_usuario='$_POST[pass]' ");
if(
$user_ok mysql_fetch_array($usuarios))
{

session_register("usuario");
session_register("idusuario");
session_register("nivel");

$_SESSION[usuario] = $user_ok["nick_usuario"];
$_SESSION[codusuario] = $user_ok["id_usuario"];
$_SESSION[nivel] = $user_ok["nivel_usuario"];

Header("Location: login.php");

}else{
echo 
'Nick y pass incorrectos';
}


Básicamente esto es lo que hice pero quisiera preguntarles:
- ¿Así está bien o hay otra forma de hacerlo? ¿se podría hacer algo "un poco más seguro"?
- ¿como hacer para que no se pueda entrar desde el navegador tipeando las direcciones de las páginas privadas? ¿se puede restringir por ejemplo llamando a la session iniciada con un include?

Gracias de entemano y saludos para todos. Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.