Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Sistema de login usando PHP OO - No funciona

Estas en el tema de Sistema de login usando PHP OO - No funciona en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Gente como va? Bueno la cosa es asi, estoy intentando hacer un sistema de login y es el primero que hago con objetos. La verdad ...
  #1 (permalink)  
Antiguo 31/01/2013, 10:30
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 9 meses
Puntos: 2
Sistema de login usando PHP OO - No funciona

Gente como va?

Bueno la cosa es asi, estoy intentando hacer un sistema de login y es el primero que hago con objetos. La verdad que estoy muy perdido dado que no hace nada, pero ni siquiera me da error de nada.
Les paso los archivos.

Index.php
Código PHP:
Ver original
  1. include 'lib/class.db.php';
  2. include 'lib/class.user.php';
  3. if(isset($_POST['submit'])){
  4.     if(!empty($_POST['user']) && !empty($_POST['pass'])){
  5.         $u = new User;
  6.         $u->Login($_POST['user'], $_POST['pass']);
  7.         if($u->GetUsrOnline () == 1){
  8.             $_SESSION['user'] = $u->GetUser;
  9.             $_SESSION['level'] = $u->GetLevel;
  10.             header ("location:admin/main.php");
  11.         } else{
  12.         echo "algunos errores 1";
  13.         }
  14.     }else
  15.     {
  16.     echo "Algunos errores 2";
  17.     }
  18. }
  19.  
  20.  
  21.  
  22. ?>
  23. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  24. <html xmlns="http://www.w3.org/1999/xhtml">
  25. <head>
  26. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  27. <title>CMS - gestor de contenidos</title>
  28. <!--Css-->
  29. <link href="css/style.css" rel="stylesheet" type="text/css" />
  30. <!--Js-->
  31.  
  32. </head>
  33.  
  34. <body>
  35.     <div id="main">
  36.         <div id="stage">
  37.             <div id="box_login">
  38.                 <form name="login" method="post" action="" autocomplete="off" class="c_general b_10 s_x15">
  39.                 <span class="minitext f_ubuntu">Bienvenido a <strong>CMS - Vindt 1.0!</strong></span>
  40.                     <fieldset>
  41.                         <input type="text" id="user" name="user" placeholder="Usuario" class="b_7 s_basich f_ubuntu"/>
  42.                         <input type="password" id="pass" name="pass" placeholder="Password" class="b_7 s_basich"/>
  43.                         <button type="submit" class="smallbutton blues f_ubuntu_b">Login</button>
  44.                     </fieldset>
  45.                 <span class="minitext f_ubuntu">Si tiene problemas con el ingreso <a href="help.php">click aqu&iacute;</a>.</span>
  46.                 </form>
  47.             </div>
  48.         </div>
  49.     </div>
  50. </body>
  51.  
  52. </html>

Clase user
Código PHP:
Ver original
  1. class User {
  2.    
  3.     private $user_name;
  4.     private $user_level;
  5.     private $user_active;
  6.     private $user_role;
  7.     private $user_online;
  8.     private $user_error = '';
  9.    
  10.     public function Login ($user, $pass) {
  11.         $e = new Error;
  12.         if($user == "" || $pass == "") {
  13.             $error = "<li>Esta todo mal</li>";         
  14.             self::AddError ($error);
  15.         }else{
  16.             $query = "SELECT user_name, user_pasword, user_active, user_level FROM users_sme WHERE user_name = :user AND user_password = :pass;";
  17.             $stmt=DB::getStatement($sql);
  18.             $stmt->bindParam(':user',$user);
  19.             $stmt->bindParam(':pass',$pass);
  20.             $stmt->execute();  
  21.             $total = $stmt->rowCount();
  22.             $row = $stmt->fetchObject();
  23.                 if($total == 1){
  24.                     if($row->user_active==1){
  25.                         $this->user_name = $row->user_name;
  26.                         $this->user_level = $row->user_role;
  27.                         $this->user_online = 1;
  28.                     }
  29.                     else{
  30.                         $error = "<li>Esta mal otra cosa</li>";
  31.                         $e->AddError($error);
  32.                                             }
  33.                 }else{
  34.                     $error = "<li>Esta mal otra cosa2</li>";
  35.                         $e->AddError($error);
  36.                 }
  37.        
  38.        
  39.         }  
  40.     }
  41.     private function AddError ($error) {
  42.         $this->user_error .= $error;
  43.     }
  44.     public function GetErrors () {
  45.         return $this->user_error;      
  46.     }
  47.     public function GetUsrOnline () {
  48.         return $this->user_online;
  49.     }
  50.     public function GetUser(){
  51.         return $this->user_name;
  52.     }
  53.     public function GetUserLavel(){
  54.         return $this->user_level;
  55.     }
  56.    
  57. }

Clase DB

Código PHP:
Ver original
  1. class DB {
  2.     private static $db;
  3.  
  4.     private static function getConnection(){
  5.         if (empty(self::$db)) {
  6.             self::$db = new PDO('mysql:host=localhost;dbname=sales',
  7.                                 'root',
  8.                                 '');
  9.         }
  10.         return self::$db;
  11.     }
  12.     static function getStatement($query){
  13.         return self::getConnection()->prepare($query);
  14.     }
  15. }

Espero me puedan ayudar o guiar con algun tutorial que tengan a mano para facilitarmelo.
Gracias!
__________________
@vindt89
  #2 (permalink)  
Antiguo 31/01/2013, 10:55
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 9 meses
Puntos: 43
Respuesta: Sistema de login usando PHP OO - No funciona

Buenas,

Empecemos
1- poner session_start(); al inicio de la codigo en la primaera linea
2- $_SESSION['user'] = $u->GetUser(); // te falto los parentesis
$_SESSION['level'] = $u->GetLevel();// te falto los parentesis

3- Debes crear un constructor por defecto en User
public function __construct()
o
public function __construct(....) // con valores de incializacion

Saludos
__________________
"No te preocupes si no funciona bien. Si todo lo hiciera, no tendrías trabajo."
"El problema no es no saber, sino no saber quién sabe"
..::Con Karma se piensa mejor::..
  #3 (permalink)  
Antiguo 31/01/2013, 11:01
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: Sistema de login usando PHP OO - No funciona

Gracias por las sugerencias, igual ya lo modifique tal cual vos me indicaste, pero seguimos en la misma, no hace nada...
__________________
@vindt89
  #4 (permalink)  
Antiguo 31/01/2013, 11:32
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 9 meses
Puntos: 43
Respuesta: Sistema de login usando PHP OO - No funciona

Buenas,

verifica que estes recibiendo las variables por post

$out = print_r($_POST,true);
echo '<pre>$out</pre>';

Salduos
__________________
"No te preocupes si no funciona bien. Si todo lo hiciera, no tendrías trabajo."
"El problema no es no saber, sino no saber quién sabe"
..::Con Karma se piensa mejor::..

Etiquetas: login, mysql, oop, php, system
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:16.