<?
Error_Reporting(E_ALL & ~E_NOTICE);
header("Content-type: text/html; charset=utf-8");
header("Cache-Control: no-cache");
include'ini.php';
$MAX_FILE_SIZE = 600*1024; // максимальный размер закачиваемого файла
// допустимые mime типы для закачки
$load_type = array(
"1" => "image/png",
"2" => "image/gif",
"3" => "image/jpeg",
"4" => "image/jpeg",
"5" => "image/bmp"
);
$MAX_i = 5;
// расширение загружаемого файла
$load_ext = array(
"1" => "png",
"2" => "gif",
"3" => "jpeg",
"4" => "jpg",
"5" => "bmp"
);
// Текущиее расширение (у загружённого файла)
$file_ext = "";
// если true то закаченный файл имеет поддерживаемый mime тип
$mime_ok = false;
// если true то закаченный файл имеет поддерживаемОе расширение
$ext_ok = false;
// текст при ошибке
$error = "<br><b><font color=red>Ошибка!</font></b><br>";
// текст предупреждения
$warning = "<b><font color=red>Внимание!</font></b>";
// имя файла, т.к. переименовывается
$new_fname = "";
// постфикс при переименовании
$f_postfix = "_";
// текущая дата
$data_small = date("j.m");
$data = date("j.m.y (H:i)");
function trans($string)
{
$array = explode(" ",$string) ;
foreach ($array as $VAL)
{
$VAL = str_replace("а","a",$VAL); // строчные
$VAL = str_replace("б","b",$VAL);
$VAL = str_replace("в","v",$VAL);
$VAL = str_replace("г","g",$VAL);
$VAL = str_replace("д","d",$VAL);
$VAL = str_replace("е","e",$VAL);
$VAL = str_replace("ё","yo",$VAL);
$VAL = str_replace("ж","zh",$VAL);
$VAL = str_replace("з","z",$VAL);
$VAL = str_replace("и","i",$VAL);
$VAL = str_replace("й","j",$VAL);
$VAL = str_replace("к","k",$VAL);
$VAL = str_replace("л","l",$VAL);
$VAL = str_replace("м","m",$VAL);
$VAL = str_replace("н","n",$VAL);
$VAL = str_replace("о","o",$VAL);
$VAL = str_replace("п","p",$VAL);
$VAL = str_replace("р","r",$VAL);
$VAL = str_replace("с","c",$VAL);
$VAL = str_replace("т","t",$VAL);
$VAL = str_replace("у","u",$VAL);
$VAL = str_replace("ф","f",$VAL);
$VAL = str_replace("х","h",$VAL);
$VAL = str_replace("ц","c",$VAL);
$VAL = str_replace("ч","ch",$VAL);
$VAL = str_replace("ш","sh",$VAL);
$VAL = str_replace("щ","sch",$VAL);
$VAL = str_replace("ь","",$VAL); // т.к. ' нельзя в wml
$VAL = str_replace("ы","y",$VAL);
$VAL = str_replace("ъ","",$VAL); // т.к. ' нельзя в wml
$VAL = str_replace("э","e",$VAL);
$VAL = str_replace("ю","yu",$VAL);
$VAL = str_replace("я","ya",$VAL);
$VAL = str_replace("А","A",$VAL); // заглавные
$VAL = str_replace("Б","B",$VAL);
$VAL = str_replace("В","V",$VAL);
$VAL = str_replace("Г","G",$VAL);
$VAL = str_replace("Д","D",$VAL);
$VAL = str_replace("Е","E",$VAL);
$VAL = str_replace("Ё","YO",$VAL);
$VAL = str_replace("Ж","ZH",$VAL);
$VAL = str_replace("З","Z",$VAL);
$VAL = str_replace("И","I",$VAL);
$VAL = str_replace("Й","J",$VAL);
$VAL = str_replace("К","K",$VAL);
$VAL = str_replace("Л","L",$VAL);
$VAL = str_replace("М","M",$VAL);
$VAL = str_replace("Н","N",$VAL);
$VAL = str_replace("О","O",$VAL);
$VAL = str_replace("П","P",$VAL);
$VAL = str_replace("Р","R",$VAL);
$VAL = str_replace("С","C",$VAL);
$VAL = str_replace("Т","T",$VAL);
$VAL = str_replace("У","U",$VAL);
$VAL = str_replace("Ф","F",$VAL);
$VAL = str_replace("Х","H",$VAL);
$VAL = str_replace("Ц","C",$VAL);
$VAL = str_replace("Ч","CH",$VAL);
$VAL = str_replace("Ш","SH",$VAL);
$VAL = str_replace("Щ","SCH",$VAL);
$VAL = str_replace("Ь","",$VAL); // т.к. ' нельзя в wml
$VAL = str_replace("Ы","Y",$VAL);
$VAL = str_replace("Ъ","",$VAL); // т.к. ' нельзя в wml
$VAL = str_replace("Э","E",$VAL);
$VAL = str_replace("Ю","YU",$VAL);
$VAL = str_replace("Я","YA",$VAL);
//$VAL = str_replace("©","©",$VAL);
//$VAL = str_replace("$","",$VAL);
//$VAL = str_replace("~","",$VAL);
//$VAL = str_replace("&","&",$VAL);
//$VAL = str_replace("$","",$VAL);
$send_VAR .= $VAL." ";
}
$send_VAR=substr($send_VAR, 0, -1);
return $send_VAR;
}
echo "<HTML><HEAD>".
"<TITLE>Фотки</TITLE>".
"<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">".
"<meta http-equiv=\"pragma\" content=\"no-cache\">".
"</HEAD><BODY TEXT=\"white\" BGCOLOR=\"black\"><BODY>";
echo "<h3 align=\"center\">EuroWaP_Chat_Фотки</h3>";
if(empty($_FILES['UserFile']['tmp_name'])) {
$mfs=round($MAX_FILE_SIZE/1024);
print '<b>Здесь Вы можете закачать свою фотку для чатовского ника, поддерживаемые форматы: png,jpg,gif,bmp, максимальный размер файла '.$mfs.'kb. Если у вас уже была закачана фотка ранее, то существующая фотка будет удалена!</b><br/>';
echo"<form action=\"$SCRIPT_NAME\" method=post enctype=multipart/form-data>".
"Выберите файл: <input type=file name=UserFile><br><br/>".
"Ваше имя в чате: <input name=\"login\" type=\"text\"><br><br/>".
"Ваш пароль в чате: <input name=\"p\" type=\"text\"><br><br/>".
"<input class=submit type=submit value=Закачать!>".
"<br><hr><br>".
"</form>";
echo "<p align=\"center\"><small><b>Mail2 <a href=\"adm@chatko.ru\">Administrator</a></b>";
}
//include"includes/utf.php";
if(is_uploaded_file($_FILES['UserFile']['tmp_name']))
{
$login=addslashes(htmlspecialchars($login));
list($id,$pass)=mysql_fetch_array(mysql_query("select id,pass from users where login='".$login."';"));
if($pass!=$p)die("Неверный пароль!");
echo "Сервер - OK<br>";
// проверка на максимальный размер
if ($_FILES['UserFile']['size'] <= $MAX_FILE_SIZE) {
echo "Размер файла ".$_FILES['UserFile']['size']." <= ".$MAX_FILE_SIZE." - OK<br>";
// проверка имени файла и автоматическое переименование если существует а также удаление лишних символов и русских букв
$new_fname = $_FILES['UserFile']['name'];
// bad symbols
$new_fname = str_replace("$","",$new_fname);
$new_fname = str_replace("&","And",$new_fname);
$new_fname = str_replace("%20","_",$new_fname);
$new_fname = str_replace(" ","_",$new_fname);
$new_fname = str_replace(";","",$new_fname);
$new_fname = str_replace("%","",$new_fname);
$new_fname = str_replace("@","",$new_fname);
$new_fname = str_replace("^","",$new_fname);
$new_fname = str_replace("'","",$new_fname);
$new_fname = str_replace("~","",$new_fname);
$new_fname = str_replace("`","",$new_fname);
$new_fname = trans($new_fname); // translate
if(file_exists('foto/'.$new_fname)) {
$new_fname_pred = $new_fname;
$i = 0;
$path_parts = pathinfo($new_fname);
// удаляем расширение файла
$new_fname = eregi_replace(".".$path_parts["extension"], "", $new_fname);
// формируем новое имя файла (с постфиксом)
$new_fname = $new_fname.$f_postfix.$i.".".$path_parts["extension"];
while (file_exists('foto/'.$new_fname)){
$path_parts = pathinfo($new_fname);
// удаляем расширение файла
$new_fname = eregi_replace($f_postfix.$i.".".$path_parts["extension"], "", $new_fname);
$i++;
// формируем новое имя файла (с постфиксом)
$new_fname = $new_fname.$f_postfix.$i.".".$path_parts["extension"];
}
echo $warning." Файл переименован в \"".$new_fname."\", т.к. файл с именем \"".$new_fname_pred."\" уже существует! - OK<br>";
} // end проверка
// Проверяем верно ли расширение
$path_parts = pathinfo($new_fname);
for ($i = 1; $i <= $MAX_i; $i++) {
if (strtolower($path_parts["extension"]) == $load_ext[$i]) {
$ext_ok = true;
}
}
//расширение совпадает
if ($ext_ok == true) {
echo "Mime тип ".$_FILES['UserFile']['type']." - OK<br>";
// проверим подходит ли для этого mime типа расширение
//if (eregi($file_ext, $new_fname)) {
echo "Расширение файла ".$file_ext." - OK<br>";
//если всё ок - то перемещаем загруженный файл к себе///////////////
if (move_uploaded_file($_FILES['UserFile']['tmp_name'], 'foto/'.$new_fname)) {
list($old_foto)=mysql_fetch_array(mysql_query("select foto from users where id='".$id."';"));
@unlink($old_foto);
mysql_query("update users set foto='foto/".$new_fname."' where id='".$id."';");
//меняем права доступа к файлу
chmod('foto/'.$new_fname, 0644); // octal; correct value of mode
echo "<p align=\"center\"><font color=red>Файл загружен успешно под именем <b>".$new_fname."</b></font>.<br>".
"<br>".
"<a href=?>Загрузить другую фотку!</a><br>";
} else echo "<b>Ошибка загрузки файла!</b><br>"; //////////////////////////
}else echo $error."Файл \"".$new_fname."\" имеет неподдерживаемый тип !<br>";
} else echo $error."Размер загружаемого файла \"".$_FILES['UserFile']['name']."\" больше ".round($MAX_FILE_SIZE/1024,2)." кб !";
// end html file
echo "<hr><p align=\"center\">".
"<a href=?>На страницу загрузки</a>".
"</BODY>".
"</HTML>";
}
?>