Estoy creando un sistema de inicio de sesión. Pero no sé cuál es el problema. Cuando revisé el correo electrónico y la contraseña correctos o el correo electrónico y la contraseña incorrectos, aparece mi mensaje de error Please enter valid Email/Password!!. Estoy usando Php 7.1.7. Además, cuando agrego el nombre de usuario, la contraseña y la tabla incorrectos de la base de datos, no muestra ningún error. Mi código PHP:

$mysqli = new mysqli('localhost', 'db4245454', 'missed$', 'db424545444');

$query = "SELECT * FROM User WHERE Email = 'support@admin.com' AND password = 'Rml2ZXJyMSQ='";
$result = $mysqli->query($query);
$num_log = $result->num_rows;


if($num_log == 1){

        while($row = $result->fetch_object()){
            echo "Welcome " .   $row->First_Name . ' '. $row->Last_Name;

        }                               
}else{

    echo "Please enter valid Email/Password!!";
}   

Estructura de la tabla de mi base de datos: ingrese la descripción de la imagen aquí

1
acoder 15 nov. 2017 a las 10:23

2 respuestas

La mejor respuesta

Su código es correcto, el problema debería estar aquí en su consulta, tal vez proporcione datos que no están disponibles en la base de datos, por lo que num_rows> = 0 y! = 1

$query = "SELECT * FROM User WHERE Email = 'support@admin.com' AND password = 'Rml2ZXJyMSQ='";

Puede usar var_dump ($ resultado); luego muere () para ver si obtuviste algo de la base de datos

PD: nunca uses un código como este

1
Patrik Horváth 15 nov. 2017 a las 08:07

Creo que este no es el camino correcto a seguir. La más simple es agregar una columna "Rol" y determinar si el cliente es "administrador", "cliente" o cualquier otro nivel que desee tener, para que pueda administrar múltiples administradores con cada acceso propio. Para el código te bastará con comprobar cuál es el "Rol" de tu cliente y mostrar el mensaje / página correspondiente.

            <?php
            $mysqli = new mysqli('localhost', 'db4245454', 'missed$', 'db424545444');

            if ($mysqli->connect_errno) {
                printf("Echec de la connexion: %s\n", $mysqli->connect_error);
                exit();
            }

            $result = $mysqli->query("SELECT * FROM User WHERE Email = 'support@admin.com' AND password = 'Rml2ZXJyMSQ='");
            $row = $result->num_rows;

            if($row == 1){


                        echo "Welcome " .   $row->First_Name . ' '. $row->Last_Name;


            }else{

                echo "Please enter valid Email/Password!!";
            }

            ?>
1
Eddy Vuillaume 15 nov. 2017 a las 08:46