Estoy haciendo un validador con objetos de php.
he creado un documento con una clase que recibe los parámetros que quiero validar de dicho formulario.
al comparar los datos por parámetro y los datos extraídos por SELECT a mysql
siempre obtengo que la comparación es válida, tanto si los parámetros ya existen en la consulta como si no, siempre es válida.
puse en el objeto un var_dump();
me devuelve solo los datos de un usuario cuando en realidad tengo dos usuarios.
en el código muestro lo que devuelve el var_dump();
no logro entender por qué, si alguien es tan amable de ayudarme, muchas gracias.
este es mi código, escrito por mi.
Código Java:
Ver original<?php
//include ('clases.php');
class Validar extends Conectar
{
private $arr = array();
private $salida = array();
public function datos_usuarios($usuarioc, $passwdc, $passwd2c, $emailc)
{
//consulto usuario, passwd y email de usuarios
$validacion="SELECT usuario, passwd, email FROM usuarios";
$result_conexion=Conectar::connect($validacion);
//asigno los valores a un array con bucle while
while($validacion=mysql_fetch_array($result_conexion))
{
$this->arr=$validacion;
}
//tengo dos usuarios en la base de datos, los datos introducidos manualmente en la BD son
//usuario = q; email = [email protected]; passwd = q; nombre = q.q; apellidos = q.q.q //usuario = w; email = [email protected]; passwd = w; nombre = w.w; apellidos = w.w.w //este var_dump(); devuelve lo siguiente:
//array(6) { [0]=> string(1) "w" ["usuario"]=> string(1) "w" [1]=> string(1)
var_dump($this->arr);
//comparo los valores $usuario, $passwd y $email del usuario
////////////////////////////////////
//buscando coincidencias de usuario
////////////////////////////////////
foreach($this->arr as $datos=>$usuario)
{
//aquí está el primer problema, se cumpla o no la condición siempre va al else
if($usuarioc == $datos)
{
$this->salida['usuario'] = "El usuario ya existe <br>";
}
else
{
$this->salida['usuario'] = "Usuario correcto <br>";
}
}
//////////////////////////////////
//buscando coincidencias de email
//////////////////////////////////
foreach($this->arr as $datos=>$email)
{
//aquí está el segundo problema, se cumpla o no la condición siempre va al else
if($emailc == $datos)
{
$this->salida['email'] = "El E-mail ya existe <br>";
}
else
{
$this->salida['email'] = "E-mail es correcto <br>";
}
}
//las contraseñas sí las valida bien
///////////////////////////
//validando la contraseña
///////////////////////////
//si $passwd y $passwd2 no coinciden
if($passwdc != $passwd2c)
{
$this->salida['passwd'] = "Las contraseñas no coinciden <br>";
}
else
{
$this->salida['passwd'] = "Contraseñas iguales <br>";
}
//si la contraseña es insegura (inferior a 6 caracteres)
if(strlen($passwdc) < 6)
{
$this->salida['passwd2'] = "La contraseña tiene menos de 6 caracteres <br>";
}
else
{
$this->salida['passwd2'] = "La contraseña tiene más de 6 caracteres <br>";
}
////////////////////////////
//devuelve el array
////////////////////////////
return $this->salida;
}
}
?>
el resultado de esto es
Usuario correcto
E-mail es correcto
Contraseñas iguales
La contraseña tiene más de 6 caracteres