Comunidad de diseño web y desarrollo en internet online

login en php

Citar            
MensajeEscrito el 18 Mar 2011 09:13 am
Hi !!!, saludos, me llamo Anahi, soy nueva en el foro, tengo un problema, no se como dar privilegios a los usuarios que se registren en la página, una vez registrados, puden ingresar su username y password y entrar, cada vez que se van registrando mas usuarios para ingresar al sistema, que a estos se les asigne un privilegio, que tengan diferentes accesos a ciertas partes del sistema, si es un administrador, que tenga total acceso a el, si es un usario "x", que solamente pueda ver ciertas partes, ¿como pudeo hacerle para que dependiendo del usuario, le muestre un menu diferente?, y asi mediante las opciones que le ofrece el menu, pueda tener acceso a varias partes del sistema.

Este código funciona, pero no se como implementar eso que les comento, por favor, ¿podrian ayudarme?

index.php

Código PHP :

<?php
session_start();
?>
M&aacute;s ejemplos en <a href="http://www.empresario.com.mx">Empresario.com.mx</a><br />
Gracias por tus comentarios.<br />
<?php
echo 'Bienvenido, ';
if (isset($_SESSION['k_username'])) {
   echo '<b>'.$_SESSION['k_username'].'</b>.';
   echo '<p><a href="logout.php">Logout</a></p>';
}else{
   echo '<p><a href="login.php">Login</a></p>
    <p><a href="registrar.php">Registrar</a></p>';
}
?>


login.php

Código HTML :

<form action="validar_usuario.php" method="post">
Usuario:<input type="text" name="usuario" size="20" maxlength="20" />
<br />
Password:<input type="password" name="password" size="10" maxlength="10" />
<br />
<input type="submit" value="Ingresar" />
</form>


logout.php

Código PHP :

<?php
session_start();
// Borramos toda la sesion
session_destroy();
echo 'Ha terminado la session <p><a href="index.php">index</a></p>';
?>
<SCRIPT LANGUAGE="javascript">
location.href = "index.php";
</SCRIPT>


registrar.php

Código PHP :

