コード例 #1
0
function error($description, $error_place = '', $params = array())
{
    if (defined('DEVELOPER_ENVIROMENT')) {
        trigger_error('error', E_USER_WARNING);
        echo $description . '<br>' . $error_place . '<br><pre>';
        print_r($params);
        echo '</pre>';
    }
    debug::write_error($description, $error_place, $params);
    rollback_user_transaction();
    if (debug::is_console_enabled()) {
        echo debug::parse_html_console();
    } else {
        $message = '';
        if ($user_id = user::get_id()) {
            $message .= "user id:\t{$user_id}\nlogin:\t\t" . user::get_login() . "\ne-mail:\t\t" . user::get_email() . "\n";
        }
        $message .= "ip:\t\t" . sys::client_ip() . "\nrequest:\t" . REQUEST_URI . "\nerror:\t\t{$title}\ndescription:\t{$msg}";
        $mail = new mime_mail();
        $mail->set_body($message);
        $mail->build_message();
        $mail->send('developer', DEVELOPER_EMAIL, '', WEBSITE_EMAIL, $_SERVER['HTTP_HOST'] . ' internal error!');
    }
    ob_end_flush();
    exit;
}
コード例 #2
0
 function write($log_file_data, $string)
 {
     $log_dir = $log_file_data[0];
     $log_name = $log_file_data[1];
     $file_name = $log_dir . $log_name;
     if (!is_dir($log_dir)) {
         fs::mkdir($log_dir, 0775, true);
     }
     $oldumask = @umask(0);
     $file_existed = @file_exists($file_name);
     $log_file = @fopen($file_name, 'a');
     if ($log_file) {
         $time = strftime("%b %d %Y %H:%M:%S", strtotime('now'));
         $notice = '[ ' . $time . " ]\n";
         $user =& user::instance();
         if (($user_id = $user->get_id()) != DEFAULT_USER_ID) {
             $notice .= '[ ' . $user_id . ' ] [ ' . $user->get_login() . ' ] [ ' . $user->get_email() . ' ] ';
         }
         $notice .= '[' . sys::client_ip() . '] [' . (isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '') . "]\n" . $string . "\n\n";
         @fwrite($log_file, $notice);
         @fclose($log_file);
         if (!$file_existed) {
             @chmod($file_name, 0664);
         }
         @umask($oldumask);
         $result = true;
     } else {
         @umask($oldumask);
         $result = false;
         debug::write_error("Cannot open log file '{$file_name}' for writing\n" . "The web server must be allowed to modify the file.\n" . "File logging for '{$file_name}' is disabled.", __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__, false);
     }
     return $result;
 }
コード例 #3
0
 function login($login, $password)
 {
     $this->_delete_cookie();
     $user_ip = sys::client_ip(true);
     $sid = md5(uniqid($user_ip));
     session::set('phpbb_sid', $sid);
     $phpbb_user_data = array();
     $phpbb_user_data['session_user_id'] = user::get_id();
     $phpbb_user_data['session_id'] = $sid;
     $phpbb_user_data['session_ip'] = $user_ip;
     $phpbb_user_data['session_logged_in'] = 1;
     $phpbb_user_data['session_start'] = time();
     $phpbb_user_data['session_time'] = time();
     $db_table =& db_table_factory::create('phpbb_sessions');
     return $db_table->insert($phpbb_user_data);
 }
コード例 #4
0
 function progress()
 {
     $this->db =& db_factory::instance();
     $this->session_id = sys::client_ip();
 }
コード例 #5
0
  function test_login()
  {
  	$this->_login_user(5, array());
		$this->assertTrue($this->object->login('', ''));
		
		$db_table	=& db_table_factory :: instance('phpbb_sessions');
		
		$conditions['session_user_id'] = 5;
		$rows = $db_table->get_list($conditions, '', null);
		$record = current($rows);
		$this->assertEqual($record['session_ip'], ip :: encode_ip(sys :: client_ip()));
		$this->assertEqual($record['session_logged_in'], 1);
  }
コード例 #6
0
 function _send_mail($description, $verbosity_level)
 {
     $title = '';
     $headers = array();
     switch ($verbosity_level) {
         case DEBUG_LEVEL_NOTICE:
             $title .= ' debug notice';
             $headers['X-Priority'] = '0 (Low)';
             break;
         case DEBUG_LEVEL_WARNING:
             $title .= ' debug warning';
             break;
         case DEBUG_LEVEL_ERROR:
             $title .= ' debug error';
             $headers['X-Priority'] = '1 (High)';
             break;
         case DEBUG_TIMING_POINT:
             $title .= ' timig point';
             break;
     }
     $message = '';
     $user =& user::instance();
     if (($user_id = $user->get_id()) != DEFAULT_USER_ID) {
         $message .= "user id:\t" . "{$user_id}\n" . "login:\t\t" . $user->get_login() . "\n" . "e-mail:\t\t" . $user->get_email() . "\n";
     }
     $message .= "ip:\t\t" . sys::client_ip() . "\n" . "request:\t" . REQUEST_URI . "\n" . "description:\n" . $description;
     send_plain_mail(array(DEVELOPER_EMAIL), $_SERVER['SERVER_ADMIN'] . '<' . $_SERVER['HTTP_HOST'] . '> ', $title, $message, $headers);
 }
