+ log_step("LOGIN: $name");
+
+ // default values
+ $_cookie_law_3party = 'true';
+ if (isset($cookie['_cookie_law_3party']))
+ $_cookie_law_3party = $cookie['_cookie_law_3party'];
+
+ $remote_addr = addrtoipv4($remote_addr_full);
+
+ $is_login = FALSE;
+ $body = "";
+ $tables = "";
+ $standup = "";
+ $ACTION = "login";
+ $last_msg = "";
+ $banned = FALSE;
+
+ if (isset($BRISK_SHOWHTML) == FALSE) {
+ $is_table = FALSE;
+ log_main("lock Brisk");
+ $curtime = time();
+
+ /* Actions */
+ if (($ghost_sess = $brisk->ghost_sess->pop($sess)) != FALSE) {
+ switch ($ghost_sess->reas) {
+ case GHOST_SESS_REAS_LOUT:
+ $last_msg = $mlang_room['reas_lout'][$G_lang];
+ break;
+ case GHOST_SESS_REAS_ANOT:
+ $last_msg = $mlang_room['reas_anot'][$G_lang];
+ break;
+ case GHOST_SESS_REAS_TOUT:
+ $last_msg = $mlang_room['reas_tout'][$G_lang];
+ break;
+ case GHOST_SESS_REAS_TTOT:
+ $last_msg = $mlang_room['reas_ttot'][$G_lang];
+ break;
+ case GHOST_SESS_REAS_ANON:
+ $last_msg = $mlang_room['reas_anon'][$G_lang];
+ break;
+ case GHOST_SESS_REAS_PROX:
+ $last_msg = $mlang_room['reas_prox'][$G_lang];
+ break;
+ default:
+ $last_msg = $mlang_room['reas_unkn'][$G_lang];
+ break;
+ }
+ }
+ if ($brisk->cloud_check($remote_addr)) {
+ // TODO: find a way to add a nonblocking sleep(5) here
+ $banned = TRUE;
+ $last_msg = $mlang_room['reas_cloud'][$G_lang];
+ }
+
+
+ if (validate_sess($sess)) {
+ log_main("pre garbage_manager UNO");
+ $brisk->garbage_manager(TRUE);
+ log_main("post garbage_manager");
+ if (($user = &$brisk->get_user($sess, &$idx)) != FALSE) {
+ if ($user->the_end == FALSE) {
+ $brisk->sess_cur_set($user->sess);
+ log_main("user stat: ".$user->stat);
+ if ($user->stat == "table") {
+ $cookies = new Cookies();
+ $cookies->add("table_token", $user->table_token, $curtime + 31536000);
+ $cookies->add("table_idx", $user->table, $curtime + 31536000);
+ $header_out['cookies'] = $cookies;
+ $header_out['Location'] = "briskin5/index.php";
+ return TRUE;
+ }
+ $ACTION = "room";
+ }
+ }
+ }
+ if (!$banned && $ACTION == "login" && isset($name)) {
+ log_main("pre garbage_manager DUE");
+
+ if (isset($pass_private) == FALSE || $pass_private == "") {
+ $pass_private = FALSE;
+
+ if ($brisk->ban_check($remote_addr)) {
+ // TODO: find a way to add a nonblocking sleep(5) here
+ $banned = TRUE;
+ $idx = -4;
+ }
+ }
+
+ $brisk->garbage_manager(TRUE);
+ /* try login */
+
+ if ($banned == FALSE &&
+ ($user = $brisk->add_user(&$sess, &$idx, $name, $pass_private,
+ $remote_addr, $header, $cookie)) != FALSE) {
+ $brisk->sess_cur_set($user->sess);
+ $ACTION = "room";
+ if ($idx < 0) {
+ $idx = -$idx - 1;
+ $is_login = TRUE;
+ }
+
+ log_legal($curtime, $remote_addr, $user, "STAT:LOGIN", '');
+
+ // recovery lost game
+ if ($user->stat == "table") {
+ $cookies = new Cookies();
+ $cookies->add("table_token", $user->table_token, $curtime + 31536000);
+ $cookies->add("table_idx", $user->table, $curtime + 31536000);
+ $header_out['cookies'] = $cookies;
+ $header_out['Location'] = "briskin5/index.php";
+ return TRUE;
+ }
+ }
+ else {
+ fprintf(STDERR, "POST CHECK QUI\n");
+ /* Login Rendering */
+ switch($idx) {
+ case -4:
+ $sfx = 'ban';
+ break;
+ case -3:
+ $sfx = 'err';
+ break;
+ case -2:
+ $sfx = 'must';
+ break;
+ case -1:
+ $sfx = 'end';
+ break;
+ default:
+ $sfx = 'use';
+ }
+
+ $body .= '<div class="urgmsg"><b>'.$mlang_room['userpass'.$sfx][$G_lang].'</b></div>';
+ }
+ }
+ }
+ /* Rendering. */
+
+ if ($BRISK_SHOWHTML == "debugtable") {
+ $ACTION = "room";
+ }
+ else if ($BRISK_SHOWHTML == "debuglogin") {
+ $ACTION = "login";
+ }
+
+ if ($ACTION == "room") {
+ $tables .= '<div class="room_tab">';
+ $tables .= '<table class="room_tab">';
+ for ($ii = 0 ; $ii < TABLES_N ; $ii++) {
+ if ($user->is_auth())
+ $i = $ii;
+ else
+ $i = TABLES_N - $ii - 1;
+
+ if ($ii % 4 == 0) {
+ $tables .= '<tr id = "tr_noauth'.$ii.'">';
+ }
+ if (TRUE || !($user->flags & USER_FLAG_ISOLAUTH) || $ii < TABLES_AUTH_N) {
+ $tables .= '<td id = "td_noauth'.$ii.'">';
+
+ $tables .= '<div class="room_div"><div class="room_tit"><b>'.$mlang_room['tit_tabl'][$G_lang].$i.'</b></div>';
+ $tables .= sprintf('<div class="proxhr" id="table%d"></div>', $i);
+ $tables .= sprintf('<div class="table_act" id="table_act%d"></div>', $i);
+ $tables .= '</div>';
+ $tables .= '</td>'."\n";
+ }
+ if ($ii % 4 == 3) {
+ $tables .= '</tr>';
+ }
+ }
+ $tables .= '</table></div>';
+
+ $standup .= '<table class="room_standup"><tr><td><div class="room_standup_orig" id="room_standup_orig"></div>';
+ $standup .= '<div class="room_ex_standup">';
+ /* MLANG: "Giocatori in piedi" */
+ // $standup .= '<div id="room_tit"><span class="room_titin"><b>Giocatori in piedi</b> - <a target="_blank" href="weboftrust.php">Come ottenere user e password</a> - </span></div>';
+ $standup .= '<div id="room_tit"><span class="room_titin"><b>'.$mlang_room['standing'][$G_lang].'</b></span></div>';
+
+ $standup .= sprintf('<div id="standup" class="room_standup"></div>');
+ // MLANG Esco.
+ $standup .= '<div id="esco" class="esco"><input type="button" class="button" name="xreload" value="Reload." onclick="act_reloadroom();"><input class="button" name="logout" value="'.$mlang_room['btn_exit'][$G_lang].'" onclick="esco_cb();" type="button"></div>';
+ $standup .= '</div></td></tr></table>';
+ }
+
+ $altout_sponsor_arr = array( array ( 'id' => 'btn_altout',
+ 'url' => 'http://www.alternativeoutput.it',
+ 'content' => 'img/altout80x15.png',
+ 'content_big' => 'img/logotxt_banner.png'),
+ array ( 'id' => 'btn_virtualsky',
+ 'url' => 'http://virtualsky.alternativeoutput.it',
+ 'content' => 'img/virtualsky80x15a.gif',
+ 'content_big' => 'img/virtualsky_big.png'),
+ array ( 'id' => 'btn_dynamica',
+ 'url' => 'http://www.dynamica.it',
+ 'content' => 'img/dynamica.png',
+ 'content_big' => 'img/dynamica_big.png')
+ );
+
+ $altout_support_arr = array( array ( 'id' => 'btn_brichi',
+ 'url' => 'http://www.briscolachiamata.it',
+ 'content' => 'img/brichi.png',
+ 'content_big' => 'img/brichi_big.png'),
+ array ( 'id' => 'btn_foroli',
+ 'url' => 'http://www.forumolimpia.it',
+ 'content' => 'img/forumolimpia.gif',
+ 'content_big' => 'img/forumolimpia_big.png' ),
+ array ( 'id'=> 'btn_niini',
+ 'url' => 'http://www.niinivirta.it',
+ 'content' => 'img/niinivirta.png',
+ 'content_big' => 'img/niinivirta_big.png') );
+
+
+
+ $altout_support = "";
+ $altout_support_big = "";
+ for ($i = 0 ; $i < 4 ; $i++) {
+ $ii = ($i < 3 ? $i : 0);
+
+ $altout_support .= sprintf('<a style="position: absolute; top: %dpx; left: 7px;" target="_blank" href="%s"><img class="nobo" id="%s" src="%s" onMouseOver="show_bigpict(this, \'over\',100,10);" onMouseOut="show_bigpict(this, \'out\',0,0);"></a><br>'."\n",
+ $i * 20, $altout_support_arr[$ii]['url'],
+ $altout_support_arr[$ii]['id'], $altout_support_arr[$ii]['content']);
+
+ $altout_support_big .= sprintf('<img style="position: absolute;" class="nobohide" id="%s_big" src="%s">',
+ $altout_support_arr[$ii]['id'], $altout_support_arr[$ii]['content_big']);
+ }
+
+
+ // seed with microseconds since last "whole" second
+ // srand ((double) microtime() * 1000000);
+ // $randval = rand(0,count($altout_sponsor_arr)-1);
+ $altout_sponsor = "";
+ $altout_sponsor_big = "";
+ for ($i = 0 ; $i < 4 ; $i++) {
+ $ii = ($i < 3 ? $i : 0);
+
+ $altout_sponsor .= sprintf('<a style="position: absolute; top: %dpx; left: 7px;" target="_blank" href="%s"><img class="nobo" id="%s" src="%s" onMouseOver="show_bigpict(this, \'over\',100,10);" onMouseOut="show_bigpict(this, \'out\',0,0);"></a><br>'."\n",
+ $i * 20, $altout_sponsor_arr[$ii]['url'],
+ $altout_sponsor_arr[$ii]['id'], $altout_sponsor_arr[$ii]['content']);
+
+ $altout_sponsor_big .= sprintf('<img class="nobohide" id="%s_big" src="%s">',
+ $altout_sponsor_arr[$ii]['id'], $altout_sponsor_arr[$ii]['content_big']);