Вход Регистрация
Файл: includes/functions_gb.php
Строк: 227
<?php

if ( !defined('IN_PHPBB') )
{
    die(
"Hacking attempt");
}

define ('GUESTBOOK'$table_prefix.'guestbook');
define ('GUESTBOOK_CONFIG_TABLE'$table_prefix.'guest_config');

$language $userdata['user_lang'];

if( !
file_exists($phpbb_root_path 'language/lang_' $language '/lang_book.'.$phpEx) )
{
   
$language $board_config['default_lang'];
}

if( !
file_exists($phpbb_root_path 'language/lang_' $language '/lang_book.'.$phpEx) )
{
   
$language 'english';
}

include(
$phpbb_root_path 'language/lang_' $language '/lang_book.' $phpEx);


 class 
guestbook
 
{
    var 
$guestbook_config = array();
    var 
$patterns_b "#[b](.*?)[/b]#si";
    var 
$patterns_i "#[i](.*?)[/i]#si";
    var 
$patterns_u "#[u](.*?)[/u]#si";
    var 
$patterns_img "#[img]([^?].*?)[/img]#si";
    var 
$patterns_url0 "#[url](.*?)[/url]#si";
    var 
$patterns_url "#[url]([w]+?://[^ "nrt<]*?)[/url]#is";
    
var $patterns_url1 "#[url]((www|ftp).[^ "nrt<]*?)[/url]#is";
    
var $patterns_url2 "#[url=([w]+?://[^ "nrt<]*?)](.*?)[/url]#is";
    
var $patterns_url3 "#[url=((www|ftp).[^ "nrt<]*?)](.*?)[/url]#is";
    
var $patterns_url4 "#(^|[n ])([w]+?://[^ "nrt<]*)#is";
    
var $patterns_url5 "#(^|[n ])((www|ftp).[^ "tnr<]*)#is";
    
var $patterns_email "#[email]([a-z0-9&-_.]+?@[w-]+.([w-.]+.)?[w]+)[/email]#si";
    var 
$patterns_email1 "#(^|[n ])([a-z0-9&-_.]+?)@([w-]+.([w-.]+.)*[w]+)#i";
    var 
$patterns_code "#[code](.*?)[/code]#si";
    var 
$patterns_code1 "#[/code]#si";
    var 
$patterns_code2 "#[code]#si";
    var 
$patterns_quote "#[quote](.*?)[/quote]#si";
    var 
$patterns_quote1 "#[quote="(.*?)"](.*?)[/quote]#si";
    var 
$patterns_quote2 "#/[quote="(.*?)"]/#si";
    var 
$patterns_quote3 "#[/quote]#si";
    var 
$patterns_quote4 "#[quote]#si";
    var 
$patterns_color "#[color=(#[0-9A-F]{6}|[a-z]+)](.*?)[/color]#si";
    var 
$patterns_color1 "#[color=(#[0-9A-F]{6}|[a-z]+)]#si";
    var 
$patterns_color2 "#[/color]#si";
    var 
$patterns_size "#[size=([1-2]?[0-9])](.*?)[/size]#si";
    var 
$patterns_size1 "#[size=([1-2]?[0-9])]#si";
    var 
$patterns_size2 "#[/size]#si";
    
  function 
guestbook()
  {
    global 
$db;
    
    
$sql "SELECT * FROM " GUESTBOOK_CONFIG_TABLE;
    if( !(
$result $db->sql_query($sql)) )
      {
        
message_die(CRITICAL_ERROR"Could not query config information from guestbook"""__LINE____FILE__$sql);
      }

     while ( 
$row $db->sql_fetchrow($result) )
      {
        
$this->guestbook_config[$row['config_name']] = $row['config_value'];
      }
      
      
$db->sql_freeresult($result);
  }
  
  function 
guest_config()
  {
     return 
$this->guestbook_config;
  }
  
  function 
