PHP - Validación de datos para el login en sql server

 
Vista:
sin imagen de perfil
Val: 18
Ha disminuido su posición en 8 puestos en PHP (en relación al último mes)
Gráfica de PHP

Validación de datos para el login en sql server

Publicado por Eduardo (7 intervenciones) el 17/01/2019 16:51:30
Hola buen día, estoy desarrollando un sistema de login que se conecta a sql server para validar la información de los usuarios; esta ultima parte es la que me esta generando problemas ya que aunque la información si exista en la base de datos me arroja error en el logeo

1
2
3
4
5
6
7
8
9
<form method="POST" action="login.php">
	<label for="usuario">
		<i class="fas fa-users"></i><span class="usr">usuario</span>
		</label><br>
		<input type="text" name="usuario"  id="usuario" placeholder="Escriba su usuario" class="login" autocomplete="off"><br>
	<label for="password">
		<i class="fas fa-key"></i><span class="usr">contraseña</span>
		</label><br>
		<input type="password" id="password" name="passwd" placeholder="Escriba su contraseña" class="login" autocomplete="off"><br></form>

Este es el código de mi formulario

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
if(isset($_POST['entrar'])){
    $usuario= $_POST['usuario'];
    $password = md5 ($_POST['passwd']);
    $servicio = $_POST['servicio'];
    $sql = "SELECT usuario,password,servcio FROM usuario WHERE usuario = $usuario AND password = $password AND servicio = $servicio";
    $consulta = sqlsrv_query($con,$sql);
    echo $consulta;
    if($consulta){
        echo 'error en el logeo';
    }else{
        header("Location:cardio.php");
    }
}
?>
Y este mi código en php.

Agradecería cualquier ayuda o comentario respecto al código y si alguno pudiera resolver la duda de por que no realiza correctamente la validación
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 Lawliet
Val: 942
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Validación de datos para el login en sql server

Publicado por Lawliet (351 intervenciones) el 17/01/2019 17:28:29
Hola!!!

No veo nada raro en la consulta, sin embargo, lo que si creo es que tu validación esta mal... La tienes de esta manera...

1
2
3
4
5
if($consulta){
	echo 'error en el logeo';
} else {
	header("Location:cardio.php");
}

Cuando deberías tenerla de la siguiente manera...

1
2
3
4
5
if($consulta) {
	header("Location:cardio.php");
} else {
	echo 'error en el logeo';
}

Eso es por que la variable que tienes almacena un resultado booleano como bien sabes, en caso de que tu consulta se ejecuto correctamente el resultado será true en caso contrario el resultado sería false y por lo que pude entender de tu código creo que tenías esa validación al revés ya que cuando tenías como resultado true mandabas un error cuando debería ser false cuando mandes el error.

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

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
sin imagen de perfil
Val: 18
Ha disminuido su posición en 8 puestos en PHP (en relación al último mes)
Gráfica de PHP

Validación de datos para el login en sql server

Publicado por Eduardo (7 intervenciones) el 17/01/2019 17:54:59
Cambie esas lineas como comentaste y ahora no importa que ponga, todo me manda error, hago el echo a la consulta para verificar que los datos que ingresan son los correctos y aparecen correctamente, no se por que me manda el error de logeo
2019-01-17-1
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 Lawliet
Val: 942
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Validación de datos para el login en sql server

Publicado por Lawliet (351 intervenciones) el 17/01/2019 18:16:39
Hola...

Esa información que estás consultando, si existe en base de datos; es decir, el nombre y el password así como el servicio existen tal cual los estás consultando en tu base de datos, con un carácter que coincida ya con eso te mandará el error ya que estás preguntando que el usuario se llame Arturo Gutierrez Hernandez, el servicio sea Cirugia y el password sea fb786dbd9274db43a9e3715d5193253b estas tres condiciones deben cumplirse para que pueda ingresar a tu aplicación... Te recomiendo revises como esta esa información en base de datos.

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

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
sin imagen de perfil
Val: 18
Ha disminuido su posición en 8 puestos en PHP (en relación al último mes)
Gráfica de PHP

