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