Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/06/2013, 09:37
Avatar de iEnrique
iEnrique
 
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Problemas en mi login con PDO

Bueno, acabo de empezar con PDO para darle más seguridad a mi web y me he encontrado con el siguiente error:

Cita:
Fatal error: Call to a member function execute() on a non-object in C:\xampp\htdocs\Lemite\login2.php on line 16
La línea 16 es la siguiente:

Código PHP:
Ver original
  1. $sentencia->execute(array($usuario_post, $contrasena_post));

Este es el código de mi login:
Código PHP:
Ver original
  1. <?php
  2. $dsn = 'mysql:dbname=reg_users;host=localhost';
  3. $usuario = 'root';
  4. $contraseña = '';
  5.  
  6. try {
  7.    $gbd = new PDO($dsn, $usuario, $contraseña);
  8. } catch (PDOException $e) {
  9.      exit('Se ha producido un error imposible continuar x0215484.');
  10. }
  11.  
  12. //Una vez conectados, seguimos...
  13.  
  14.     include_once("analyticstracking.php"); // Una cosa de Google Analytics...
  15.     session_start();
  16.     if($_REQUEST['user'] == NULL){
  17.         header('Location: loginerror2.php');
  18.     }else if($_REQUEST['pw'] == NULL){
  19.         header('Location: loginerror2.php');
  20.     }else{
  21.     if(isset($_REQUEST['login'])){
  22.         $usuario_post = $_REQUEST['user']; //Cojo el usuario
  23.         $contrasena_post = md5($_REQUEST['pw']); //La contraseña
  24.        
  25.         $sentencia = "SELECT * FROM registros WHERE user= ? AND pw= ?";
  26.         $sentencia->execute(array($usuario_post, $contrasena_post)); //Aquí está el fallo
  27.         $rows = $sentencia->fetchAll();
  28.         $qtda = count($rows);
  29.        
  30.         if($qtda == 0){ //Si no hay ningún usuario con el mismo usuario y contraseña...
  31.             header('Location: loginerror1.php');
  32.         }else{
  33.             $_SESSION['usuario'] = $usuario_post;
  34.             $sentencia2 = "SELECT user FROM registros WHERE user= ?";
  35.             $sentencia2->execute(array($_SESSION['usuario']));
  36.             $dep = count($sentencia2);
  37.             if($_POST['record'] == true){ //Guardo en una Cookie las datos
  38.                 setcookie("username", $dep['user'], time() + (86400 *  365));
  39.             }else{}
  40.             header ("Location: index.php"); //Vuelvo al inicio
  41.         }
  42.     }
  43.     }
  44. ?>

Gracias por ayudarme, como ya dije antes, soy nuevo en esto y quizá tengo más fallos que ese en el código...