guest_counter()
  {
     
$this->guestbook_config['contatore'] = intval($this->guestbook_config['contatore']) + 1;
     
$this->update_guestbook('contatore'$this->guestbook_config['contatore']);
  }

function 
globalRegCheck$string ) {
 
  if ( 
preg_match($this->patterns_img$string)
   || 
preg_match($this->patterns_url$string)
   || 
preg_match($this->patterns_url1$string)
   || 
preg_match($this->patterns_url2$string)
   || 
preg_match($this->patterns_url3$string)
   || 
preg_match($this->patterns_url4$string)
   || 
preg_match($this->patterns_url5$string)
   || 
preg_match($this->patterns_email$string)
   || 
preg_match($this->patterns_email1$string)
   || 
preg_match($this->patterns_code$string)
   || 
preg_match($this->patterns_code1$string)
   || 
preg_match($this->patterns_code2$string)
   || 
preg_match($this->patterns_quote$string)
   || 
preg_match($this->patterns_quote1$string)
   || 
preg_match($this->patterns_quote2$string)
   || 
preg_match($this->patterns_quote3$string)
   || 
preg_match($this->patterns_quote4$string)
   || 
preg_match($this->patterns_color$string)
   || 
preg_match($this->patterns_color1$string)
   || 
preg_match($this->patterns_color2$string)
   || 
preg_match($this->patterns_size$string)
   || 
preg_match($this->patterns_size1$string
   || 
preg_match($this->patterns_size2$string)  
   )
   {
     return 
true;
   }
  else {
          return 
false;
        }
  }

function 
word_wrap$text$size$force true$tag '' ) {
     if( 
$this->guestbook_config['word_wrap'] ) {
        
$withN explode("nr"trim($text));
        
$globalWrap "";
        for( 
$a=0$za=count($withN), $a $za$a++ ) {
            
$ex explode(" "trim($withN[$a]));
            for( 
$b=0$zb count($ex), $b $zb$b++ ) {
                if(
$this->globalRegCheck($ex[$b]) ) {
                    
$globalWrap .= $ex[$b];
                }
                else {
                    
$provvisory "";
                    
$where 0;
                    if(
$force == false) {
                        if( 
strlen($ex[$b]) > $size && !is_numeric($ex[$b]) ) {

                            if(
$tag !='') {
                               for(
$c=0$zc = (ceil(strlen($ex[$b])/$size)), $c $zc$c++) {
                                
$provvisory .= substr($ex[$b],$where,$size).$tag;
                                
$where += $size;
                               }
                            } else {
                              
$provvisory substr($ex[$b],$where,$size);
                            }
                        }
                        else {
                            
$provvisory $ex[$b];
                        }
                    }
                    else {
                        if( 
strlen($ex[$b])>$size ) {
                            if(
$tag !='') {
                               for(
$c=0$zc = (ceil(strlen($ex[$b])/$size)), $c $zc$c++) {
                                
$provvisory .= substr($ex[$b],$where,$size).$tag;
                                
$where += $size;
                               }
                            } else {
                              
$provvisory substr($ex[$b],$where,$size);
                            }
                        }
                        else {
                            
$provvisory $ex[$b];
                        }
                    }
                    
$globalWrap .= $provvisory;
                }
                
$globalWrap .= " ";
            }
            
$globalWrap .= "nr";
        }
        return 
$globalWrap;
      }
       else {
             return 
$text;
           }
    }

function 
check_post_error ($message)
{
  global 
$lang;

   if ( 
$this->guestbook_config['no_only_quote'] )
        {
         
$text preg_replace('/([quote)(.*)([/quote])/si'''$message);
         if (
trim($text) == '')  return array('error' => true'error_msg' => $lang['Empty_message']);
        }
   if ( 
$this->guestbook_config['no_only_smilies'] )
     {
       
$text =  smilies_pass($message);
       
$text preg_replace("/(<img)(.*?)(>)/si"""$text);
       if (
$this->check_bbcode_error($text) == '')  return array('error' => true'error_msg' => $lang['Empty_message']);
     }

   if (
$this->check_bbcode_error($message) == '')
     {
        return array(
'error' => true'error_msg' => $lang['Empty_message']);
     }
     
    return array(
'error' => false'error_msg' => '');
}