<?php
session_start();
//datos para establecer la conexion con la base de mysql.
mysql_connect('localhost','root','admin')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('mi_base')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
function formRegistro(){
?>
<form action="registrar.php" method="post">
Usuario (max 20): 
  <input type="text" name="username" size="20" maxlength="20" /><br />
Password (max 10): 
<input type="password" name="password" size="10" maxlength="10" />
Confirma: <input type="password" name="password2" size="10" maxlength="10" /><br />
Email (max 40): 
<input type="text" name="email" size="20" maxlength="40" /><br />
<input type="submit" value="Registrar" />
</form>
<?php
}
// verificamos si se han enviado ya las variables necesarias.
if (isset($_POST["username"])) {
   $username = $_POST["username"];
   $password = $_POST["password"];
   $password2 = $_POST["password2"];
   $email = $_POST["email"];
   // Hay campos en blanco
   if($username==NULL|$password==NULL|$password2==NULL|$email==NULL) {
      echo "un campo está vacio.";
      formRegistro();
   }else{
      // ¿Coinciden las contraseñas?
      if($password!=$password2) {
         echo "Las contraseñas no coinciden";
         formRegistro();
      }else{
         // Comprobamos si el nombre de usuario o la cuenta de correo ya existían
         $checkuser = mysql_query("SELECT usuario FROM usuarios WHERE usuario='$username'");
         $username_exist = mysql_num_rows($checkuser);
         $checkemail = mysql_query("SELECT email FROM usuarios WHERE email='$email'");
         $email_exist = mysql_num_rows($checkemail);
         if ($email_exist>0|$username_exist>0) {
            echo "El nombre de usuario o la cuenta de correo estan ya en uso";
            formRegistro();
         }else{
            $query = 'INSERT INTO usuarios (usuario, password, email, fecha)
            VALUES (\''.$username.'\',\''.$password.'\',\''.$email.'\',\''.date("Y-m-d").'\')';
            mysql_query($query) or die(mysql_error());
            echo 'El usuario '.$username.' ha sido registrado de manera satisfactoria.<br />';
            echo 'Ahora puede entrar ingresando su usuario y su password <br />';
            ?>
            <FORM ACTION="validar_usuario.php" METHOD="post">
              Usuario : <INPUT TYPE="text" NAME="usuario" SIZE=20 MAXLENGTH=20><br />
              Password: <INPUT TYPE="password" NAME="password" SIZE=10 MAXLENGTH=10><br />
              <INPUT TYPE="submit" VALUE="Ingresar">
            </FORM>
            <?php
         }
      }
   }
}else{
   formRegistro();
}
?>


validar_usuario.php

Código PHP :

<?php
session_start();
//datos para establecer la conexion con la base de mysql.
mysql_connect('localhost','root','admin')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('mi_base')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
function quitar($mensaje)
{
   $nopermitidos = array("'",'\\','<','>',"\"");
   $mensaje = str_replace($nopermitidos, "", $mensaje);
   return $mensaje;
}
if(trim($HTTP_POST_VARS["usuario"]) != "" && trim($HTTP_POST_VARS["password"]) != "")
{
   
   $usuario = strtolower(htmlentities($HTTP_POST_VARS["usuario"], ENT_QUOTES));
   $password = $HTTP_POST_VARS["password"];
   $result = mysql_query('SELECT password, usuario FROM usuarios WHERE usuario=\''.$usuario.'\'');
   if($row = mysql_fetch_array($result)){
      if($row["password"] == $password){
         $_SESSION["k_username"] = $row['usuario'];
         echo 'Has sido logueado correctamente '.$_SESSION['k_username'].' <p>';
         echo '<a href="index.php">Index</a></p>';
         
      }else{
         echo 'Password incorrecto';
      }
   }else{
      echo 'Usuario no existente en la base de datos';
   }
   mysql_free_result($result);
}else{
   echo 'Debe especificar un usuario y password';
}
mysql_close();
?>


base de datos mi_base

Código MySQL :

CREATE TABLE `usuarios` (
  `id` int(11) NOT NULL auto_increment,
  `usuario` varchar(20) NOT NULL,
  `password` varchar(10) NOT NULL,
  `descripcion` text character set utf8 collate utf8_spanish_ci,
  `email` varchar(45) character set utf8 collate utf8_spanish_ci default NULL,
  `fecha` date NOT NULL,
  PRIMARY KEY  (`id`)
)


:D Gracias por la atención !!!

Por powergirl

6 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 18 Mar 2011 03:25 pm
bueno aun no termino mi proyecto pero lo que yo realize para hacer privilegios es que cada usario pertenesca a un grupo
osea tienes la tabla de usuarios y otra de grupos
se las relaciona una con la otra y al hacer el login extraes los permisos del grupo y los almacenas en variables persistentes como la de $_SESSIONS

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Mar 2011 08:47 pm
¡Hola tu admin!, gracias por el consejo, podrias mandarme un ejemplo senciillo de como deveo hacerlo.

Por powergirl

6 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 20 Mar 2011 03:44 pm
un ejemplo sencillo mmm bueno el jueves lo posteare en este foro para todos los usuarios usando persistencia de datos y POO
pero te pediria que leas y busques ejemplos de POO funciones y classes como las SPL que estan en el nucleo de PHP para q entiendas el ejemplo quen pondre puedes buscar en este foro todas las respuestas que puse ya que uso generalmente funciones y classes de php 5.3
como iteradores para que veas a modo de ejemplo

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Mar 2011 12:10 am
Muchas gracias tuadmin !!!, estoy siguiendo tus consejos, ya me estoy documentado más sobre POO en php y como utilizar mejor las clases.

Por powergirl

6 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 25 Mar 2011 02:35 pm
asu, muy bien explicado. Aunque solo porque es mujer me parece :)

Por edge

57 de clabLevel



Genero:Masculino  

Software developer

chrome
Citar            
MensajeEscrito el 25 Mar 2011 04:18 pm
Si utilizas Adobe Dreamweaver puedes crear de manera muy simple y asisitida un sistema de registro y logueo de usuarios por niveles.
Si quieres más información (porque usas Dreamweaver) responme y te lo explico.

Un saludo.

Por marticps

Claber

103 de clabLevel



Genero:Masculino  

Aprendiz de Todo

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.