Tengo la clase Usuario en donde tengo, por el momento, 3 métodos: login(), nuevoUsuario() y existeUsuario().
existeUsuario() se encarga de hacer un select para ver si encuentra alguna fila afectada y de ahi se confirma el login.
Con nuevoUsuario() quiero hacer lo mismo q con login(), solo q en nuevoUsuario() no me sirve de nada el password y por eso quiero verificar q no tenga el mismo email. Entonces mi idea es hacer el select en existeUsuario() y hacer un while para sacar el email y crear una variable y usarla en nuevoUsuario()
Consulta: se puede acceder a una variable de un método desde otro método?, me conviene hacer eso o me conviene hacer otro método similar a existeUsuario() para usarlo con nuevoUsuario()?
Código PHP:
<?php
require_once('Conexion.php');
require_once('Email.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();
$_SESSION['user'] = $user;
echo "Hola ".$user;
}else{
echo "No pasa nada";
}
}
//----------------------------------------------------------------------------------------------------------------------------------------
//inserto nuevo usuario - ACA ES DONDE QUIERO USAR UNA VARIABLE EMAIL PARA VERIFICAR Q NO EXISTA Y LUEGO HACER EL INSERT.
//EL METODO existeUsuario() SOLO VERIFICA USUARIO Y CLAVE Y LA CLAVE NO ME SIRVE DE NADA EN EL REGISTRO, POR ESO QUIERO AGREGAR EL MAIL
public function nuevoUsuario($user, $pass, $email){
if($this->existeUsuario($user, $pass) === FALSE){
//generar clave
$clave = md5(rand(1111,9999));
try {
$this->_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$con = $this->_db->prepare('INSERT INTO usuarios VALUES(:id, :name, :pass, :email, :confirm, :activo)');
$con->execute(array(
':id' => '',
':name' => $user,
':pass' => $pass,
':email' => $email,
':confirm' => $clave,
':activo' => '0',
));
//Envio de correo a nuevo usuario para activar cuenta
//$correo = new Email();
//$correo->enviarEmail($email, $user, $clave);
//Fin envio de correo
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
}else{
echo "El nombre de usuario o email ya existe, elija otro.";
}
}
//----------------------------------------------------------------------------------------------------------------------------------------
//compruebo si existe usuario y luego inicio sesion
private function existeUsuario($user, $pass){
$con = $this->_db->prepare("SELECT * FROM usuarios WHERE nombre = ? AND pass = ?");
$con->bindParam(1, $user);
$con->bindParam(2, $pass);
$con->execute();
//$con->setAttribute(PDO::FETCH_ASSOC);
if($con->rowCount() == 1){
return TRUE;
}else{
return FALSE;
}
}
}
Gracias