PHP - Login Usuarios y Administrador

 
Vista:
sin imagen de perfil

Login Usuarios y Administrador

Publicado por Juan (17 intervenciones) el 19/01/2018 23:32:39
Hola!!!

Estoy tratando de hacer un Login que pueda verificar los usuarios normales y el administrador de la aplicación web...

Y solo me deja entrar en modo administrador pero no como un usuario normal y es necesario que pueda entrar de las dos maneras, pero si entro como usuario me debe redirigir a usuarioPrueba.php y si entro como administrador me debe redirigir a doctorprueba.php

Y me sale este error: Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, string given in C:\xampp\htdocs\pruebasPlataformaMauricio\index.php on line 69


index.php :

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<!-- la cabezera es el primer pedaso que es estatico-->
<header id="cabecera">
    <!--parte estatca del formulario donde se inicia secion-->
    <div class="secion">
        <!--Formulario para iniciar sesion-->
        <form action="index.php" method="post" name="inicioSesion" align="right">
            <!--Enlace para registrarse-->
            <a href="" target="-blank" style="font-family: 'Montserrat Light', bold;font-size: 10px;text-shadow: 0px 0px 0px #aaa;  color:#686666;">Registrarse</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <!-- &nbsp; Este codigo deja espacio sin salto de linea-->
            <a href="recuperarContraseña.html" target="-blank" style="font-family: 'Montserrat Light', bold;font-size: 10px;text-shadow: 0px 0px 0px #aaa; color:#686666;">¿Has olvidado tu contraseña?</a>&nbsp;&nbsp;&nbsp;
            <!-- campo para ingresar el email -->
            <br><input id="redondo" type="text" placeholder="Correo Electrónico" name="email" required>
            <!-- campo para ingresar la contraseña -->
            <input id="redondo" type="password" placeholder="Contraseña" name="contra" size="24" required>
            <!-- Boton para entrar-->
            &nbsp;&nbsp;<input id="enviar" name="boton" type="submit" src="boton entrar 1-01.png" width="45" height="35" onmouseover="sobre()" onmouseout="fuera()">
        </form>
    </div>
 </header>
 
<?php
 
if(isset($_POST['boton'])) {
 
    //MODIFICAR conexión a base de datos
    $conexion= mysqli_connect("localhost","root","","informacionplataforma");
 
    // verifica la conexion si es correcta o no
    if($conexion->connect_errno) {
         echo "error";
     }
 
    // MODIFICAR, consulta el correo y contraseña en la base de datos
 
    // aqui filtros anti-injection
    $email = $_POST['email'];
    $contra = $_POST['contra'];
 
 
 
    $consulta="select * from usuarios where email = '".$email."'";
 
 
    //guarda los datos de la variable conexion y la variable consulta
    $datos_query= mysqli_query($conexion,$consulta);
 
    // verifica si la información es correcta para iniciar sesión
 
 
        // guardo todos los datos de la consulta.
        if($datos= mysqli_fetch_array($datos_query)){
              if($contra==$datos['contrasenaAdmin']){
        // el correo se guarda en una variable de sesión para redirigirlo a la otra pagina
        $_SESSION["id"] = $datos["id"];
        $_SESSION['email']=$datos['email'];
        echo '<script>alert("BIENVENIDO ADMINISTRADOR")</script>';
        echo "<script>location.href='doctorprueba.php'</script>";
        // se redirige a la pagina asignada.
 
              }
        }
 
 
 
    $consulta2="select * from usuarios where email = '".$email."'";
    $datosQuery2=mysqli_query($conexion,$consulta2);
 
    if($dato=mysqli_fetch_array($consulta2)){
        if($contra==$dato['contrasena']){
 
            $_SESSION['id']=$dato['id'];
            $_SESSION['user']=$dato['user'];
            header("location:usuarioPrueba.php");
        }else{
            echo '<script>alert("CONTRASEÑA INCORRECTA")</script>';
            echo "<script>location.href='index.php'</script>";
        }
    }else{
 
            echo'<script>alert("ESTE USUARIO NO EXISTE, POR FAVOR REGISTRESE PARA PODER INGRESAR")';
            echo"<script>location.href='index.php'</script>";
 
 
    }
 
 
    }
 
 
 
 
 
 
?>

Si me logueo como admin me debe redirigir como administrador a la pagina doctorprueba.php :


doctorprueba.php :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
session_start();
//Verifica que la sesion este iniciada
if(@!isset($_SESSION["email"])) {
    header("location:index.php");
    exit();
}
 
?>
 
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <p>Bienvenido <strong><?php echo $_SESSION["email"];?> </strong><a href="acabarSesion.php"><input type="submit" value="Cerrar Sesión"/></a></p>
    </body>
</html>


Y si entra como usuario normal me debe redirigir a usuarioPrueba.php :

usuarioPrueba.php :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
session_start();
//Verifica que la sesion este iniciada
if(@!isset($_SESSION["user"])) {
    header("location:index.php");
    exit();
}
 
?>
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <p>Bienvenido <strong><?php echo $_SESSION["user"];?> </strong><a href="acabarSesion.php"><input type="submit" value="Cerrar Sesión"/></a></p>
    </body>
</html>

tablaUsuarios Anexo la tabla de la base de datos...
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
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Login Usuarios y Administrador

Publicado por xve (6935 intervenciones) el 20/01/2018 06:47:57
Hola Juan, el error es porque en esta linea:
1
if($dato=mysqli_fetch_array($consulta2)){
no haces referencia al resultado de mysqli_query()...

Cambia la linea por esta:
1
if($dato=mysqli_fetch_array($datosQuery2)){
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