コード例 #7
0
 function get_client_ip()
 {
     return ip::encode_ip(sys::client_ip());
 }
コード例 #8
0
 function &parse_html_console($server_file_path = VAR_WEB_DIR)
 {
     if (!debug::is_debug_enabled()) {
         return '';
     }
     $debug =& debug::instance();
     $report =& $debug->_parse_report_internal(true);
     $ip = sys::client_ip();
     $js_window = "\r\n            <script language='javascript'>\r\n            <!-- hide this script from old browsers\r\n\r\n            function show_debug( file_name, title )\r\n            {\r\n              rn = Math.random();\r\n              debug_window = window.open( file_name + '?rn=' + rn, title, 'top=370,left=550,height=300,width=400,scrollbars,resizable');\r\n            }\r\n\r\n            show_debug('{$server_file_path}{$ip}-debug.html', 'debug');\r\n\r\n            //-->\r\n            </script>";
     $header = '<html><head><script>var NEED_TO_FOCUS = false</script><title>debug</title></head><body onload="if(NEED_TO_FOCUS)window.focus();else window.blur()">';
     $footer = '</body></html>';
     fs::mkdir(VAR_DIR);
     $fp = fopen(VAR_DIR . $ip . '-debug.html', 'w+');
     fwrite($fp, $header);
     fwrite($fp, $report);
     fwrite($fp, $footer);
     fclose($fp);
     return $js_window;
 }
コード例 #9
0
 function register_answer($answer_id)
 {
     if (!$answer_id) {
         return false;
     }
     if (!($poll_data = $this->get_active_poll())) {
         return false;
     }
     $poll_id = $poll_data['id'];
     if (!$poll_id) {
         return false;
     }
     if (!$this->can_vote()) {
         return false;
     }
     if (!$this->_add_vote_to_answer($poll_data['answers'][$answer_id]['record_id'])) {
         return false;
     }
     $poll_session =& session::get('poll_session');
     $poll_session[$poll_id] = $poll_id;
     switch ($poll_data['restriction']) {
         case 1:
             return true;
             break;
         case 2:
             $cookie = $_COOKIE;
             if (isset($cookie['poll_ids'])) {
                 $poll_ids = $cookie['poll_ids'];
                 $poll_ids += ',' . $poll_id;
             } else {
                 $poll_ids = $poll_id;
             }
             $one_week = 7 * 24 * 60 * 60;
             setcookie('poll_ids', $poll_ids, time() + $one_week, '/');
             break;
         case 3:
             $this->_register_new_ip($poll_id, sys::client_ip());
             break;
     }
     return true;
 }
コード例 #10
0
 function _send_mail($debug_info)
 {
     include_once LIMB_DIR . 'core/lib/mail/send_plain_mail.inc.php';
     $title = '';
     $headers = array();
     $description = debug::_parse_text_debug_info($debug_info);
     $verbosity_level = $debug_info['level'];
     switch ($verbosity_level) {
         case DEBUG_LEVEL_NOTICE:
             $title .= ' debug notice';
             $headers['X-Priority'] = '0 (Low)';
             break;
         case DEBUG_LEVEL_WARNING:
             $title .= ' debug warning';
             break;
         case DEBUG_LEVEL_ERROR:
             $title .= ' debug error';
             $headers['X-Priority'] = '1 (High)';
             break;
         case DEBUG_TIMING_POINT:
             $title .= ' timig point';
             break;
     }
     $message = '';
     $user =& user::instance();
     if (($user_id = $user->get_id()) != DEFAULT_USER_ID) {
         $message .= "user id:\t" . "{$user_id}\n" . "login:\t\t" . $user->get_login() . "\n" . "e-mail:\t\t" . $user->get_email() . "\n";
     }
     $message .= "ip:\t\t" . sys::client_ip() . "\n" . "request:\t" . $_SERVER['REQUEST_URI'] . "\n" . "description:\n" . $description;
     if (sys::exec_mode() == 'cli') {
         send_plain_mail(array(DEVELOPER_EMAIL), 'cli', $title, $message, $headers);
     } else {
         send_plain_mail(array(DEVELOPER_EMAIL), $_SERVER['SERVER_ADMIN'] . '<' . $_SERVER['HTTP_HOST'] . '> ', $title, $message, $headers);
     }
 }