PHP - Como poner un usuario administrador y un usuario normal con php y mysql

   
Vista:

Como poner un usuario administrador y un usuario normal con php y mysql

Publicado por Adianec adianec94@gmail.com (6 intervenciones) el 30/05/2017 17:05:21
Hola me gustaría que por favor me ayudaran, estoy haciendo un trabajo de curso y me piden que ponga un rol de usuario administrador y un usuario normal, pero los codigos que tengo no me dan ningun error y tampoco funcionan. Por favor alguien que me ayude.
Hice dos tablas, una se llama usuarios y la otra administrador, y tienen un idusuario en cada una.
En la pagina principal tengo este formulario para que el usuario se loguee:

1
2
3
4
5
6
7
8
9
10
11
12
<form id="formr" method="post" action="../controlc/AdministrarSesiones.php" class="login" >
    <fieldset>
        <label for="text1">Usuario</label><br />
        <input id="text1" type="text" name="usuario" required/><br />
        <label for="text2">Contrase&ntilde;a</label><br />
        <input id="text2" type="password" name="password"  maxlength="15"
        onblur="return validar(this.value)" required/>
        <br />
        <br />
        <input type="submit" id="login"  name="login" value="" />
    </fieldset>
</form>

En la pagina de AdministrarSesiones tengo lo siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
session_start();
include_once "../includes/conexion2.php";
 
//Recibimos las dos variables
$usuario=$_POST["idusuario"];
$password=$_POST["password"];
 
/* Realizamos una consulta por cada tabla para buscar en que tabla se encuentra 
el usuario que está intentando acceder */
$user = mysql_query("SELECT * FROM usuarios WHERE user = '$usuario' AND password = '$password'");
$admin = mysql_query("SELECT * FROM administradores WHERE admin = '$usuario' AND password = '$password'");
/* Sabemos que en el caso que exista el usuario se encontrará en una de estas tres tablas,
por lo tanto se guardará en alguno de nuestras tres variables que guardan nuestra consulta */
 
/* Ahora comprobamos que variable contiene al usuario*/
if(empty($user))
{
/* Si entra en este if significa que el que intenta acceder es un usuario, por lo tanto le creamos una sesión */
    session_start();
 
    $_SESSION['user']="$usuario";
 
/* Nos dirigimos al espacio de los usuarios usando header que nos redireccionará a la página que le indiquemos */
    header("Location: ../vista/Inicio.php");
 
/* terminamos la ejecución ya que si redireccionamos ya no nos interesa seguir ejecutando código de este archivo */
    exit();
}
/* Ahora comprobamos si el que intenta acceder es un administrador */
else if(empty($admin))
{
    session_start();
    $_SESSION['admin']="$usuario";
    header("Location: ../vista/InicioAdmin.php");
    exit();
}
 
else
{
/* Si el usuario no se encuentra en ninguna de las tres tablas imprime el siguiente mensaje */
   $mensajeaccesoincorrecto = "El usuario y la contraseña son incorrectos, por favor vuelva a introducirlos.";
   echo $mensajeaccesoincorrecto;
}
 
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Como poner un usuario administrador y un usuario normal con php y mysql

Publicado por xve (6808 intervenciones) el 30/05/2017 17:40:59
Hola Adianec, entiendo que el problema es que no visualizas los errores, por eso no visualizas nada por pantalla.

Solo puedes definir: session_start(); una vez al inicio de la pagina.

Si revisas el log del servidor web, seguramente te indicara los errores.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como poner un usuario administrador y un usuario normal con php y mysql

Publicado por Adianec (6 intervenciones) el 30/05/2017 18:32:59
Mira xve he arreglado algunos errores y ahora cuando me logueo entra con los usuarios que estan en la base de datos pero siempre entra directo a la pagina de usuario, parece que hay algun problema a la hora de poner el if y else, pero no se bien cual podria ser.
Este es el codigo como va quedando...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
session_start();
include_once "../includes/conexion2.php";
 
//Recibimos las dos variables
$usuario =$_POST["usuario"];
$password =$_POST["password"];
 
