Ver Mensaje Individual
  #6 (permalink)  
Antiguo 20/05/2013, 18:20
Avatar de bulter
bulter
 
Fecha de Ingreso: enero-2008
Mensajes: 137
Antigüedad: 16 años, 4 meses
Puntos: 20
Respuesta: [APORTE] Registro de usuario PHP y ajax

Mmm solo voy a decir unas cuantas cositas que veo mal:

1: mysql_* es obsoleto mejor PDO.
2:

Cita:
Código PHP:
$nombre $_POST['nombre'];  
$apellido $_POST['apellido'];  
$pass $_POST['pass'];  
$usuario $_POST['usuario'];  
$mail $_POST['mail'];  
$cedula $_POST['cedula'];  
$telefono $_POST['telefono'];  
$fecha $_POST['fecha']; 
Si tienes error_reporting(E_ALL) eso pitara Nitificaciones como una sirena de ambulancia :P
No compruebas si estan definidas o si los indexes existen.

esto:

Código PHP:
<?php 

    
function alpha_numeric($str
    { 
        return ( ! 
preg_match("/^([-a-z0-9])+$/i"$str)) ? FALSE TRUE
    } 

    function 
valid_email($str
    { 
        return ( ! 
preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix"$str)) ? FALSE TRUE
    } 

?>
Lo puedes simplificar el IF este no sirve

Código PHP:
<?php 

    
function alpha_numeric($str
    { 
        return (
preg_match("/^([-a-z0-9])+$/i"$str)); 
    } 

    function 
valid_email($str
    { 
        return (
preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix"$str)); 
    } 

?>

Otra cosa:

Código PHP:
$sqlex2 mysql_query("SELECT usuario FROM clientes WHERE usuario='".$_POST['usuario']."'"$conexion); 
Pure SQL Injection Vulnerability

En vez de hacer un check en cada if para

Código PHP:
if ($_POST['nombre']==''
 
if ($_POST['apellido']==''
 
if ($_POST['usuario']=='' 
Lo podrias hacer en una o dos lineas con 1 if general o con un loop.
A mi tantos IFs me ponen feo :D
Podrias hacer te una funcion que añade un error segun las condiciones.
Por ejemplo algo rapido podria ser:

Código PHP:
<?php 

function validationAssert($bool$ErrorMessage, &$ErrorMessageContainer)
{
    if(
$bool != false)
    {
        
array_push($ErrorMessageContainer$ErrorMessage);
    }
}

$Errors = array();

validationAssert((strlen($_POST['apellido'])<3), "Apellido debe poseer al menos 3 letras."$Errors);
validationAssert((strlen($_POST['nombre'])<3), "Nomnbre debe poseer al menos 3 letras."$Errors);
validationAssert(($_POST['pass'] != $_POST['re_pass']), "The two passwords must match"$Errors);

print_r($Errors);
?>
Otra cosita

Código PHP:
 if ($_POST['pass']=='' || alpha_numeric($_POST['pass'])==FALSE
oO por que el pass tiene que ser alphanumeric ... todo tipo de pass que uso no cumple ese requisito :D es malo quitalo.

Código PHP:
if(is_array($errors)) 
Esto no tiene sentido. Si no tienes ningun error $error simplemente no existira ya que no la defines por ningun lado, no puede ser ni array ni string , ni integer etc.

Hay mas cosas pero lo dejare hasta aqui, que no quiere que te lo tomes a mal :/

Saludos y suerte