<?php
// функция маштабирует изображение
function resizeimage($image, $max_width, $max_height) {
preg_match("/\.(\w*)$/", $image, $m);
$act=strtolower($m[1]);
if($act=="jpg") {
$size = GetImageSize($image);
$width = $size[0];
$height = $size[1];
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if ( ($width <= $max_width) && ($height <= $max_height) ) {
$tn_width = $width;
$tn_height = $height;
}
else if (($x_ratio * $height) < $max_height) {
$tn_height = ceil($x_ratio * $height);
$tn_width = $max_width;
}
else {
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
$src = ImageCreateFromJpeg($image);
$dst = ImageCreateTrueColor($tn_width,$tn_height);
ImageCopyResized($dst, $src, 0, 0, 0, 0,
$tn_width,$tn_height,$width,$height);
ImageJpeg ($dst, $image);
ImageDestroy($src);
ImageDestroy($dst);
}
if($act=="gif") {
$size = GetImageSize($image);
$width = $size[0];
$height = $size[1];
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if ( ($width <= $max_width) && ($height <= $max_height) ) {
$tn_width = $width;
$tn_height = $height;
}
else if (($x_ratio * $height) < $max_height) {
$tn_height = ceil($x_ratio * $height);
$tn_width = $max_width;
}
else {
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
$src = ImageCreateFromGif($image);
$dst = ImageCreateTrueColor($tn_width,$tn_height);
ImageCopyResized($dst, $src, 0, 0, 0, 0,
$tn_width,$tn_height,$width,$height);
ImageGif ($dst, $image);
ImageDestroy($src);
ImageDestroy($dst);
}
if($act=="png") {
$size = GetImageSize($image);
$width = $size[0];
$height = $size[1];
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if ( ($width <= $max_width) && ($height <= $max_height) ) {
$tn_width = $width;
$tn_height = $height;
}
else if (($x_ratio * $height) < $max_height) {
$tn_height = ceil($x_ratio * $height);
$tn_width = $max_width;
}
else {
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
$src = ImageCreateFromPng($image);
$dst = ImageCreateTrueColor($tn_width,$tn_height);
ImageCopyResized($dst, $src, 0, 0, 0, 0,
$tn_width,$tn_height,$width,$height);
ImagePng ($dst, $image);
ImageDestroy($src);
ImageDestroy($dst);
}
}
// функция перекодирует из utf-8 в win-1251
function utf8win1251($s){
$out="";$c1="";$byte2=false;
for ($c=0;$c< strlen($s);$c++){
$i=ord($s[$c]);
if ($i<=127) $out.=$s[$c];
if ($byte2){
$new_c2=($c1&3)*64+($i&63);
$new_c1=($c1>>2)&5;
$new_i=$new_c1*256+$new_c2;
if ($new_i==1025) $out_i=168; else
if ($new_i==1105) $out_i=184; else $out_i=$new_i-848;
$out.=chr($out_i);
$byte2=false;}
if (($i>>5)==6) {$c1=$i;$byte2=true;}
}
return $out;
}
// функция удаляет опасные символы
function delhtml($str) {
return mysql_real_escape_string(htmlspecialchars($str, ENT_QUOTES, 'UTF-8'));
}
// Функция выводит набор симводов заданного размера
function randstr($length = 8) {
$ret="";
$a = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
for($i=0; $i<$length; $i++) $ret .= substr($a, rand(0, strlen($a)-1), 1);
return $ret;
}
// функция подставляет смайлы
function insertsmiles($mes) {
global $workdir;
$dir=opendir("smiles");
while ($file=readdir($dir)) {
if (preg_match("/\.gif$/", $file)) {
$s=str_replace(".gif","",$file);
$mes=str_replace(":$s","<img src=\"$workdir/smiles/$file\" alt=\"s\"/>", $mes);
}
}
closedir($dir);
return $mes;
}
function CheckCanGzip(){
if (headers_sent()){
return 0;
}
if (strpos(@$_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== false) return "x-gzip";
if (strpos(@$_SERVER['HTTP_ACCEPT_ENCODING'],'gzip') !== false) return "gzip";
return 0;
}
function GzDocOut($Contents, $level=1){
$ENCODING = CheckCanGzip();
if ($ENCODING){
header("Content-Encoding: $ENCODING");
print "\x1f\x8b\x08\x00\x00\x00\x00\x00";
$Size = strlen($Contents);
$Crc = crc32($Contents);
$Contents = gzcompress($Contents,$level);
$Contents = substr($Contents, 0, strlen($Contents) - 4);
print $Contents;
print pack('V',$Crc);
print pack('V',$Size);
exit;
}else{
print $Contents;
exit;
}
}
function checklocalurl($url) {
$domain=$_SERVER['HTTP_HOST'];
if (preg_match("/^mailto\:.*/i", $url)) {
return false;
}
if (!preg_match("/^http\:\/\/.*/i", $url)) {
return true;
} else {
preg_match("/^http\:\/\/([^\/]*)\//", $url, $m);
if (!isset($m[1])) {return false;}
if ($m[1]==$domain) {return true;} else {return false;}
}
}
function insertsid1($s) {
$sid=session_id();
$url=$s[1];
if ($url=='op:fileselect') {return $s[0];}
if ($sid) {
if (checklocalurl($url)) {
if (strstr($url, '?')) {
$url.="&sid=$sid";
} else {
$url.="?sid=$sid";
}
}
}
$res=str_replace($s[1], $url, $s[0]);
return $res;
}
function insertsid2($s) {
$sid=session_id();
$res=$s[0];
if ($sid) {$res.="\n<input type=\"hidden\" name=\"sid\" value=\"$sid\"/>\n";}
return $res;
}
function insertsid3($s) {
$sid=session_id();
$res=$s[0];
if ($sid) {$res.="\n<postfield name=\"sid\" value=\"$sid\"/>\n";}
return $res;
}
function getbl($usen=true) {
$bl="";
// порядковый номер анкеты
if (isset($_REQUEST['n'])&& $usen) {$bl.="&n=$_REQUEST[n]";}
// пол
if (isset($_REQUEST['s'])) {$bl.="&s=$_REQUEST[s]";}
// возраст
if (isset($_REQUEST['v'])) {$bl.="&v=$_REQUEST[v]";}
// ориентация
if (isset($_REQUEST['so'])) {$bl.="&so=$_REQUEST[so]";}
// город
if (isset($_REQUEST['region'])) {$bl.="&region=$_REQUEST[region]";}
// только online
if (isset($_REQUEST['on'])) {$bl.="&on=1";}
// только с фото
if (isset($_REQUEST['of'])) {$bl.="&of=1";}
return $bl;
}
function getantirep() {
$code=randstr(5);
mysql_query("INSERT INTO zn_antirep VALUES('$code', CURRENT_TIMESTAMP())");
return "<input type=\"hidden\" name=\"repcode\" value=\"$code\"/>";
}
function checkantirep() {
mysql_query("DELETE FROM zn_antirep WHERE lastdate < CURRENT_TIMESTAMP()-INTERVAL 30 MINUTE");
if (isset($_POST['repcode'])) {
$code=delhtml($_POST['repcode']);
} else {
return false;
}
$res=mysql_query("SELECT * FROM zn_antirep WHERE repcode='$code'");
mysql_query("DELETE FROM zn_antirep WHERE repcode='$code'");
if (mysql_num_rows($res)>0) {return true;} else {return false;}
}
function sendactmail($login, $pass, $email, $reg=false) {
global $backlink, $workdir, $adminemail;
$code=randstr(20);
$l="http://$_SERVER[HTTP_HOST]$workdir/?mode=regemail&rlogin=".urlencode($login)."&code=$code";
mysql_query("DELETE FROM zn_actmail WHERE login='$login'");
mysql_query("INSERT INTO zn_actmail VALUES ('$login', '$code')");
$mailmes="";
if ($reg) {
$mailmes.="Привет, $login! Ты успешно зарегистрирован на сайте $backlink\r\n\r\n";
$mailmes.="Твой nick: $login\r\n";
$mailmes.="Пароль: $pass\r\n\r\n";
$mailmes.="Для быстрого входа сделай закладку с таким адресом:\r\n";
$mailmes.="http://$_SERVER[HTTP_HOST]$workdir/?mode=menu&login=$login&pass=$pass\r\n";
} else {
$mailmes.="Привет, $login!\r\n";
}
$mailmes.="Для подтверждения email перейди по ссылке: $l\r\n";
$mailmes.="\r\n\r\nВнимание! Это письмо сгенерировано автоматически. Не нужно отвечать на него!\r\n";
$mailmes=utf8win1251($mailmes);
$headers = 'Content-type: text/plain; charset="windows-1251"' . "\r\n";
$headers .= "From: $backlink <$adminemail>" . "\r\n";
@mail($email, $backlink, $mailmes, $headers);
}
function checkactmail($login, $code) {
$res=mysql_query("SELECT * FROM zn_actmail WHERE login='$login' AND code='$code'");
if (mysql_num_rows($res)!=0) {
mysql_query("UPDATE zn_anket SET emailactive='1' WHERE login='$login'");
return true;
} else {
return false;
}
}
function utftolower($str) {
$str=str_replace("А", "а", $str);
$str=str_replace("Б", "б", $str);
$str=str_replace("В", "в", $str);
$str=str_replace("Г", "г", $str);
$str=str_replace("Д", "д", $str);
$str=str_replace("Е", "е", $str);
$str=str_replace("Ё", "ё", $str);
$str=str_replace("Ж", "ж", $str);
$str=str_replace("З", "з", $str);
$str=str_replace("И", "и", $str);
$str=str_replace("Й", "й", $str);
$str=str_replace("К", "к", $str);
$str=str_replace("Л", "л", $str);
$str=str_replace("М", "м", $str);
$str=str_replace("Н", "н", $str);
$str=str_replace("О", "о", $str);
$str=str_replace("П", "п", $str);
$str=str_replace("Р", "р", $str);
$str=str_replace("С", "с", $str);
$str=str_replace("Т", "т", $str);
$str=str_replace("У", "у", $str);
$str=str_replace("Ф", "ф", $str);
$str=str_replace("Х", "х", $str);
$str=str_replace("Ц", "ц", $str);
$str=str_replace("Ч", "ч", $str);
$str=str_replace("Ш", "ш", $str);
$str=str_replace("Щ", "щ", $str);
$str=str_replace("Ъ", "ъ", $str);
$str=str_replace("Ы", "ы", $str);
$str=str_replace("Ь", "ь", $str);
$str=str_replace("Э", "э", $str);
$str=str_replace("Ю", "ю", $str);
$str=str_replace("Я", "я", $str);
$str=str_replace("A", "a", $str);
$str=str_replace("B", "b", $str);
$str=str_replace("C", "c", $str);
$str=str_replace("D", "d", $str);
$str=str_replace("E", "e", $str);
$str=str_replace("F", "f", $str);
$str=str_replace("G", "g", $str);
$str=str_replace("H", "h", $str);
$str=str_replace("I", "i", $str);
$str=str_replace("J", "j", $str);
$str=str_replace("K", "k", $str);
$str=str_replace("L", "l", $str);
$str=str_replace("M", "m", $str);
$str=str_replace("N", "n", $str);
$str=str_replace("O", "o", $str);
$str=str_replace("P", "p", $str);
$str=str_replace("Q", "q", $str);
$str=str_replace("R", "r", $str);
$str=str_replace("S", "s", $str);
$str=str_replace("T", "t", $str);
$str=str_replace("U", "u", $str);
$str=str_replace("V", "v", $str);
$str=str_replace("W", "w", $str);
$str=str_replace("X", "x", $str);
$str=str_replace("Y", "y", $str);
$str=str_replace("Z", "z", $str);
return $str;
}
function utftoupper($str) {
$str=str_replace("а", "А", $str);
$str=str_replace("б", "Б", $str);
$str=str_replace("в", "В", $str);
$str=str_replace("г", "Г", $str);
$str=str_replace("д", "Д", $str);
$str=str_replace("е", "Е", $str);
$str=str_replace("ё", "Ё", $str);
$str=str_replace("ж", "Ж", $str);
$str=str_replace("з", "З", $str);
$str=str_replace("и", "И", $str);
$str=str_replace("й", "Й", $str);
$str=str_replace("к", "К", $str);
$str=str_replace("л", "Л", $str);
$str=str_replace("м", "М", $str);
$str=str_replace("н", "Н", $str);
$str=str_replace("о", "О", $str);
$str=str_replace("п", "П", $str);
$str=str_replace("р", "Р", $str);
$str=str_replace("с", "С", $str);
$str=str_replace("т", "Т", $str);
$str=str_replace("у", "У", $str);
$str=str_replace("ф", "Ф", $str);
$str=str_replace("х", "Х", $str);
$str=str_replace("ц", "Ц", $str);
$str=str_replace("ч", "Ч", $str);
$str=str_replace("ш", "Ш", $str);
$str=str_replace("щ", "Щ", $str);
$str=str_replace("ъ", "Ъ", $str);
$str=str_replace("ы", "Ы", $str);
$str=str_replace("ь", "Ь", $str);
$str=str_replace("э", "Э", $str);
$str=str_replace("ю", "Ю", $str);
$str=str_replace("я", "Я", $str);
$str=str_replace("a", "A", $str);
$str=str_replace("b", "B", $str);
$str=str_replace("c", "C", $str);
$str=str_replace("d", "D", $str);
$str=str_replace("e", "E", $str);
$str=str_replace("f", "F", $str);
$str=str_replace("g", "G", $str);
$str=str_replace("h", "H", $str);
$str=str_replace("i", "I", $str);
$str=str_replace("j", "J", $str);
$str=str_replace("k", "K", $str);
$str=str_replace("l", "L", $str);
$str=str_replace("m", "M", $str);
$str=str_replace("n", "N", $str);
$str=str_replace("o", "O", $str);
$str=str_replace("p", "P", $str);
$str=str_replace("q", "Q", $str);
$str=str_replace("r", "R", $str);
$str=str_replace("s", "S", $str);
$str=str_replace("t", "T", $str);
$str=str_replace("u", "U", $str);
$str=str_replace("v", "V", $str);
$str=str_replace("w", "W", $str);
$str=str_replace("x", "X", $str);
$str=str_replace("y", "Y", $str);
$str=str_replace("z", "Z", $str);
return $str;
}
function likechars($str) {
$str=trim(utftolower($str));
for ($i=10; $i>1; $i--) {
$p="";
for ($k=0; $k<$i; $k++) {$p.=" ";}
$str=str_replace($p, " ", $str);
}
$str=str_replace("а", "a", $str);
$str=str_replace("в", "b", $str);
$str=str_replace("е", "e", $str);
$str=str_replace("ё", "e", $str);
$str=str_replace("з", "3", $str);
$str=str_replace("к", "k", $str);
$str=str_replace("м", "m", $str);
$str=str_replace("н", "h", $str);
$str=str_replace("о", "o", $str);
$str=str_replace("р", "p", $str);
$str=str_replace("с", "c", $str);
$str=str_replace("т", "t", $str);
$str=str_replace("у", "y", $str);
$str=str_replace("х", "x", $str);
$str=str_replace("ч", "4", $str);
return $str;
}
function rustranslit($text) {
$l=array(
'а'=>'a',
'б'=>'b',
'в'=>'v',
'г'=>'g',
'д'=>'d',
'е'=>'e',
'ё'=>'yo',
'ж'=>'zh',
'з'=>'z',
'и'=>'i',
'й'=>'j',
'к'=>'k',
'л'=>'l',
'м'=>'m',
'н'=>'n',
'о'=>'o',
'п'=>'p',
'р'=>'r',
'с'=>'s',
'т'=>'t',
'у'=>'u',
'ф'=>'f',
'х'=>'h',
'ц'=>'c',
'ч'=>'ch',
'ш'=>'sh',
'щ'=>'sch',
'ъ'=>"''",
'ы'=>'y',
'ь'=>"'",
'э'=>'ye',
'ю'=>'yu',
'я'=>'ya',
);
$res="";
for ($i=0; $i<iconv_strlen($text, 'UTF-8'); $i++) {
$c=iconv_substr($text, $i, 1, 'UTF-8');
if (isset($l[$c])) {
$c=$l[$c];
} elseif (isset($l[utftolower($c)])) {
$c=utftoupper($l[utftolower($c)]);
}
if ((ord($c)<32) or (ord($c)>126)) {
$c=' ';
}
$res.=$c;
}
return $res;
}
?>