/* Realizamos una consulta por cada tabla para buscar en que tabla se encuentra 
el usuario que está intentando acceder */
$user = mysql_query("SELECT usuario,password FROM usuarios WHERE user = '$usuario' AND password = '$password'");
$admin = mysql_query("SELECT usuario,password FROM administradores WHERE admin = '$usuario' AND password = '$password'");
/* Sabemos que en el caso que exista el usuario se encontrará en una de estas tres tablas,
por lo tanto se guardará en alguno de nuestras tres variables que guardan nuestra consulta */
 
 /* Ahora comprobamos que variable contiene al usuario*/
 if(empty($user))
{   /* Si entra en este if significa que el que intenta acceder es un usuario, por lo tanto le creamos una sesión */
  $_SESSION['user']="$usuario";
/* Nos dirigimos al espacio de los usuarios usando header que nos redireccionará a la página que le indiquemos */
    header("Location: ../vista/Inicio.php");
/* terminamos la ejecución ya que si redireccionamos ya no nos interesa seguir ejecutando código de este archivo */
    exit();
}
/* Ahora comprobamos si el que intenta acceder es un administrador */
else if(empty($admin))
{
   $_SESSION['admin']="$usuario";
   header("Location: ../vista/InicioAdmin.php");
   exit();
}
else
{
/* Si el usuario no se encuentra en ninguna de las dos tablas imprime el siguiente mensaje */
   $mensajeaccesoincorrecto = "El usuario y la contraseña son incorrectos, por favor vuelva a introducirlos.";
   echo $mensajeaccesoincorrecto;
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como poner un usuario administrador y un usuario normal con php y mysql

Publicado por Adianec (6 intervenciones) el 31/05/2017 15:11:04
Ya logré que me funcionara ahora si quedó perfecto aquí les dejo el codigo por si alguien lo necesita.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
include_once "../includes/conexion2.php";
session_start();
//Recibimos las dos variables
var_dump("$usuario.","$password.");
$usuario =$_POST["usuario"];
$password =$_POST["password"];
/* Realizamos una consulta por cada tabla para buscar en que tabla se encuentra
el usuario que está intentando acceder */
$resultado_admin = mysql_query("SELECT usuario,password FROM administradores WHERE usuario = '".$usuario."' AND password = '".$password."'");
$resultado_user = mysql_query("SELECT usuario,password FROM usuarios WHERE usuario = '".$usuario."' AND password = '".$password."'");
if (!$resultado_user || !$resultado_admin) {
    echo "Error de BD, no se pudo consultar la base de datos\n";
    echo "Error MySQL: '". mysql_error()."'";
    exit;
}
$user = mysql_fetch_array($resultado_user);
$admin = mysql_fetch_array($resultado_admin);
/* Sabemos que en el caso que exista el usuario se encontrará en una de estas dos tablas,
por lo tanto se guardará en alguno de nuestras dos variables que guardan nuestra consulta */
//print($user) 
  /* Ahora comprobamos que variable contiene al usuario*/
 if($user['usuario'] == $usuario){
    $_SESSION['user']= $user['usuario'];
    header("Location: ../vista/Inicio.php");
    exit();
}else if($admin['usuario'] == $usuario) {
   $_SESSION['admin']= $admin['usuario'];
   header("Location: ../vista/InicioAdmin.php");
   exit();
}else {
/* Si el usuario no se encuentra en ninguna de las dos tablas imprime el siguiente mensaje */
    $mensajeaccesoincorrecto = "El usuario y la contraseña son incorrectos, por favor vuelva a introducirlos.";
  echo $mensajeaccesoincorrecto;
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Raidel

Como poner un usuario administrador y un usuario normal con php y mysql

Publicado por Raidel (1 intervención) el 31/05/2017 19:07:16
Hay otras maneras de hacer esto por supuesto, por jemplo en una sola tabla usuario con un campo q lo identifique como administrador.
O agregando un tabla rol y otra usuario rol un tipico diseño de seguridad. Pero claro eso tambien resuleve tu problema

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad