ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Територия
  #1  
Старый 07.10.2006, 22:02
Аватар для Tem
Tem
Banned
Регистрация: 05.10.2005
Сообщений: 965
Провел на форуме:
5888800

Репутация: 547


Отправить сообщение для Tem с помощью ICQ
По умолчанию Територия

Значить так ст авлю у себя на локалке територию всё ок , но когда вхожу даётся такая ошибка:

PHP Parse error: syntax error, unexpected T_THROW, expecting T_STRING in C:\\Program Files\\Apache Group\\Apache2\\htdocs\\include\\common_small.inc on line 47, referer: http://localhost/project.php

вот содиржания файла common_small.inc

PHP код:
<?php
  
include_once(dirname(__FILE__)."/config.inc");
  include_once(
dirname(__FILE__)."/constant.inc");
  include_once(
dirname(__FILE__)."/ipcookie.inc");
  include_once(
dirname(__FILE__)."/debug.inc");
  
/* include_once(dirname(__FILE__)."/cache.inc"); */
  
include_once(dirname(__FILE__)."/database_small.inc");

  
$container = new Database(HOST_NAMEDATABASE_NAMEDATABASE_USERDATABASE_PASSWORD);
  
$container_session = new Database(SESSION_HOST_NAMESESSION_DATABASE_NAMESESSION_DATABASE_USER

SESSION_DATABASE_PASSWORD);
  
$container_fight = new Database(FIGHT_HOST_NAMEFIGHT_DATABASE_NAMEFIGHT_DATABASE_USER

FIGHT_DATABASE_PASSWORD);

  include_once(
dirname(__FILE__)."/cgi.inc");
  include_once(
dirname(__FILE__)."/theme.inc");
  include_once(
dirname(__FILE__)."/module_small.inc");

  
include_module(array('session''personage''area''file'));

  function 
