Pregunta:
Fecha: 18-10-2018 10:38:30
(En Español)
codigo de inicio de sesion
<form action="proceso2.php" method="POST">
<table>
<td>
<input type="text" name="usuario" value="" placeholder="usuario" required="">
</td>
</table>
<table>
<td>
<input type="password" name="clave" value="" placeholder="clave" required="">
</td>
</table>
<table>
<td>
<input type="submit" value="Ingresar">
</td>
</table>
</form>
y este es mi codigo php
<?php
session_start();
//session_destroy()
$usuario=$_POST['usuario'];
$clave=$_POST['clave'];
include("conexion.php");
$proceso = $conexion->query("SELECT * FROM usuarios WHERE usuario='$usuario' and clave='$clave' ");
if( $resutlado = mysqli_fetch_array($proceso)){
$_SESSION['grupo'] =='A';
header("location:acin.php");
}
else{
header("location:acin2.php");
}
?>
esta es mi base de Datos
Tabla: usuarios
id,usuario,clave,grupo(A y B( niveles de acceso))
hasta ahora funciona el IF ya que me muestra las diferentes paginas pero mi problema sale cuando quiero que el grupo A entre a una pagina y el grupo B entre a otra ya que actualmente el grupo A y B entran a la misma pagina y los errore de inicio de sesion estan entrando a la otra, creo que mi problema esta en la condicion IF yo trato de usar el condicional con el grupo para poder abrir paginas distintas $_SESSION['grupo'] =='A'; pero no me esta funcionando
claro mi pregunta quiero crear un menu distinto para los Usuarios A y otro para los B ya los menus los tengo creado solo me falta poder enviar los A a una pagina y los B a otro
gracias y disculpen la molestias Votos: 0 - Respuestas: 4 - Vistas: 21 Compartir en: Google Facebook Twitter LinkedIn Link
crear menus diferentes segun los ususarios[Resuelta]
hola nuevamente quiero crear un menu diferentes para los diferentes usuarios que se conecten hasta ahora llevo estocodigo de inicio de sesion
<form action="proceso2.php" method="POST">
<table>
<td>
<input type="text" name="usuario" value="" placeholder="usuario" required="">
</td>
</table>
<table>
<td>
<input type="password" name="clave" value="" placeholder="clave" required="">
</td>
</table>
<table>
<td>
<input type="submit" value="Ingresar">
</td>
</table>
</form>
y este es mi codigo php
<?php
session_start();
//session_destroy()
$usuario=$_POST['usuario'];
$clave=$_POST['clave'];
include("conexion.php");
$proceso = $conexion->query("SELECT * FROM usuarios WHERE usuario='$usuario' and clave='$clave' ");
if( $resutlado = mysqli_fetch_array($proceso)){
$_SESSION['grupo'] =='A';
header("location:acin.php");
}
else{
header("location:acin2.php");
}
?>
esta es mi base de Datos
Tabla: usuarios
id,usuario,clave,grupo(A y B( niveles de acceso))
hasta ahora funciona el IF ya que me muestra las diferentes paginas pero mi problema sale cuando quiero que el grupo A entre a una pagina y el grupo B entre a otra ya que actualmente el grupo A y B entran a la misma pagina y los errore de inicio de sesion estan entrando a la otra, creo que mi problema esta en la condicion IF yo trato de usar el condicional con el grupo para poder abrir paginas distintas $_SESSION['grupo'] =='A'; pero no me esta funcionando
claro mi pregunta quiero crear un menu distinto para los Usuarios A y otro para los B ya los menus los tengo creado solo me falta poder enviar los A a una pagina y los B a otro
gracias y disculpen la molestias Votos: 0 - Respuestas: 4 - Vistas: 21 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 18-10-2018 13:37:05 He replicado tu proyecto
Suponiendo que la tabla usuarios sea la siguiente.
Naturalmente la clave no debe ser texto plano debe ser hasheado password_hash. Este caso es meramente ilustrativo.
Usando la estructura de control SWITCH
Archivo: proceso2.php
<?php session_start(); $usuario=$_POST['usuario']; $clave=$_POST['clave']; include("conexion.php"); $proceso = $conexion->query("SELECT * FROM usuarios WHERE usuario='$usuario' and clave='$clave' "); // Se verifica que se obtenga al usuario con pass correctos if($resutlado = mysqli_fetch_array($proceso)){ // el usuario y el pass son correctos // identifico el grupo de pertenencia switch ($resutlado['grupo']){ case 'A': // Pertenece al Grupo A $_SESSION['grupo'] = $resutlado['grupo']; header("location:acin.php"); break; case 'B': // Pertenece al Grupo B $_SESSION['grupo'] = $resutlado['grupo']; header("location:acin2.php"); break; default: echo 'El usuario no tiene grupo definido.'; } }else{ // el usuario y/o el pass no son correctos echo 'Usuario y/o Password incorrectos.'; }
También debes tener en cuenta, como puedes observar en la tabla de usuario, el usuario yerlin no tiene ningun grupo, en tal caso se resuelve en
default: echo 'El usuario no tiene grupo definido.';
También se puede hacer con IF en vez de switch para verificar el grupo, el cual no me agrada mucho esta lógica, igual te dejo el código.
Archivo: proceso2.php
<?php session_start(); $usuario=$_POST['usuario']; $clave=$_POST['clave']; include("conexion.php"); $proceso = $conexion->query("SELECT * FROM usuarios WHERE usuario='$usuario' and clave='$clave' "); // Se verifica que se obtenga al usuario con pass correctos if($resutlado = mysqli_fetch_array($proceso)){ // el usuario y el pass son correctos // identifico el grupo de pertenencia if ($resutlado['grupo'] =='A'){ $_SESSION['grupo'] = $resutlado['grupo']; header("location:acin.php"); } if ($resutlado['grupo'] =='B'){ $_SESSION['grupo'] = $resutlado['grupo']; header("location:acin2.php"); } // No tiene grupo de pertenencia if ($resutlado['grupo'] ==null){ echo 'El usuario no tiene grupo definido.'; } }else{ // el usuario y/o el pass no son correctos echo 'Usuario y/o Password incorrectos.'; }
En este ejemplo como puedes observar en la tabla de usuario, el usuario yerlin no tiene ningun grupo, en tal caso se resuelve en
// No tiene grupo de pertenencia if ($resutlado['grupo'] ==null){ echo 'El usuario no tiene grupo definido.'; }
Como dije es mejor utilizar switch del primer ejemplo ya que es mas entendible y si agregas otros grupos puedes colocarlos en la estructura de case
Es posible de resolverlo de varias formas distintas de resolverlo.
Otra es tener los grupos con la página a redirigir en un array asociativo
Ejemplo práctico:
<?php $gruposValidos= array("A"=>"acin.php","B"=>"acin2.php"); $grupoDelUsuario = "A"; // compruebo que el grupo existe if (array_key_exists($grupoDelUsuario ,$gruposValidos)) { header("location:$gruposValidos[$grupoDelUsuario]"); }else{ echo "No tiene grupo asignado el usuario."; } ?>
Código del proyecto:
// Se verifica que se obtenga al usuario con pass correctos if($resutlado = mysqli_fetch_array($proceso)){ // el usuario y el pass son correctos // identifico el grupo de pertenencia $gruposValidos= array("A"=>"acin.php","B"=>"acin2.php"); // compruebo que el grupo existe if (array_key_exists($resutlado['grupo'] ,$gruposValidos)) { $_SESSION['grupo'] = $resutlado['grupo']; header("location:$gruposValidos[$resutlado['grupo']]"); }else{ echo "No tiene grupo asignado el usuario."; } }else{ // el usuario y/o el pass no son correctos echo 'Usuario y/o Password incorrectos.'; }
Claro que en El usuario no tiene grupo definido se puede redirigir a otra pagina.
Espero que te sea útil y que logres entender el codigo.
Saludos Votos: 5 - Link respuesta -
Fecha: 22-10-2018 05:17:04 Saludos desde Ecuador.
Como se menciona en la respuesta anterior hay muchas formas de realizar este requerimiento.
Rápidamente te comento como lo manejaría: en la tabla usuarios un campo es el que determina el grupo o tipo y ese es el que determina al momento del logueo (luego de verificar el usuario y contraseña e ingresar a la sesión) a qué tipo de usuario pertenece; de ahí, sea con un if o un case se podría incluir (include en php) la programación del menú que corresponda a ese tipo.
Tengo varios sistemas con esa lógica y trabajan correctamente.
Espero que la respuesta te resulte útil. Votos: 2 - Link respuesta -
Fecha: 23-10-2018 05:38:24 Hola a todos gracias por su ayuda me sirvieron de mucho todas y cada una Gracias walter por tu ejemplo lo entendi a la primera tu ejemplo del IF era el que estaba tratando de hacer me gusto el ejemplo de switch por su variedad de opciones gracias a todos de verdad su ayuda y sus conocimientos mi duda fue aclara gracias. Votos: 0 - Link respuesta
-
Fecha: 24-10-2018 17:08:03 Yerlin que bueno que te haya servido
Pasa a resuelta a la pregunta ;)
Saludos Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión