PHP - Problema base de datos

   
Vista:

Problema base de datos

Publicado por Jhon (5 intervenciones) el 21/01/2018 02:39:47
Buenas el problema es que tengo una base de datos de usuarios y para comprobar si un usuario esta existente o no tengo la siguiente linea de codigo:
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
<?php
session_start();
if (isset($_SESSION['usuario'])) {
    header('Location: index.php');
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $usuario   = filter_var(strtolower($_POST['usuario']), FILTER_SANITIZE_STRING);
    $password  = $_POST['password'];
    $password2 = $_POST['password2'];
 
    // echo "$usuario . $password .$password2";
 
    $errores = '';
 
    if (empty($usuario) or empty($password) or empty($password2)) {
        $errores .= "<li> Por favor rellena los datos correctamente </li>";
    } else {
        try {
            $conexion = new PDO('mysql:host=localhost;dbname=curso_login', 'root', '');
 
        } catch (PDOException $e) {
            echo "Error" . $e->getMessage();
        }
        $statement = $conexion->prepare('SELECT * FROM usarios WHERE usuario = :usuario LIMIT 1');
        $statement->execute(array(':usuario' => $usuario));
        $resultado = $statement->fetch();
        print_r($resultado);
 
        if ($resultado != false) {
 
            $errores .= "<li>El nombre de usuario ya existe</li>";
        }
 
        $password  = hash('sha512', $password);
        $password2 = hash('sha512', $password2);
 
        if ($password != $password2) {
            $errores .= '<li>Las contraseñas no son iguales</>';
        }
 
    }
 
    if ($errores == '') {
        $statement = $conexion->prepare('INSERT INTO usuarios(id,usuario,pass) VALUES(null, :usuario,:pass)');
        $statement->execute(array(':usuario' => $usuario, ':pass' => $password));
        header('Location:login.php');
    }
 
}
require 'view/registro.view.php';


En teoria deberia mostrar true si el usuario esta creado pero siempre esta en false $resultado.
Lo que hace que si un usuario esta creado se puede volver a crear.
Soy nuevo en esto asi que si me ayudan estaria muy agredecido
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

Problema base de datos

Publicado por xve (6412 intervenciones) el 21/01/2018 19:44:00
Hola Jhon, yo lo que probaría primero es que el valor de $usuario llegue correctamente... luego probaría la consulta sql a mano para ver que no hay ningún problema con los nombres.

Si la variable llega bien, y los nombres están correctamente, tendría que funcionar!!!

Coméntanos, ok?
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

Problema base de datos

Publicado por Jhon (5 intervenciones) el 21/01/2018 20:24:00
Y como compruebo que el valor le llege correctamente, por que si se que el inserta datos en la base de datos.
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 xve

Problema base de datos

Publicado por xve (6412 intervenciones) el 21/01/2018 20:41:43
pon un
1
echo $usuario;
en el código, haber que valor te muestra.
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

Problema base de datos

Publicado por Jhon (5 intervenciones) el 21/01/2018 20:48:31
Me muestra el valor que digite en el campo usuario
Es decir si pongo Jhon me muestra jhon
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

Problema base de datos

Publicado por Jhon (5 intervenciones) el 22/01/2018 19:54:48
Ya lo resolvi la solucion fue cambiar el nombre de la tabla por registro_usuarios.
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