Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
Cargando

Autor Tema: Ayuda en PHP y MySQL  (Leído 647 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Prohibido527

  • Residente de Hack x Crack [L4]
  • ****
  • Topic Author
  • Mensajes: 301
  • ...El pensamiento me hace libre...
    • Ver Perfil
Ayuda en PHP y MySQL
« en: Julio 20, 2012, 11:31:23 pm »
Buenas!!! querida comunidad!!

Lo que pasa es que estoy tratando de hacer un login en PHP y MySQL no entiendo bien la logica de lo siguiente!!:

Quiero crear 2 tipos de usuarios uno que administre la base de datos y otro que solo pueda consultar... pero investigue y encontre algo sobre la funcion GRANTS pero no entiendo la logica o por que es que los usuarios que uno crea no quedan en X tabla para luego verificar si en verdad existe el usuario...
Es decir los usuarios que uno crea con GRANTS no quedan guardadas en la tabla usuarios... Cosa que me parece super importantisima para la verificacion del login...
De antemao muchisixizicimas gracias
Saludos

Investiga, Lee, Estudia...  Hablaremos largo tiempo

Desconectado Weyne

  • Nuevo en la comunidad [L1]
  • **
  • Mensajes: 53
  • Lo que se hereda no se roba
    • Ver Perfil
Re:Ayuda en PHP y MySQL
« Respuesta #1 en: Julio 21, 2012, 12:52:48 am »
Cuando creas un usuario dentro de Mysql, ese Usuario sirve para que puedas asignarle “permisos” (GRANT en español significa CONCEDER) y así poder manejar de forma segura tu base de datos (seguridad), por ejemplo puedes crear 2 usuarios, puedes llamarlo “administrador” y el otro “usuario”, desde Mysql puedes asignar que “administrador” tenga todos los permisos de lectura, escritura y modificación sobre las tablas dentro de una base de datos en especifico, mientras que “usuario” solo podrá consultar (SELECT ) los datos de las tablas que a ti mejor te parezcan.
 
Ahora si en tu sistema quieres tener un login, con el cual verificar que tipo de usuario se esta logeando ya es otra cosa.
Primero que nada dentro de tu base de datos tendrás que tener una tabla llamada “USUARIOS” , la estructura básica es: ID,NOMBRE,CLAVE,TIPO_USUARIO.
Ejemplo:
__________________________________________________
                                USUARIOS
__________________________________________________
ID           Nombre              Clave                     Tipo_Usuario
1             Juan                      123456                  0
2             Pepe                     654321                  1
__________________________________________________
 
Donde el campo “Tipo_Usuario” contendrá el tipo de rol que tendrá dentro de tu sistema, en este ejemplo “0” será para identificar a un administrador, mientras que “1” servirá para identificar a un usuario normal.
Ya luego en tu aplicación necesitaras guardar el valor en una variable de sesión y verificar mediante “if” el contenido que mostrarás (creatividaaad!).
PD: si me equivoque en algo háganme saber.


Saludos.

Desconectado Prohibido527

  • Residente de Hack x Crack [L4]
  • ****
  • Topic Author
  • Mensajes: 301
  • ...El pensamiento me hace libre...
    • Ver Perfil
Re:Ayuda en PHP y MySQL
« Respuesta #2 en: Julio 21, 2012, 01:22:22 am »
Haber...
La mayoria de lo que has dicho ya lo hize...

La tabla de ususarios
Anexo imagenes para que no piensen que no he hecho nada y quiero que me lo digan todo...
Image Hosted by ImageShack.us
Shot at 2012-07-20



El Login
Image Hosted by ImageShack.us
Shot at 2012-07-20



Y por ultimo el code de el fichero que verifica la autenticidad del user y pass
Código: [Seleccionar]
<head>
    <title>Verificacion</title>
</head>
<?php
    include ("fuente.php");
    include ("coneccion.php");
    // Configura los datos de tu cuenta;
    session_start();
    // Conectar a la base de datos
    mysql_connect ($dbhost, $dbusername, $dbuserpass);
    mysql_select_db($dbname) or die('Cannot select database');
    if ($_POST['usuario'])
    {
        //Comprobacion del envio del nombre de usuario y password
        $username = $_POST['usuario'];
        $password = md5($_POST['password']);
        if ($password==NULL)
        {
            echo "La password no fue enviada <a href = login.php> Volver? " ;
        }
        else
        {
            $query = mysql_query("SELECT USUARIO, PASSWORD FROM usuarios WHERE USUARIO = '$username'") or die(mysql_error());
            $data = mysql_fetch_array($query);
            if($data['PASSWORD'] != $password)
            {

                echo "Login incorrecto <a href = login.php> Volver?";
            }
            else
            {
                $query = mysql_query("SELECT NOMBRES, APELLIDOS, USUARIO, PASSWORD FROM usuarios WHERE USUARIO = '$username'") or die(mysql_error());
                $row = mysql_fetch_array($query);
                $_SESSION["s_username"] = $row['NOMBRES'];
                echo "Has sido logueado correctamente ".$_SESSION['s_username']." y puedes acceder al index.php.";
            }
        }
    }
?> /code]

Mi pregunta sigue siendo... como le doy permisos a cada uno de los usuarios que estan en dicha TABLA???

Investiga, Lee, Estudia...  Hablaremos largo tiempo

