<?php
$atr_nombre =trim($_POST['tx_nombre']); $str_apellido =trim($_POST['tx_apellido']); $str_correo =trim($_POST['tx_correo']); $str_telefono =trim($_POST['tx_telefono']); $str_username =trim($_POST['tx_username']); $str_password =trim($_POST['tx_password']); $str_password2 =trim($_POST['tx_password2']); $i_TipoUsuario =trim($_POST['i_tipoUsuario']);
//Devuelve true si la cadena que llega esta VACIA
function estaEnBlanco($cadena) {
return true;
return false;
}
//Devuelve true si la longitud de la cadena (primer parametro)
// que llega es menor que el numero (segundo parametro)
function validaTamanio($cadena,$longitud) {
return true;
return false;
}
// devuelve true SI ha escrito, un email NO VALIDO
function esCorreoInvalido($str_email) {
return true;
return false;
}
// devuelve una cadena escapada de algunos caracteres que
// pudieran servir para un ataque de sql injection
function escaparQuery($cadena) {
$str_KeywordsSQL = array("select ","insert ","delete ","update ","union "); $str_OperadoresSQL = array("like ","and ","or ","not ","<",">","<>","=","<"); $str_DelimitadoresSQL = array(";","(",")","'");
//Quitar palabras reservadas y operadores
for($i=0; $i<count($str_KeywordsSQL); $i++) { }
for($i=0; $i<count($str_OperadoresSQL); $i++) { }
for($i=0; $i<count($str_DelimitadoresSQL); $i++) { }
return $cadena;
}
$mensajesAll= "";
//Mensajes para el nombre
if( estaEnBlanco($str_nombre) )
$mensajesAll = "<li>Por favor, escriba su Nombre.</li>";
if( validaTamanio($str_nombre,3) )
$mensajesAll .= "<li>Su Nombre como minimo debe tener 3 caracteres.</li>";
//Mensajes para el apellido
if( estaEnBlanco($str_apellido) )
$mensajesAll .= "<li>Por favor, escriba sus apellidos.</li>";
if( validaTamanio($str_apellido,3) )
$mensajesAll .= "<li>Sus apellidos como minimo debe tener 3 caracteres.</li>";
//Mensajes para el Correo electronico
if( estaEnBlanco($str_correo) || validaTamanio($str_correo,5) || esCorreoInvalido($str_correo) )
$mensajesAll .= "<li>Por favor, escriba una direccion de correo electronico valida.</li>";
//Mensajes para el Movil
if( estaEnBlanco($str_telefono,9) )
$mensajesAll .= "<li>Por favor, escriba mínimo 9 dígitos.</li>";
//Mensajes para el nombre de usuario
if( estaEnBlanco($str_username) )
$mensajesAll .= "<li>Por favor, escriba un nombre de usuario. Este dato le servira para iniciar sesion y ver el contenido.</li>";
if( validaTamanio($str_username,5) )
$mensajesAll .= "<li>Su nombre de usuario como minimo debe tener 5 caracteres.</li>";
//Mensajes para el password
if( estaEnBlanco($str_password) )
$mensajesAll .= "<li>Por favor, escriba una contraseña.</li>";
if( validaTamanio($str_password,5) )
$mensajesAll .= "<li>Su contraseña como minimo debe tener 5 caracteres.</li>";
//Mensajes para la confirmacion del password
if( estaEnBlanco($str_password2) || validaTamanio($str_password2,5) )
$mensajesAll .= "<li>Por favor, confirme la contraseña anterior.</li>";
if( trim($str_password) != trim($str_password2) ) $mensajesAll .= "<li>Por favor, repita la contraseña anterior.</li>";
//Mensajes para el tipo de usuario
if( estaEnBlanco($i_TipoUsuario) )
$mensajesAll .= "<li>Por favor, indique el tipo de usuaurio.</li>";
$log = $mensajesAll."<br>";
//Si se generaron mensajes de error al validar...
if ( trim($mensajesAll) != "" ) { //..Redireccion a la pagina de registro para mostrar msg de error al usuario
//Enviar los datos que habia escrito antes de enviar
?>
<form id="frm_error" name="frm_error" method="post" action="registro.php">
<input type="hidden" name="error" value="1" />
<input type="hidden" name="msgs_error" value='<?php echo $mensajesAll ?>' />
<input type="hidden" name="str_nombre" value='<?php echo $str_nombre ?>' />
<input type="hidden" name="str_apellido" value='<?php echo $str_apellido ?>' />
<input type="hidden" name="str_correo" value='<?php echo $str_correo ?>' />
<input type="hidden" name="str_telefono" value='<?php echo $str_telefono ?>' />
<input type="hidden" name="str_username" value='<?php echo $str_username ?>' />
<input type="hidden" name="str_password" value='<?php echo $str_password ?>' />
<input type="hidden" name="str_password2" value='<?php echo $str_password2 ?>' />
</form>
<script type="text/javascript">
//Redireccionar con el formulario creado
document.frm_error.submit();
</script>
<?php
}
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>.:: Registrar Usuario ::. </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="estilos.css" type="text/css">
<script src="jquery171.js" type="text/javascript"></script>
<script src="jquery.validate.js" type="text/javascript"></script>
<script type="text/javascript" src="jquery.alerts.js"></script>
<link href="jquery.alerts.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
<!--
$().ready(function() {
});
// -->
</script>
</head>
<body>
<?php
$mensajesAll = "";
$username_duplicado = false;
$email_duplicado = false;
//Escapar las cadenas para avitar SQL Injection
$str_username = escaparQuery($str_username);
$str_correo = escaparQuery($str_correo);
//Conectar la BD
include("conectar_bd.php");
conectar_bd();
//Validar que el nombre de usuario no exista en la BD
$sql = "SELECT id_usuario FROM tbl_users
WHERE tx_username = '".trim($str_username)."';"; $log .= $sql."<br>";
//Si ya existe el usuario en la BD...
$mensajesAll = "<li>El nombre de usuario <b>".$str_username."</b> ya fue registrado
por otra persona. Por favor, escriba otro.</li>";
$username_duplicado = true;
}
//Validar que el email no exista en la BD
$sql = "SELECT id_usuario FROM tbl_users
WHERE tx_correo='".$str_correo."';";
$log .= $sql."<br>";
//Si ya existe el email en la BD...
$mensajesAll = "<li>El correo electronico <b>".$str_correo."</b> ya fue registrado
por otra persona. Por favor, escriba otro.</li>";
$email_duplicado = true;
}
//Si ambos datos ya estan en la Base de datos mostrar un solo msg
if( $username_duplicado && $email_duplicado)
$mensajesAll = "<li>Ambos, nombre de usuario <b>".$str_username."</b>
y correo electronico <b>".$str_correo."</b> ya fueron registrados por otra persona.
Por favor, cambie esos datos.</li>";
//..Redireccion a la pagina de registro para mostrar msg de error al usuario
//Enviar los datos que habia escrito antes de enviar
$log .= $mensajesAll."<br>";
if ( trim($mensajesAll) != "" ) { //..Redireccion a la pagina de registro para mostrar msg de error al usuario
//Enviar los datos que habia escrito antes de enviar
?>
<form id="frm_error" name="frm_error" method="post" action="registro.php">
<input type="hidden" name="error" value="2" />
<input type="hidden" name="msgs_error" value='<?php echo $mensajesAll ?>' />
<input type="hidden" name="str_nombre" value='<?php echo $str_nombre ?>' />
<input type="hidden" name="str_apellido" value='<?php echo $str_apellido ?>' />
<input type="hidden" name="str_correo" value='<?php echo $str_correo ?>' />
<input type="hidden" name="str_telefono" value='<?php echo $str_telefono ?>' />
<input type="hidden" name="str_username" value='<?php echo $str_username ?>' />
<input type="hidden" name="str_password" value='<?php echo $str_password ?>' />
<input type="hidden" name="str_password2" value='<?php echo $str_password2 ?>' />
</form>
<script type="text/javascript">
//Redireccionar con el formulario creado
document.frm_error.submit();
</script>
<?php
}
//..Si llega asta aqui es que todos los datos son validos, procedemos a darlo de alta en BD
// Esta parte está cortada, favor de completarla