static function registration($type, $in_order = false) { $nick = clear("nick"); $pass = clear("pass"); $mail = clear("mail"); $lang = clear("lang"); $ver = clear("ver"); $city = clear("city"); $is_newsletter = checkbox_value(clear("is_newsletter")); $l = new lang("registration", $_SESSION["my_lang_ui"]); $msg = $_SESSION["msg"]; if (strlen($pass) < 5) { $msg->set_text($l->t("pass_short"), "error"); $msg->set_specific_text($l->t("pass_short"), "pass", "error"); } //prilis dlouhy nick if (strlen($nick) > 21) { $msg->set_specific_text($l->t("nick_long"), "nick", "error"); } //verifikace proti robotum if (!lang::is_lang_supported(lang::strict_lang_by_user_agent())) { if ($ver != 4) { $msg->set_text($l->t("invalid_ver"), "error"); } } //zjisteni jeslti uz v db neni nekdo se stejnym nickem $sql = sql_query("select id from users\n\t\t\t\t\t\t\t\t\t\t\t\t\twhere (nick = '{$nick}')"); $num = sql_num_rows($sql); if ($num) { $msg->set_specific_text($l->t("nick_exists"), "nick", "error"); } //zjisteni jeslti uz v db neni nekdo se stejnym nickem mailem $sql = sql_query("select id from users\n\t\t\t\t\t\t\t\t\t\t\t\t\twhere (mail = '{$mail}')"); $num = sql_num_rows($sql); if ($num) { $msg->set_specific_text($l->t("mail_exists") . " " . my_link($l->l("ztracene-heslo"), $l->t("lost_password")), "mail", "error"); } if (!$nick || !$pass || !$mail) { $msg->set_text($l->t("empty_data"), "error"); } $test_mail = preg_match('~^[_a-zA-Z0-9-]+(\\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*$~i', $mail); if (!$test_mail) { $msg->set_specific_text($l->t("invalid_email"), "mail", "error"); } //pokud je vse v poradku if ($msg->is_empty()) { $sec_pass = $pass; $pass = md5(md5(md5(md5(md5($pass))))); $names = explode(" ", $nick); if (count($names) > 1) { $surname = $names[count($names) - 1]; } if (!$lang) { $lang = $_SESSION["my_lang"]; } $sql = sql_query("insert into users\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(nick, pass, mail, register_time, photo,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tshow_readed, booklists_style, virtual_surname, city, is_newsletter,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlang, lang_ui, registration_source)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalues\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t('{$nick}', '{$pass}', '{$mail}', '" . time() . "', 'no',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'yes', 'default', '" . $surname . "', '" . $city . "', '" . $is_newsletter . "',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'" . $lang . "', '" . $lang . "', '" . $type . "')"); if ($sql) { $id = mysql_insert_id(); //v pripade ze ma ulozeny trackovaci cookie, ulozime udaj $tracking = $_COOKIE["a_campaign"]; if ($tracking) { $s = sql_query("insert into registrations_sources\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(user, time, source)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalues\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t('" . $id . "', '" . time() . "', '" . $tracking . "')"); } //ulozime pripadne nastavene zajmy $sql_i = sql_query("select name, interest_id from interests\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twhere (lang = '" . $_SESSION["my_lang"] . "')\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\torder by name asc"); $interests[] = array(); while ($data_i = sql_fetch_object($sql_i)) { $temp = clear("interest_" . $data_i->interest_id); if (isset($interests[(string) $data_i->interest_id])) { continue; } if ($temp) { $interests[$data_i->interest_id] = 1; $s = sql_query("insert into users_interests\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(user, interest)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalues\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t('" . $id . "', '" . $data_i->interest_id . "')"); } } //zaslani registracniho emailu $text = strip_tags($l->t("reg_mail_text", $nick, $sec_pass) . "\n" . $l->t("web_url")); $sent = mail($mail, $l->t("reg_subject"), $text, "From: info@cbdb.cz \nContent-Type: text/plain; charset=utf-8"); if ($sent) { if (!$in_order) { $msg->set_text($l->t("reg_ok") . "<br />"); } else { } //prihlasime usera ----------------------- $my_login = new my_login(); $my_login->log_in("ok", $nick, $sec_pass); } } } }