Desconectado ravenheart

  • Residente de Hack x Crack [L4]
  • ****
  • Mensajes: 344
  • No quiero preguntas técnicas por privado, gracias.
    • Ver Perfil
Re:Ayuda en PHP y MySQL
« Respuesta #3 en: Julio 21, 2012, 10:40:23 am »
No sé si te he entendido bien. Si lo que quieres es que por cada usuario de tu tabla USUARIOS haya también un usuario de base de datos, quizá deberías replantearte tu diseño.
Sería mucho más manejable tener como mucho dos o tres usuarios de BD con los permisos justos, y que todos se conecten con el mismo usuario.

Sin embargo, si realmente quieres hacerlo, aquí tienes toda la información que necesitarás:
http://dev.mysql.com/doc/refman/5.1/en/adding-users.html

Mira la versión de mySQL a la izquierda y asegúrate de escoger la tuya.
You do not need hope if you have drama to back you up.

Desconectado Weyne

  • Nuevo en la comunidad [L1]
  • **
  • Mensajes: 53
  • Lo que se hereda no se roba
    • Ver Perfil
Re:Ayuda en PHP y MySQL
« Respuesta #4 en: Julio 21, 2012, 03:49:14 pm »
Lo más fácil que podrías hacer es esto:


Código: [Seleccionar]

<head>
    <title>Verificacion</title>
</head>
<?php
    include ("fuente.php");
    include ("coneccion.php");
    // Configura los datos de tu cuenta;
    session_start();
    // Conectar a la base de datos
    mysql_connect ($dbhost, $dbusername, $dbuserpass);
    mysql_select_db($dbname) or die('Cannot select database');
    if ($_POST['usuario'])
    {
        //Comprobacion del envio del nombre de usuario y password
        $username = $_POST['usuario'];
        $password = md5($_POST['password']);
        if ($password==NULL)
        {
            echo "La password no fue enviada <a href = login.php> Volver? " ;
        }
        else
        {
            $query = mysql_query("SELECT USUARIO, PASSWORD FROM usuarios WHERE USUARIO = '$username'") or die(mysql_error());
            $data = mysql_fetch_array($query);
            if($data['PASSWORD'] != $password)
            {


                echo "Login incorrecto <a href = login.php> Volver?";
            }
            else
            {
                $query = mysql_query("SELECT NOMBRES, APELLIDOS, USUARIO, PASSWORD, TIPO FROM usuarios WHERE USUARIO = '$username'") or die(mysql_error());
                $row = mysql_fetch_array($query);
                $_SESSION["s_username"] = $row['NOMBRES'];
$_SESSION["s_TIPO"] = $row['TIPO']; //agregas una variable de session que mantengan el tipo de usuario logeado
                echo "Has sido logueado correctamente ".$_SESSION['s_username']." y puedes acceder al index.php.";
echo "<script>location.href='index.php'</script>"; //nueva linea
            }
        }
    }
?>






Luego en tu index, por medio de switch o if comparas que tipo de usuario es, y muestras el contenido que veas conveniente.


PD: Recuerda filtrar los datos recibidos, para evitar SQL Injection.

Desconectado kid_goth

  • EX-STAFF
  • ***
  • Mensajes: 1365
  • El Conocimiento se Limita Cuando dices NO PUEDO
    • Ver Perfil
    • BlogStudiantes
Re:Ayuda en PHP y MySQL
« Respuesta #5 en: Julio 21, 2012, 05:02:38 pm »
lo que pides no es tanto php es mas bien mysql...

veras:

1) te creas la DB que necesitas... a esta le asignas 2 usuarios (el root y el user)...

2) en php al momento del login te conectas a la DB con permisos de root puede ser o user como quieras y cuando entre segun el tipo que sea redeclaras la conexion para eso puedes crear alguna funcion :D en php asi: maso

Código: php [Seleccionar]

<?php
function conectar($usuario, $password)
{
    $host = "localhost";
    $db = "base_de_datos";
    $conexion = mysql_connect($host, $usuario, $password);
    mysql_select_db($db, $conexion);
}
?>


y listo ya despues creas algun input y una grilla que te de el resultado segun el usuario que haya cpnmectado ;)
Recuerda que aunque tu vida haya sido dificil o facil en la muerte encontraras que para todos es igual...
(Justicia Divina)

Desconectado Prohibido527

  • Residente de Hack x Crack [L4]
  • ****
  • Topic Author
  • Mensajes: 301
  • ...El pensamiento me hace libre...
    • Ver Perfil
Re:Ayuda en PHP y MySQL
« Respuesta #6 en: Julio 25, 2012, 01:42:04 am »
Bnno primero que todo muchisiisixicimas gracias por las respuestas!!
Les cuento...
opte por una forma que no se si esta bien o mal perooo si me doy cuenta que nadie lo hace de esta manera... Lo que hize fue una funcion que hacia una consulta hacerca del tipo de usuario que se esta logueando, y dependiendo a ello lo redirecciona a la pagina adecuanda.. por ejemplo:
Tipo                     Pagina Direccionada
Administrador              Administracion.php
Tecnico                      Modificacion.php
Consultor                   Consulta.php
ahora tengo que prohibir obviamente el ingreso a la pagina Administracion y Modificacion.. Por usuarios que no se hayan logueado simplemente tipeando www.website.com/Administracion.php!!! No se que pienen de este metodo sersa poco efectivo o que piensan???

Investiga, Lee, Estudia...  Hablaremos largo tiempo