include_module($arr) {
    if (
is_array($arr))
    foreach (
$arr as $itemmodule_include($item);
  }


  function 
print_r1($data) {
    print 
"<pre>"print_r($data); print "</pre>";
  }

  function 
make_seed() {
      list(
$usec,$sec) = explode(" "microtime());
      return ((float)
$sec+(float)$usec) * 100000;
  }

  function 
print_r2($data) {
    global 
$DOCUMENT_ROOT;

    
ob_start();
    
print_r($data);
    
$s ob_get_contents();
    
ob_end_clean();
    
$f fopen($DOCUMENT_ROOT."/dbg.log""a+");
    
fwrite($f$s);
    
fclose($f);
  }


function throw(
$exception) {
    global 
$DOCUMENT_ROOT;
    if (
EXCEPTION_STREAM == 1) {
      
ob_start();
      
trigger_error($exceptionE_USER_WARNING);
      
$s ob_get_contents();
      
ob_end_clean();
      
$f fopen($DOCUMENT_ROOT."/exception.log""a+");
      
fwrite($fdate("H:i:s").": ".$s.'\n');
      
fclose($f);
    } elseif (
EXCEPTION_STREAM == 0) {
      if (
EXCEPTION_LEVEL == 0) {
      } elseif (
EXCEPTION_LEVEL == 1) {
//        $theme = new BaseTheme();
//        print $theme->error($exception);
//        trigger_error($exception, E_USER_WARNING);
      
} elseif (EXCEPTION_LEVEL == 2) {
//        trigger_error($exception, E_USER_ERROR);
      
}
    }
    if (
EXCEPTION_STOP) die;
  }

  function 
moneyFormat($amount 0)
  {
    return 
sprintf("%.2f"$amount);
  }

  function 
moneyValue($amount 0)
  {
    return 
abs(floatval($amount));
  }

  function 
_pages($total$offset$limit) {
    
$result = array();

    if (
$limit $total) {
      
$result[0] = array();
      
$result[0]["OFFSET"] = 0;

      
$index 0;
      for (
$i 0$i $total$i += $limit) {
        
$result[$index] = array();
        
$result[$index]["OFFSET"] = $i;
        if (
$i == $offset) {
          
$result[$index]["SELECTED"] = 1;
          
$result["NEXT"] = array();
          
$result["NEXT"]["OFFSET"] = (($i+$limit) > $total)? $i $i+$limit;
          
$result["PREV"] = array();
          
$result["PREV"]["OFFSET"] = ($i == 0)? $i-$limit;
        } else {
          
$result[$index]["SELECTED"] = 0;
        }
        
$index++;
      }
    }

    return 
$result;
  }

  function 
getContainerChat($area_id) {
    global 
$container$container_chat;

    if (!
$area_id) return $container;

    
$arr getContainerParam($area_id);
    if (
$arr['HOST'] == '') {
      
$container_chat = &$container;
    } else
    if ((
$container->host_name != '') && ($container->host_name == $arr['HOST']) && ($container->database_name == $arr['DATABASE']) && 

(
$container->database_user == $arr['USER'])) {
      
$container_chat = &$container;
//      $container_chat = new Database($arr['HOST'], $arr['DATABASE'], $arr['USER'], $arr['PASSWORD']);
    
} else {
      
$container_chat = new Database($arr['HOST'], $arr['DATABASE'], $arr['USER'], $arr['PASSWORD']);
    }


    return 
$container_chat;
  }

  function 
getContainerParam($area_id) {
    global 
$container$container_chat$servers;

/*
  для скорости берем напрямую из global $servers    
  
    $list = module_invoke('server', 'list_chat', false, 0, $area_id);
    if (!$list || (count($list) == 0)) return false; # если не определены серверы для чата, то считаем, что чат не разделяется на сервера!

    $area = area_get($area_id);
    $container_array = array('HOST' => $area['CHAT_HOST'], 'DATABASE' => $area['CHAT_DATABASE'], 'USER' => $area['CHAT_USER'], 

'PASSWORD' => $area['CHAT_PASSWORD']);
    if (!$container_array['HOST']) {
      $container_array['HOST'] = $list[0]['HOST_NAME'];
      $container_array['DATABASE'] = $list[0]['DATABASE_NAME'];
      $container_array['USER'] = $list[0]['USER'];
      $container_array['PASSWORD'] = $list[0]['PASSWORD'];
    }
*/
    
$container_array['HOST'] = $servers[0]['HOST_NAME'];
    
$container_array['DATABASE'] = $servers[0]['DATABASE_NAME'];
    
$container_array['USER'] = $servers[0]['USER'];
    
$container_array['PASSWORD'] = $servers[0]['PASSWORD'];
    
    return 
$container_array;
  }


  
/**
  * Посылка специального сообщения. Функцию можно вызывать откуда угодно, даже оттуда, где нет залогиненной
  * сессии (например из кронов). Также фукнцию можно вызывать для посылки сообщения игроку, находящемуся
  * где угодно, не обязательно в той же точке местоположения, что и текущий залогиненный игрок
  * @param integer $recipient_id - код персонажа, которому посылать сообщение
  * @param string $text - текст сообщение
  */
  
function send_chat_special($recipient_id,
                             
$text,
                             
$recipient_nick '',
                             
$area_id 0,
                             
$service 100) {
    global 
$container_chat;

    
$tmp_container_chat $container_chat;

    if (!
$recipient_nick || !$area_id) {
      
$recipient module_invoke('personage''get'$recipient_id);
      if (!
$recipient_nick$recipient_nick $recipient['LOGIN'];

      if (!
$area_id) {
        
$container_chat getContainerChat($recipient['AREA_ID']); # так как chat_save_system() использует глобальную $container_chat
        
$area_id $recipient['AREA_ID'];
      }
    }

    
$res module_invoke('chat''save_special', array(
      
"AREA_ID" => $area_id,
      
"PERSONAGE_ID" => 0,
      
"PERSONAGE_LOGIN" => '',
      
"RECIPIENT_ID" => $recipient_id,
      
"RECIPIENT_LOGIN" => $recipient_nick,
      
"SERVICE" => $service,
      
"MESSAGE" => "private [".$recipient_nick."]: ".$text,
    ));

    
$container_chat $tmp_container_chat;

    return 
$res;
  }

  
/**
  * Посылка системного сообщения сообщения. Аналог send_chat_special()
  * @param string $text - текст сообщение
  * @param integer $recipient_id - код персонажа, которому посылать сообщение
  */
  
function send_chat_system($recipient_id,
                            
$text,
                            
$service,
                            
$recipient_nick '',
                            
$area_id 0) {
    global 
$container_chat;

    
$tmp_container_chat $container_chat;

    if (!
$recipient_nick || !$area_id) {
      
$recipient module_invoke('personage''get'$recipient_id);
      if (!
$recipient_nick$recipient_nick $recipient['LOGIN'];

      if (!
$area_id) {
        
$container_chat getContainerChat($recipient['AREA_ID']); # так как chat_save_system() использует глобальную $container_chat
        
$area_id $recipient['AREA_ID'];
      }
    }

    
$res module_invoke('chat''save_system', array(
      
"AREA_ID" => $area_id,
      
"PERSONAGE_ID" => 0,
      
"PERSONAGE_LOGIN" => '',
      
"RECIPIENT_ID" => $recipient_id,
      
"RECIPIENT_LOGIN" => $recipient_nick,
      
"SERVICE" => $service,
      
"MESSAGE" => $text,
    ));

    
$container_chat $tmp_container_chat;

    return 
$res;
  }

  function 
areInTheSameDistrict($area1_id$area2_id) {

    
$parents1 module_invoke('area''list_parent'false$area1_id" AND A.TYPE_ID=1");
    
#print_r2($parents1);
    
$parents2 module_invoke('area''list_parent'false$area2_id" AND A.TYPE_ID=1");
    
#print_r2($parents2);

    
return ($parents1[0]['ID'] && $parents2[0]['ID'] && ($parents1[0]['ID'] == $parents2[0]['ID'])) ? true false;
  }

  
/**
  * Посылка простого сообщения. Функцию "настигает" получателя приватного сообщения в пределах района
  * @param integer $area_id - в какую комнату нужно отправлять сообщение
  * @param integer $sender_id - код персонажа - отправителя сообщения
  * @param string $sender_nick - ник персонажа - отправителя сообщения
  * @param string $sender_color - цвет сообщения персонажа - отправителя сообщения
  * @param integer $recipient_id - код персонажа, которому посылать сообщение
  * @param string $recipient_nick - ник персонажа, которому посылать сообщение
  * @param integer $service - 100 - private, 101 - to
  * @param string $full_msg_text - само сообщение полностью
  * @param string $ip - ip-адрес отправителя
  */
  
function send_chat_message($area_id,
                             
$sender_id,
                             
$sender_nick,
                             
$sender_color,
                             
$recipient_id,
                             
$recipient_nick,
                             
$service,
                             
$full_msg_text,
                             
$ip '') {
    global 
$container_chat$session_personage;

    
# код отправителя должен быть задан всегда!
    
if (!$sender_id$sender_id $session_personage['ID'];

    
# код комнаты назначения и сервис должны быть установлены всегда!
    # if (!isset($area_id) || !isset($service))
    #  return false;
    # текст сообщения должен быть задан всегда! (если код отправителя 0 - значит, посылает администратор)
    
if (!trim(strval($full_msg_text)))
      return 
false;

    
# если не задан ник отправителя, вычисляем его здесь!
    
if (!$sender_nick && $sender_id) {
      
$sender module_invoke('personage''get'$sender_id);
      
$sender_nick $sender['LOGIN'];
    }
    
# если не задан ник получателя, пытаемся вычислить его здесь; может оказаться пустым, если не задан код получателя - это 

нормальная ситуация
    
if (!$recipient_nick && !$recipient_id) {
      
$recipient module_invoke('personage''get'$recipient_id);
      
$recipient_nick $recipient['LOGIN'];
    }

    
$tmp_container_chat $container_chat;
    
$ip $ip $ip getIP();

    
$full_msg_text '<font color="'.$sender_color.'">'.$full_msg_text.'</font>';

    
# специальная обработка для приватных сообщений - они должны "настигать" получателя в пределах района!
    
if ($service == 100) {
      if (!
$sender)
        
$sender module_invoke('personage''get'$sender_id);

      if (
$sender['AREA_ID'] != $area_id) {
        if (!
areInTheSameDistrict($sender['AREA_ID'], $area_id)) {

          return 
module_invoke('chat''save_message', array( # дубль отправителю привата идет всегда!
            
"AREA_ID" => intval($sender['AREA_ID']),
            
"PERSONAGE_ID" => intval($sender_id),
            
"PERSONAGE_LOGIN" => strval($sender_nick),
            
# "PERSONAGE_COLOR" => strval($sender_color),
            
"RECIPIENT_ID" => intval($recipient_id),
            
"RECIPIENT_LOGIN" => strval($recipient_nick),
            
"SERVICE" => intval($service),
            
"MESSAGE" => strval($full_msg_text),
            
"IP" => strval($ip),
          ));
        }

        
$container_chat getContainerChat($area_id);
      }
    }

    
$res module_invoke('chat''save_message', array(
      
"AREA_ID" => intval($area_id),
      
"PERSONAGE_ID" => intval($sender_id),
      
"PERSONAGE_LOGIN" => strval($sender_nick),
      
# "PERSONAGE_COLOR" => strval($sender_color),
      
"RECIPIENT_ID" => intval($recipient_id),
      
"RECIPIENT_LOGIN" => strval($recipient_nick),
      
"SERVICE" => intval($service),
      
"MESSAGE" => strval($full_msg_text),
      
"IP" => strval($ip),
    ));

    
$container_chat $tmp_container_chat;

    if (
$service == 100 && $sender['AREA_ID'] != $area_id) { # дубль отправителю привата
      
module_invoke('chat''save_message', array(
        
"AREA_ID" => intval($sender['AREA_ID']),
        
"PERSONAGE_ID" => intval($sender_id),
        
"PERSONAGE_LOGIN" => strval($sender_nick),
        
# "PERSONAGE_COLOR" => strval($sender_color),
        
"RECIPIENT_ID" => 0,
        
"RECIPIENT_LOGIN" => '',
        
"SERVICE" => intval($service),
        
"MESSAGE" => strval($full_msg_text),
        
"IP" => strval($ip),
      ));
    }

    return 
$res;
  }

  function 
check_html_msg($msg) {
    return 
$msg;
  }

  
/**
  * Печатает 5 input полей - день, месяц, год, час, минуты
  * @param string $name - база для имен input полей
  * @param string $value - дата, отдельные части которой подставляются в качестве значений input-полей
  * @return string - результат
  */
  
function _form_date($name$value) {
    if (
$value) { # value = date("Y-m-d h:m");
      
$day1 substr($value8);
      
$month1 substr($value52);
      
$year1 substr($value04);
      
$hour1 substr($value112);
      
$min1 substr($value142);
    }
    
$result .= "<select name=\"".$name."_day\">\n";
    for (
$i 1$i 32$i++) {
      
$result .= "<option value=\"$i\" ".(($day1 == $i)? "SELECTED" "").">$i\n";
    }
    
$result .= "</select>\n";
    
$result .= ".&nbsp;<select name=\"".$name."_month\">\n";
    
$result .= "<option value=\"01\" ".((intval($month1) == 1)? "SELECTED" "").">Январь\n";
    
$result .= "<option value=\"02\" ".((intval($month1) == 2)? "SELECTED" "").">Февраль\n";
    
$result .= "<option value=\"03\" ".((intval($month1) == 3)? "SELECTED" "").">Март\n";
    
$result .= "<option value=\"04\" ".((intval($month1) == 4)? "SELECTED" "").">Апрель\n";
    
$result .= "<option value=\"05\" ".((intval($month1) == 5)? "SELECTED" "").">Май\n";
    
$result .= "<option value=\"06\" ".((intval($month1) == 6)? "SELECTED" "").">Июнь\n";
    
$result .= "<option value=\"07\" ".((intval($month1) == 7)? "SELECTED" "").">Июль\n";
    
$result .= "<option value=\"08\" ".((intval($month1) == 8)? "SELECTED" "").">Авгутс\n";
    
$result .= "<option value=\"09\" ".((intval($month1) == 9)? "SELECTED" "").">Сентябрь\n";
    
$result .= "<option value=\"10\" ".((intval($month1) == 10)? "SELECTED" "").">Октябрь\n";
    
$result .= "<option value=\"11\" ".((intval($month1) == 11)? "SELECTED" "").">Ноябрь\n";
    
$result .= "<option value=\"12\" ".((intval($month1) == 12)? "SELECTED" "").">Декабрь\n";
    
$result .= "</select>\n";
    
$result .= ".&nbsp;<select name=\"".$name."_year\">\n";
    
$y date("Y");
    for (
$i $y$i < ($y+4); $i++) {
      
$result .= "<option value=\"$i\" ".(($year1 == $i)? "SELECTED" "").">$i\n";
    }
    
$result .= "</select>\n";
    
$result .= "&nbsp;<select name=\"".$name."_hour\">\n";
    for (
$i 0$i 24$i++) {
      
$result .= "<option value=\"$i\" ".(($hour1 == $i)? "SELECTED" "").">$i\n";
    }
    
$result .= "</select>\n";
    
$result .= ":&nbsp;<select name=\"".$name."_min\">\n";
    for (
$i 0$i 60$i++) {
      
$result .= "<option value=\"$i\" ".(($min1 == $i)? "SELECTED" "").">$i\n";
    }
    
$result .= "</select>\n";

    return 
$result;
  }

  function 
initGlobalVariables($sid) { # используется также в ботах
    
global $session$session_user$session_personage$session_area$container_chat$session_position;

    if (
$sid) {
      
$session module_invoke("session""get"$sid);
      
$session_user module_invoke("session""get_user"$session["UID"]);
      
$session_personage module_invoke("personage""get"$session["UID"]);
      
$session_area module_invoke("area""get"$session_user["AREA_ID"]);
      
$session_position module_invoke("area""get_position"$session_user["AREA_ID"]);

      
$container_chat getContainerChat($session['AREA_ID']);
    }
  }

  function 
varSet($varName false)
  {
    global 
$_GET$_POST;
    if (!
$varName)
    {
      return 
false;
    };
    return isset(
$_GET[$varName]) || isset($_POST[$varName]) ? true false;
  }

  function 
getVar($varName false)
  {
    global 
$_GET$_POST;
    if (!
$varName)
    {
      return 
false;
    };
    if (isset(
$_GET[$varName]))
    {
      return 
$_GET[$varName];
    };
    if(isset(
$_POST[$varName]))
    {
      return 
$_POST[$varName];
    };
    return 
false;
  }

  function 
nick2html($nick) {
    return 
str_replace('"''&quot;'$nick);
  }
  
  global 
$cronTag$activeCookie;
  if (!isset(
$cronTag) || ($cronTag == false))
  {
    
$ipaddr ip2long(getIP());
    if (!isset(
$_COOKIE["active"]) ||
        (!
checkActiveCookie($_COOKIE["active"], $ipaddr)))
    {
    
$cookie generateActiveCookie($ipaddr);                                                                                 
    
setcookie("active"$cookie);
    
$activeCookie $cookie;
    }
    else
    {
    
$activeCookie $_COOKIE["active"];
    };
  };
  
$cgi = new CGI();
  
$theme = new BaseTheme();
  
$cache false;
/*  $cache = new Cache(); */
  
$cache false;
  
initGlobalVariables($sid);
  if (
$session_user['LOGIN'] == 'root') {
    
$container->is_debug true;
    
$container_fight->is_debug true;
    
$container_session->is_debug true;
    
$container_chat->is_debug true;
  }
?>
Вот не разберусь в чём тама проблема, кто поможит в проблеме подкину 3 WMZ, жду ответов.
 
Ответить с цитированием
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