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

Login en php y mysql usando clases

Estas en el tema de Login en php y mysql usando clases en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hola a mis amigos del foro, otra vez molestandolos por aqui .... bueno, mi duda es la siguiente. Tengo una clase definida de esta manera: ...
  #1 (permalink)  
Antiguo 23/09/2009, 19:18
Avatar de josevirtual  
Fecha de Ingreso: diciembre-2006
Mensajes: 51
Antigüedad: 17 años, 4 meses
Puntos: 1
Login en php y mysql usando clases

hola a mis amigos del foro, otra vez molestandolos por aqui .... bueno, mi duda es la siguiente. Tengo una clase definida de esta manera:
Código PHP:
class cusuario
{
    
//definimos los campos
    
var $codigo;
    var 
$nombres;
    var 
$ap_paterno;
    var 
$ap_materno;
    var 
$direccion;
    var 
$telefono;
    var 
$correo;
    var 
$usuario;
    var 
$contraseña;
    var 
$conexion;
    
//definimos el constructor
    
function cusuario()
    {
        
$this->conexionmysql_connect("localhost","root","213141");
        
mysql_select_db("tesis");
    }
    
//definimos los métodos
    
function login()
    {
        
$query=mysql_query("select * from estudiantes where usuario ='".$this->usuario."' and contraseña='".$this->contraseña."'",$this->conexion);
        if(
mysql_affected_rows($this->conexion))
        {
            return 
true;
        }
        else
        {
            return 
false;
        }
    }

y lo uso de esta manera:
Código PHP:
$c_usuario = new cusuario();
        
$c_usuario->usuario=$_REQUEST["user"];
        
$c_usuario->contraseña=md5($_REQUEST["pass"]);
        if(
$c_usuario->login()==true)
        {
            
header("Location: plataforma.php"); 
        }
        else
        {
        echo 
'
        <script language="javascript">alert("datos incorrectos");</script>
        '
;
        } 
el problema es que que no me restringe el acceso, quiero decir pongo cualquier usuario y contraseña, aun no esté en la base de datos me redireccional a la plataforma principal, si me podrian ayudar estaré agradecido
__________________
http://fullwebdesigner.com.ar webcomputercusco
  #2 (permalink)  
Antiguo 23/09/2009, 19:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Login en php y mysql usando clases

Tienes que usar mysql_num_rows() y comprobar que sea mayor a 0.

Saludos.
  #3 (permalink)  
Antiguo 23/09/2009, 19:34
Avatar de josevirtual  
Fecha de Ingreso: diciembre-2006
Mensajes: 51
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Login en php y mysql usando clases

Cita:
Iniciado por GatorV Ver Mensaje
Tienes que usar mysql_num_rows() y comprobar que sea mayor a 0.

Saludos.
lo hice asi y me manda error
Código PHP:
function login()
    {
        
$query=mysql_query("select * from estudiantes where usuario ='".$this->usuario."' and contraseña='".$this->contraseña."'",$this->conexion);
        if(
mysql_num_rows($query)>0)
        {
            return 
true;
        }
        else
        {
            return 
false;
        }
    } 
y me muestra este error

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
__________________
http://fullwebdesigner.com.ar webcomputercusco
  #4 (permalink)  
Antiguo 23/09/2009, 19:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Login en php y mysql usando clases

Eso quiere decir que tu consulta esta mal, imprime el valor de mysql_error() para que veas el porque.

Saludos.
  #5 (permalink)  
Antiguo 24/09/2009, 08:23
Avatar de josevirtual  
Fecha de Ingreso: diciembre-2006
Mensajes: 51
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Login en php y mysql usando clases

Cita:
Iniciado por GatorV Ver Mensaje
Eso quiere decir que tu consulta esta mal, imprime el valor de mysql_error() para que veas el porque.

Saludos.
gracias por la ayuda, ya encontré mi error fue al poner como campo de la tabla "contraseña" y cuando hacia la consulta de php no me enviaba el caracter "ñ". al final cambié el nombre del campo y todo salio bien. Gracias por la ayuda
__________________
http://fullwebdesigner.com.ar webcomputercusco
  #6 (permalink)  
Antiguo 25/09/2009, 16:14
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: Login en php y mysql usando clases

José, estás usando PHP5?
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #7 (permalink)  
Antiguo 03/10/2009, 15:39
Avatar de josevirtual  
Fecha de Ingreso: diciembre-2006
Mensajes: 51
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Login en php y mysql usando clases

Cita:
Iniciado por enriqueplace Ver Mensaje
José, estás usando PHP5?
asi es PHP Version 5.2.3
__________________
http://fullwebdesigner.com.ar webcomputercusco
  #8 (permalink)  
Antiguo 04/10/2009, 08:13
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: Login en php y mysql usando clases

Bueno, José, si lo usas tu código se debería ver parecido a esto

Usuario.php
Código PHP:
<?php
/**
 * Clase de Abstracción
 */
require_once 'Db.php';

/**
 * Description of Usuario
 *
 * @author enrique
 */
class Usuario
{
    private 
$_codigo;
    private 
$_nombres;
    private 
$_apellidoPaterno;
    private 
$_apellidoMaterno;
    private 
$_direccion;
    private 
$_telefono;
    private 
$_correo;
    private 
$_nombreUsuario;
    private 
$_clave;
    private 
$_db;
    
    
/**
     *
     * @param string $nombreUsuario
     * @param string $clave
     */
    
public function __construct($nombreUsuario$clave)
    {
        
$this->_nombreUsuario $nombreUsuario;
        
$this->_clave md5($clave);
        
        
/* La clase usuario no tiene por qué
         * saber los detalles de conexión */
        
$this->_db = new Db();
    }
    
/**
     *
     * @return boolean
     */
    
public function login()
    {
        
/* Usarás Db o una clase de más
         * alto nivel como Login.php */
        
return $this->_db->validarLogin($this->_nombreUsuario$this->_clave);
    }
}
index.php
Código PHP:
<?php
require_once 'Usuario.php';

/* Cuidado con los REQUEST, aceptan tanto POST como GET y si es un form
 * deberías esperarlo solo por POST
 */
$usuario = new Usuario($_POST['user'], $_POST['pass']);

if(
$usuario->login()){
    
header("Location: plataforma.php");
}else{
    echo 
'<script language="javascript">alert("datos incorrectos");</script>';
}
Espero te sirva

Saludos!
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 23:38.