Меню
Статистика
Онлайн всього: 1 Гостей: 1 Користувачів: 0 Теги
|
Офісні меблі// WR-Gallery v 1.5 // 14.06.10 г. // Miha-ingener@yandex.ru error_reporting (E_ALL); include "config.php"; $valid_types=array("gif","jpg","png","jpeg"); // допустимые расширения $shapka=" "; $back="',$text);
$text=preg_replace("/\n/",' ',$text);
$text=str_replace("\n",' Защитный код: | ';
for ($i=0; $i<$max_key; $i++) {
$snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$rand_key+$dopkod);
echo "\n";
$xkey=$xkey.$snum[$i];}
$xkey=md5("$xkey+$rand_key+$dopkod"); //число + ключ из config.php + код меняющийся кажые 24 часа
print" (введите число, указанное на картинке)
";
return; }
if (isset($_GET['event'])) {
if ($_GET['event']=="formacoment") { // Добавление комментария к ФОТО - форма
$rubrika="Добавление комментария к фото";
if (isset($_GET['msnum'])) $msnum=replacer($_GET['msnum']); else $msnum="";
if (strlen($msnum)>10) exit("Ошибка - отсутствует UID-фото. Вы или хакер или ошибка скрипта!");
if (is_file("$datadir/$msnum.dat")) { $linesn = file("$datadir/$msnum.dat"); $in=count($linesn); if ($in > 15) {print "$back более 15 комментариев к объявления добавлять запещено."; exit;}}
if (is_file("$gal_skin/top.html")) include "$gal_skin/top.html";
print" | "; } if ($_GET['event']=="addcoment") { // ДОБАВЛЕНИЕ КОММЕНТАРИЯ К ФОТО - сохранение if (isset($_GET['msnum'])) $msnum=replacer($_GET['msnum']); else $msnum=""; if (strlen($msnum)>10) exit("Ошибка - отсутствует UID-фото. Вы или хакер или ошибка скрипта!"); if (is_file("$datadir/$msnum.dat")) { $linesn = file("$datadir/$msnum.dat"); $in=count($linesn); if ($in > 15) {print "$back более 15 комментариев к объявления добавлять запещено. $back. Попытка взлома. Хакерам здесь не место.");} if(isset($_GET['event'])) { // Добавление комментария - ШАГ 2 ЗАПИСЬ данных //--А-Н-Т-И-С-П-А-М--проверка кода-- if (isset($_POST['name'])) {$name=$_POST['name'];} else {$name="";} if ($name==="" || strlen($name)>$maxname) {print "$back Ваше имя пустое, или превышает $maxname символов!"; exit;} $name=str_replace("|","I",$name); if (isset($_POST['type'])) {$type=$_POST['type'];} else {$type="0";} $type=str_replace("|","I",$type); if (strlen($type)> 2) {print" Ошибка скрипта - \$ type=$type."; exit;} $msg=$_POST['msg']; if ($msg == "" || strlen($msg) > $maxmsg) {print "$back Ваш комментарий пуст или превышает $maxmsg символов."; exit;} $msg=str_replace("|","I",$msg); if (isset($_POST['email'])) {$email=$_POST['email'];} else {$email="";} $email=str_replace("|","I",$email); $day=mktime(); $text="$name|$email|$msg|$day|$type|"; $text=str_replace( " " ,' ' ,$text); $text=str_replace( "&" ,'&' ,$text); $text=str_replace( "" ,'-->' ,$text); $text=preg_replace( "/"; exit; } } // if ($_GET['event']=="addcoment") { // ДОБАВЛЕНИЕ КОММЕНТАРИЯ К ФОТО - сохранение if ($_GET['event']=="add") { // Добавление ФОТО if (isset ($_POST['name']) & isset ($_POST['msg']) & isset ($_POST['email'])) {$name=$_POST['name']; $msg=$_POST['msg']; $email=$_POST['email'];} else {exit;} $name=trim($name); $msg=trim($msg); $email=trim($email); // Вырезаем ПРОБЕЛьные символы $name=str_replace("|","I",$name); $email=str_replace("|","I",$email); $msg=str_replace("|","I",$msg); // чтоб БД не "уронили"! if ($name==="" || strlen($name)>$maxname) {print "$shapka $back ваше имя или пустое, или превышает $maxname символов!"; exit;} if ($msg==="" || strlen($msg)>$maxmsg) {print "$shapka $back ваше сообщение или пустое или превышает $maxmsg символов."; exit;} if (!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $email) and strlen($email)>30 and $email!=="") {print "$shapka $back и введите корректный E-mail адрес!"; exit;} $fotoname = $_FILES['file']['name']; // определяем имя файла $fotosize=$_FILES['file']['size']; // Запоминаем размер файла // проверяем расширение файла $ext = strtolower(substr($fotoname, 1 + strrpos($fotoname, "."))); if (!in_array($ext, $valid_types)) {echo 'ФАЙЛ НЕ загружен. Возможные причины:- разрешена загрузка только файлов с такими расширениями: gif, jpg, jpeg, png - Вы пытаетесь загрузить не графический файл; - неверно введён адрес или выбран файл; '; exit;} // ЗАЩИТЫ от ВЗЛОМА // 1. считаем кол-во точек в выражении - если большей одной - СВОБОДЕН! $findtchka=substr_count($fotoname, "."); if ($findtchka>1) {echo "ТОЧКА встречается в имени файла $findtchka раз(а). Это ЗАПРЕЩЕНО! \r\n";} // 2. если в имени есть .php, .html, .htm - свободен! $bago="Извините. В имени ФАйла запрещено использовать .php, .html, .htm"; if (preg_match("/\.php/i",$fotoname)) {echo "Вхождение \".php\" найдено. $bago"; exit;} if (preg_match("/\.html/i",$fotoname)) {echo "Вхождение \".html\" найдено. $bago"; exit;} if (preg_match("/\.htm/i",$fotoname)) {echo "Вхождение \".htm\" найдено. $bago"; exit;} // 3. защищаем от РУССКИХ букв в имени файла и проверяем расширение файла if (!preg_match("/^[a-z0-9\.\-_]+\.(jpg|gif|png|)+$/is",$fotoname)) {print "Запрещено использовать РУССКИЕ буквы в имени файла!"; exit;} // 4. Проверяем, может быть файл с таким именем уже есть на сервере if (file_exists("$datadir/$fotoname")) {print "Файл с таким именем уже существует на сервере! Измените имя на другое!"; exit;} // Конец защит по имени файла // 5. Размер фото $fotoksize=round($fotosize/10.24)/100; // размер ЗАГРУЖАЕМОГО ФОТО в Кб. $fotomax=round($max_file_size/10.24)/100; // максимальный размер фото в Кб. if ($fotoksize>$fotomax) {print"Вы превысили допустимый размер фото! Максимально допустимый размер фото: $fotomax Кб. Вы пытаетесь загрузить изображение: $fotoksize Кб!"; exit;} // 6. "Габариты" фото > $maxwidth х $maxheight - ДО свиданья! :-) $size=getimagesize($_FILES['file']['tmp_name']); if ($size[0]>$maxwidth or $size[1]>$maxheight) {print "$size[0] x $size[1] - не допустимые габариты фото. Допустимо лишь $maxwidth х $maxheight px!"; exit;} if ($fotosize>"0" and $fotosize<$max_file_size) { copy($_FILES['file']['tmp_name'], $datadir."/".$fotoname); print " Фото УСПЕШНО загружено: $fotoname (Размер: $fotosize байт)";} else { print "Файл НЕ ЗАГРУЖЕН - ошибка СЕРВЕРА! Обратитесь к администратору!"; exit;} $size=getimagesize("$datadir/$fotoname"); // Проверяем размер фото. Если "габариты" меньше заданный в админке 150 х 120 - то ничего с ним не делаем // блок делает мальное изображение исходной фотки - в качестве превьюшки if ($size[0]>$smwidth or $size[1]>$smheight) { $smallfoto="sm-$fotoname"; require ('tumbmaker.php'); if (img_resize("$datadir/$fotoname", "$datadir/$smallfoto", $smwidth, $smheight)) echo 'Изображение масштабировано успешно.'; else echo 'Ошибка МАСШАБИРОВАНИЯ фото! Поблемы с GD-библиотекой! Обратитесь к Администратору'; } else {$smallfoto="$fotoname";} // Генерируем рандомный КЛЮЧ - msnum-фото do $key=mt_rand(10000,99999); while (file_exists("data/$key.txt")); // Запись данных: собщение|имя|емайл|дата|время|фото_малое|фото_большое|размер_Кб|ширина|высота|UID|Рейтинг|Проголосовало| $text="$msg|$name|$email|$date|$time|$smallfoto|$fotoname|$fotoksize|$size[0]|$size[1]|$key|-1|0|"; $text=replacer($text); $fp=fopen("$datadir/fotobase.dat","a+"); flock ($fp,LOCK_EX); fputs($fp,"$text\r\n"); flock ($fp,LOCK_UN); fclose($fp); @chmod("$datadir/fotobase.dat", 0644); if ($sendmail =="1") { // отправка СООБЩЕНИЯ админу и на мыло $headers=null; $headers.="Content-Type: text/plain; charset=windows-1251\r\n"; $headers.="From: ".$name." <".$email.">\r\n"; $headers.="X-Mailer: PHP/".phpversion()."\r\n"; $host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"]; $glurl="http://$host$self"; $allmsg = $glname.chr(13).chr(10).'Загружено новое изображение: '.$glurl.chr(13).chr(10).'Имя: '.$name.chr(13).chr(10).'E-mail: '.$email.chr(13).chr(10).'Сообщение: '.$msg.chr(13).chr(10); mail("$adminemail", "$glname (сообщение)", $allmsg, $headers); } // закачиваем прикреплённый файл на сервер if (isset($_POST['file'])) { if (!copy($file, $file.'.bak')) {print ("при копировании файла $file произошла ошибка... \n");}} print "$shapka "; exit; } if ($_GET['event']=="showimg") { // показываем КРУПНОЕ ИЗОБРАЖЕНИЕ if (!isset($_GET['msnum'])) {exit("$back. Попытка взлома. Хакерам здесь не место.");} $msnum=$_GET['msnum']; $msnum=trim($msnum); if (!ctype_digit($msnum) or strlen($msnum)!=5) {exit("$back. Попытка взлома. Хакерам здесь не место.");} $lines=file("$datadir/fotobase.dat"); $maxi=count($lines); $i="0"; do {$dt=explode("|", $lines[$i]); $i++; $number=$i; if ($dt[10]===$msnum) { print "$shapka
|