Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/02/2011, 05:44
Avatar de Erythnul
Erythnul
 
Fecha de Ingreso: julio-2010
Ubicación: Buenos Aires
Mensajes: 13
Antigüedad: 13 años, 10 meses
Puntos: 0
Problema con query

Hola a todos, no logro que el archivo que procesa los datos verifique el login en dos tablas del mysql. Las tablas son "accounts" y "accounts_confirm" de las cuales las dos tienen las los campos "login" y "email".
Lo que quiero lograr es que verifique si existe el login y el email en las dos tablas a al mismo tiempo pero en un mismo select si es posible.

Código PHP:
<?php
if ($_GET['act'] == 'register')
{
    
$user anti_injection($_POST['account']);
    
$pass1 anti_injection($_POST['pass1']);
    
$pass2 anti_injection($_POST['pass2']);
    
$email anti_injection($_POST['email']);
    
    if (
valida(Array($user,$pass1,$pass2,$email)) == true)
    {
        if (
$pass1 == $pass2)
        {
            if (
ereg("([0-9,a-z,A-Z])"$user))
            {
                if (
ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$"$email))
                {
                    
$query mysql_query("SELECT * FROM accounts WHERE login='$user'");
                    
$num_rows mysql_num_rows($query);
                    if (
$num_rows == 0)
                    {
                        
$query mysql_query("SELECT * FROM accounts WHERE email='$email'");
                        
$num_rows mysql_num_rows($query);
                        if (
$num_rows == 0)
                        {
                            
$query mysql_query("INSERT INTO accounts_confirm (login, password, email, codigo) VALUES ('$user','$pass1','$email','$codigo')");
                            if (!
$query)
                            {
                                echo 
"No se pudo registrar la cuenta";
                            }
                            else
                            {
                                echo 
"Bien, se ha enviado un mensaje a tu correo";
                            }
                        }
                        else
                        {
                            echo 
"El correo ya esta registrado";
                        }
                    }
                    else
                    {
                        echo 
"La cuenta ya esta registrada";
                    }
                }
                else
                {
                    echo 
"El tipo de correo no es valido";
                }
            }
            else
            {
                echo 
"Usa solo numeros(0-9) y letras(a-z)";
            }
        }
        else
        {
            echo 
"Las contraseñas no son iguales";
        }
    }
}

function 
anti_injection($sql)
{
$sql preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);
$sql trim($sql);
$sql strip_tags($sql);
$sql addslashes($sql);
return 
$sql;
}

function 
valida($campos){
  foreach(
$campos as $c){
      if(empty(
$c)){
        echo 
"Debes completar todos los campos";
        return 
false;
      }else{
        return 
true;
      }
  }
}
?>