Cita:
Iniciado por reborn Hola,
me estoy iniciando en php poo y me estoy actualizando en PDO, ya que hace rato no me sentaba a codificar y me estoy actualizando.
Ok, estoy haciendo un pequeño login de usuario para practicar y queria saber lo siguiente.
Explico un poco: hice la clase Usuarios donde se valida el usuario y clave q se introdujo en el form.
Lo q hago es verificar q el usuario existe con un método, y con otro método termino de completar el login.
Por q hago esto?, porq después del login quiero pasar a hacer el registro, entonces con ese método verifico si el usuario existe o no, entonces se insertan los datos a la tabla.
Otra consulta: como verán, en el método existeUsuario, verifico si existe el user y pass usando rowCount() y retorna true... eso es suficiente para comprobar?, o tambien tendria q hacer un fetch para obtener los datos del usuario?
Esto es lo q hice:
Código PHP:
<?php
require_once('Conexion.php');
class Usuario{
private $_db;
public function __construct(){
$this->_db = new Conexion();
$this->_db = $this->_db->conectar();
}
public function login($user, $pass){
if($this->existeUsuario($user, $pass) == TRUE){
//session_start();
echo "Hola ".$user;
}else{
echo "No pasa nada";
}
}
private function existeUsuario($user, $pass){
$this->_usuario = $user;
$this->_password = $pass;
$con = $this->_db->prepare("SELECT * FROM usuarios WHERE nombre = ? AND pass = ?");
$con->bindParam(1, $this->_usuario);
$con->bindParam(2, $this->_password);
$con->execute();
if($con->rowCount() == 1){
return TRUE;
}else{
return FALSE;
}
}
Saludos
Superficialmente, se ve que es una implementación adecuada. Solo una recomendación, yo haria dependencia de inyecciones para tus sesiones en la clase de Usuario.
Y pondria el manejo de sesiones a traves de una clase "Sesión" o algo por el estilo.
entonces cambiaria el constructor de tu clase Usuario por el siguiente:
Código PHP:
public function __construct($sesion) {
}
DE esta manera, cada vez que instancies la clase Usuario, tambien instancias la clase Sesión y ya no hay necesidad de utilizar
session_start();
En cada método de tu clase usuario.