function 
check_bbcode_error ($text)
{
    if (
trim($text) == '') return $text;
    
  
$text preg_replace ($this->patterns_b'\1'$text);
  
$text = ($text != '') ? trim(preg_replace ($this->patterns_i'\1'$text)) : $text;
  
$text = ($text != '') ? trim(preg_replace ($this->patterns_u'\1'$text)) : $text;
  
$text = ($text != '') ? trim(preg_replace ($this->patterns_img'\1'$text)) : $text;
  
$text = ($text != '') ? trim(preg_replace ($this->patterns_url0'\1'$text)) : $text;
  
$text = ($text != '') ? trim(preg_replace ($this->patterns_url'\1'$text)) : $text;
  
$text = ($text != '') ? trim(preg_replace ($this->patterns_url1'\1'$text)) : $text;
  
$text = ($text != '') ? trim(preg_replace ($this->patterns_url2'\2'$text)) : $text;
  
$text = ($text != '') ? trim(preg_replace ($this->patterns_url3'\2'$text)) : $text;
  
$text = ($text != '') ? trim(preg_replace ($this->patterns_email'\1'$text)) : $text;
  
$text = ($text != '') ? trim(preg_replace ($this->patterns_email1'\2'$text)) : $text;
  
$text = ($text != '') ? trim(preg_replace ($this->patterns_code'\1'$text)) : $text;
  
$text = ($text != '') ? trim(preg_replace ($this->patterns_quote'\1'$text)) : $text;
  
$text = ($text != '') ? trim(preg_replace ($this->patterns_quote1'\2'$text)) : $text;
  
$text = ($text != '') ? trim(preg_replace ($this->patterns_color'\2'$text)) : $text;
  
$text = ($text != '') ? trim(preg_replace ($this->patterns_size'\2'$text)) : $text;

   return 
$text;
}

function 
update_guestbook($config_name$config_value)
  {
    global 
$db;
    
    
$sql "UPDATE " GUESTBOOK_CONFIG_TABLE " SET
            config_value = '" 
str_replace("'""''"$config_value) . "'
            WHERE config_name = '
$config_name'";
            
            if( !
$db->sql_query($sql) )
            {
                
message_die(GENERAL_ERROR"Failed to update general configuration for GUESTBOOK"""__LINE____FILE__$sql);
            }

     
$this->guestbook_config[$config_name] = $config_value;
  }
  
 function 
ed($t) {
      
$password $this->guestbook_config['password'];
      
$password date("Ymd") - $password;
      
$r md5($password);
      
$c=0;
      
$v "";
      for (
$i=0;$i<strlen($t);$i++) {
         if (
$c==strlen($r)) $c=0;
         
$v.= substr($t,$i,1) ^ substr($r,$c,1);
         
$c++;
      }
      return 
$v;
   }
   
   function 
encrypt($t){
      
srand((double)microtime()*1000000);
      
$r md5(rand(0,32000));
      
$c=0;
      
$v "";
      for (
$i=0;$i<strlen($t);$i++){
         if (
$c==strlen($r)) $c=0;
         
$v.= substr($r,$c,1) .
             (
substr($t,$i,1) ^ substr($r,$c,1));
         
$c++;
      }
      return 
base64_encode($this->ed($v));
   }
   
   function 
decrypt($t) {
      
$t $this->ed(base64_decode($t));
      
$v "";
      for (
$i=0;$i<strlen($t);$i++){
         
$md5 substr($t,$i,1);
         
$i++;
         
$v.= (substr($t,$i,1) ^ $md5);
      }
      return 
$v;
   }
}

?>
Онлайн: 1
Реклама