. // It's licensed under the AFFERO GENERAL PUBLIC LICENSE unless stated otherwise. // You can get copies of the licenses here: // http://www.affero.org/oagpl.html // AFFERO GENERAL PUBLIC LICENSE is also included in the file called "COPYING". include('config.php'); include(mnminclude.'html1.php'); include(mnminclude.'ts.php'); include(mnminclude.'ban.php'); do_header(_("registro"), "post"); do_banner_top(); echo '
' . "\n"; echo '
'."\n"; echo '
'."\n"; if(isset($_POST["process"])) { switch (intval($_POST["process"])) { case 1: do_register1(); break; case 2: do_register2(); break; } } else { do_register0(); } echo '
' . "\n"; echo '
' . "\n"; do_footer(); exit; function do_register0() { echo '

'._('¿Has olvidado la contraseña?').'

'; echo '
' . "\n"; echo '
' . "\n"; echo '' . _("registro") . '' . "\n"; echo '


' . "\n"; echo '' . "\n"; echo '' . "\n"; echo '

' . "\n"; echo '


' . "\n"; echo _('es importante que sea correcta, recibirás un correo para validar la cuenta').'
'; echo '' . "\n"; echo '' . "\n"; echo '

' . "\n"; echo '


' . "\n"; echo _('al menos cinco caracteres').'
'; echo '

' . "\n"; echo '


' . "\n"; echo '

' . "\n"; echo '

'._('has leído y aceptas las '); do_legal(_('condiciones de uso'), 'target="_blank"'); echo '

' . "\n"; echo '

' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '
' . "\n"; } function do_register1() { global $db, $globals; if($_POST["acceptlegal"] !== 'accept' ) { register_error(_("no has aceptado las condiciones de uso")); return; } if (!check_user_fields()) return; echo '
'; echo '
' . "\n"; echo '
'._('validación').''."\n"; ts_print_form(); echo ''; echo ''; echo ''; // extra sanity, in fact not needed echo ''; // extra sanity, in fact not needed echo ''; // extra sanity, in fact not needed echo ''; // extra sanity, in fact not needed echo '
'."\n"; } function do_register2() { global $db, $current_user, $globals; if ( !ts_is_human()) { register_error(_('El código de seguridad no es correcto.')); return; } if (!check_user_fields()) return; $username=clean_input_string(trim($_POST['username'])); // sanity check $dbusername=$db->escape($username); // sanity check $password=md5(trim($_POST['password'])); $email=clean_input_string(trim($_POST['email'])); // sanity check $dbemail=$db->escape($email); // sanity check $user_ip = $globals['user_ip']; if (!user_exists($username)) { if ($db->query("INSERT INTO users (user_login, user_login_register, user_email, user_email_register, user_pass, user_date, user_ip) VALUES ('$dbusername', '$dbusername', '$dbemail', '$dbemail', '$password', now(), '$user_ip')")) { echo '
'."\n"; echo ''._("registro de usuario").''."\n"; require_once(mnminclude.'user.php'); $user=new User(); $user->username=$username; if(!$user->read()) { register_error(_('Error insertando usuario en la base de datos')); } else { require_once(mnminclude.'mail.php'); $sent = send_recover_mail($user); } echo '
'."\n"; } else { register_error(_("Error insertando usuario en la base de datos")); } } else { register_error(_("El usuario ya existe")); } } function check_user_fields() { global $globals, $db; $error = false; if(check_ban_proxy()) { register_error(_("IP no permitida")); $error=true; } if(!isset($_POST["username"]) || strlen($_POST["username"]) < 3) { register_error(_("Nombre de usuario erróneo, debe ser de 3 o más caracteres alfanuméricos")); $error=true; } if(!check_username($_POST["username"])) { register_error(_("Nombre de usuario erróneo, caracteres no admitidos o no comienzan con una letra")); $error=true; } if(user_exists(trim($_POST["username"])) ) { register_error(_("El usuario ya existe")); $error=true; } if(!check_email(trim($_POST["email"]))) { register_error(_("El correo electrónico no es correcto")); $error=true; } if(email_exists(trim($_POST["email"])) ) { register_error(_("Ya existe otro usuario con esa dirección de correo")); $error=true; } if(preg_match('/[ \']/', $_POST["password"]) || preg_match('/[ \']/', $_POST["password2"]) ) { register_error(_("Caracteres inválidos en la clave")); $error=true; } if(strlen($_POST["password"]) < 5 ) { register_error(_("Clave demasiado corta, debe ser de 5 o más caracteres")); $error=true; } if($_POST["password"] !== $_POST["password2"] ) { register_error(_("Las claves no coinciden")); $error=true; } $user_ip = $globals['user_ip']; $last_register = $db->get_var("select count(*) from users where user_date > date_sub(now(), interval 12 hour) and user_ip = '$user_ip'"); if($last_register > 0) { register_error(_("Para registrar otro usuario desde la misma dirección debes esperar 12 horas.")); $error=true; } // Check class $ip_classes = explode(".", $user_ip); $ip_class = $ip_classes[0] . '.' . $ip_classes[1] . '.%'; $from = time() - 3600; $registered = intval($db->get_var("select count(*) from users where user_date > from_unixtime($from) and user_ip like '$ip_class'")); if($registered > 2) { register_error(_("Para registrar otro usuario desde la misma red debes esperar unos minutos.") . " ($ip_class)"); $error=true; } return !$error; } function register_error($message) { echo '
'; echo "

$message

"; echo "
\n"; } ?>