Validación de datos para el login en sql server

Publicado por Eduardo (7 intervenciones) el 17/01/2019 18:28:54
Si, existen tal cual están escritas. Incluso puedo copiar y pegar esa consulta en el SQL Server y me manda la información que requiero. No se si tenga algo que ver con el tipo de dato con el que esta guardado en la base de datos, las tres columnas son VARCHAR, no se si tenga que realizar alguna conversión a la hora de hacer el SELECT en PHP
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 Lawliet
Val: 942
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Validación de datos para el login en sql server

Publicado por Lawliet (351 intervenciones) el 17/01/2019 18:43:39
Hola...

Por que no intentas poner esto después de tu consulta para ver si manda un error al momento de ejecutarlo, el código quedaría de la siguiente forma...

1
2
3
4
$consulta = sqlsrv_query($con,$sql);
if( $consulta === false) {
    die( print_r( sqlsrv_errors(), true) );
}

Con eso podremos observar si te sale algún tipo de error en la consulta o simplemente es un error de lógica por así decirlo.

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

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
sin imagen de perfil
Val: 18
Ha disminuido su posición en 8 puestos en PHP (en relación al último mes)
Gráfica de PHP

Validación de datos para el login en sql server

Publicado por Eduardo (7 intervenciones) el 17/01/2019 18:53:02
resource(6) of type (SQL Server Statement) me arrojo esto
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 Lawliet
Val: 942
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Validación de datos para el login en sql server

Publicado por Lawliet (351 intervenciones) el 17/01/2019 19:01:41
Hola...

Intenta cambiando tu String de la consulta...

ANTES
1
SELECT usuario,password,servcio FROM usuario WHERE usuario = $usuario AND password = $password AND servicio = $servicio

DESPUES
1
SELECT usuario,password,servcio FROM usuario WHERE usuario = '".$usuario."' AND password = '".$password."' AND servicio = '".$servicio."'

El cambio que hice fue agregar las comillas en la consulta ya que como bien comentas son VARCHAR. Lo que veo raro es que en tu consulta no la tienes pero en el echo que mostraste si te muestra las comillas. Haz la prueba y me comentas...

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

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
sin imagen de perfil
Val: 18
Ha disminuido su posición en 8 puestos en PHP (en relación al último mes)
Gráfica de PHP

Validación de datos para el login en sql server

Publicado por Eduardo (7 intervenciones) el 17/01/2019 19:07:28
resource(6) of type (SQL Server Statement) aparece esto mismo
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 Lawliet
Val: 942
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Validación de datos para el login en sql server

Publicado por Lawliet (351 intervenciones) el 17/01/2019 19:17:05
Hola...

Te he mandado un mensaje privado para revisar de mejor forma el error.

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
sin imagen de perfil
Val: 18
Ha disminuido su posición en 8 puestos en PHP (en relación al último mes)
Gráfica de PHP

Validación de datos para el login en sql server

Publicado por Eduardo (7 intervenciones) el 18/01/2019 18:44:24
Dejo la respuesta que me proporcionó Lawliet por si alguien mas se encuentra con este problema. GRACIAS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
if(isset($_POST['entrar'])) {
    $usuario= $_POST['usuario'];
    $password = md5($_POST['passwd']);
    $servicio = $_POST['servicio'];
    $sql = "SELECT usuario,password,servicio FROM usuario WHERE usuario = '".$usuario."' AND password = '".$password."' AND servicio = '".$servicio."'";
    $consulta = sqlsrv_query($con,$sql);
    if($consulta) {
        if($row = sqlsrv_fetch_array($consulta)) {
            echo "SI EXISTE";
        } else {
            echo "NO EXISTE";
        }
    } else {
        echo "NO FUNCIONA.";
    }
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Validación de datos para el login en sql server

Publicado por Guido (1 intervención) el 12/06/2019 19:18:37
Puedes incluir como hiciste la conexion a la que hace referencia tu variable $con
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