"; // Функция сортировки function prcmp ($a, $b) {if ($a==$b) return 0; if ($a<$b) return -1; return 1;} if (isset($_GET['event'])) { 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-фото $z=1; do {$key=mt_rand(10000,99999); if (strlen($key)==5) {$z++;} } while ($z<1); // Запись данных: собщение|имя|емайл|дата|время|фото_малое|фото_большое|размер_Кб|ширина|высота|UID|Рейтинг|Проголосовало| $text="$msg|$name|$email|$date|$time|$smallfoto|$fotoname|$fotoksize|$size[0]|$size[1]|$key|-1|0|"; $text=str_replace( " " ,' ' ,$text); $text=str_replace( "&" ,'&' ,$text); $text=str_replace( "" ,'-->' ,$text); $text=preg_replace( "/


Спасибо $name, Ваше фото успешно добавлено. Через несколько секунд Вы будете перемещены на главную страницу фотогалереи. Если этого не происходит, то для возврата нажмите здесь



"; 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($datafile); $maxi=count($lines); $i="0"; do {$dt=explode("|", $lines[$i]); $i++; $number=$i; if ($dt[10]===$msnum) { print "
$dt[0]
"; $ok="1"; print"
"; if ($number<$maxi) {$next=$number; $dtlast=explode("|",$lines[$next]); print "Предыдущее фото";} print "Вернуться на главную"; if ($number>1) {$last=$number-2; $dtnext=explode("|",$lines[$last]); print "Следующее фото";} print "
"; } } while($i < $maxi); if (!isset($ok)) {exit("$back. Данное изображение отсутствует в фотогалерее. Возможно, его удалил админ!");} exit;} //------------------------------------------------- if ($_GET['event']=="addform") { // Выводим ФОРМУ ДЛЯ ЗАГРУЗКИ ФОТКИ include "images/top.html"; $fotomax=round($max_file_size/10.24)/100; // максимальный размер фото в Кб. print "$shapka

Добавление ФОТО
Имя
Е-майл
Прикрепить фото
* Максимально разрешённый размер фото: $fotomax Кб.
Подпись к фото



"; include "images/bottom.html"; } if ($_GET['event']=="coment") { // просмотр КОММЕНТАРИЕВ к фото if (isset($_GET['msnum'])) {$msnum=$_GET['msnum'];} else {exit("$back. Попытка взлома. Хакерам здесь не место.");} if (!ctype_digit($msnum) or strlen($msnum)<5) {exit("$back. Попытка взлома. Хакерам здесь не место.");} $lines=file($datafile); $maxi=count($lines); $i="0"; do {$dt=explode("|", $lines[$i]); $i++; if ($dt[10]===$msnum) { print"
Фото № $i
$dt[0]
$dt[0]
Разрешение: $dt[8] х $dt[9]
Размер: $dt[7] Кб.
"; } } while($i < $maxi); if (is_file("$datadir/$msnum.dat")) { $rlines=file("$datadir/$msnum.dat"); $ri=count($rlines); $bals=0; $all=0; print"
"; do {$ri--; $edt=explode("|",$rlines[$ri]); $edt[3]=date("d.m.Y H:i:s",$edt[3]); if ($edt[4]!=0) {$bals=$bals+$edt[4]; $all++;} else {$edt[4]="-";} print""; } while($ri>0); if ($bals==0) {$itogobals="-";} else {$itogobals=round($bals*10/$all)/10;} print "
Комментарии посетителей:
Имя, Емайл, ДатаТекст комментарияОценка
$edt[0]
$edt[1]
$edt[3]
$edt[2]$edt[4]
Средняя оценка фото: $itogobals / 10
Добавить комментарий

"; }} // $event=="coment" } else { // Типо главной страницы include "images/top.html"; if (isset($_GET['type'])) {$type=$_GET['type']; if (!ctype_digit($type) or strlen($type)>2) {exit("$back. Попытка взлома. Хакерам здесь не место.");}} $lines=file($datafile); $itogo=count($lines); $maxi=$itogo-1; $i=0; if ($maxi>=0) { // БЛОК 1. резервирует БД (додумать что с этим можно делать). // 2. пересчитывает кол-во голосов за фотки. do {$tdt=explode("|",$lines[$i]); $msnum=$tdt[10]; $itogobals="-1"; $all=""; if (is_file("$datadir/$msnum.dat")) { $rlines=file("$datadir/$msnum.dat"); $ri=count($rlines); $bals=0; $all=0; do {$ri--; $edt=explode("|",$rlines[$ri]); if ($edt[4]!=0) {$bals=$bals+$edt[4]; $all++;} } while($ri>0); if ($bals==0) {$itogobals="-1";} else {$itogobals=round($bals*10/$all)/10;} } if ($tdt[11]!=$itogobals or $tdt[12]!=$all) {$yes="yes"; $nlines[$i]="$tdt[0]|$tdt[1]|$tdt[2]|$tdt[3]|$tdt[4]|$tdt[5]|$tdt[6]|$tdt[7]|$tdt[8]|$tdt[9]|$tdt[10]|$itogobals|$all|\r\n";} else {$nlines[$i]=$lines[$i];} $i++; } while($i<=$maxi); if (isset($yes)) { //$fsize1=filesize($datafile); $fsize2=filesize("fototmp.dat"); //if ($fsize1!=$fsize2) { // Если размер файлов одинаков, значит изменений в данных нет! $fp=fopen("fototmp.dat","w"); flock ($fp,LOCK_EX); for ($ii=0;$ii 0); usort($newlines,"prcmp"); $p=$itogo; do {$p--; $dt=explode("|", $newlines[$p]); $lines[$p]="$dt[1]|$dt[2]|$dt[3]|$dt[4]|$dt[5]|$dt[6]|$dt[7]|$dt[8]|$dt[9]|$dt[10]|$dt[11]|$dt[12]|$dt[13]|\r\n"; //print"$lines[$p]
"; } while($p > 0); } // КОНЕЦ блока сортировки if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page="1";} if ($page=="0") {$page="1";} else {$page=abs($page);} $t11=""; $t12=""; $t01=""; $t02=""; $t21=""; $t22=""; $t31=""; $t32=""; $t41=""; $t42=""; $t51=""; $t52=""; if (isset($type)) { if ($type=="1") {$t11=""; $t12="";} if ($type=="2") {$t21=""; $t22="";} if ($type=="3") {$t31=""; $t32="";} if ($type=="4") {$t41=""; $t42="";} if ($type=="5") {$t51=""; $t52="";} } else {$t01=""; $t02="";} print " "; // Выводим qq фото на текущей странице $maxpage=ceil(($maxi+1)/$qq); if ($page>$maxpage) {$page=$maxpage;} if ($msginout=="1") { $fm=$qq*($page-1); if ($fm>$maxi) {$fm=$maxi-$qq;} $lm=$fm+$qq; if ($lm>$maxi) {$lm=$maxi+1;} } else { $fm=$maxi-$qq*($page-1); if ($fm<"0") {$fm=$qq;} $lm=$fm-$qq; if ($lm<"0") {$lm="-1";} } do { $dt = explode("|", $lines[$fm]); $msnum=$dt[10]; if ($msginout=="1") {$fm++;} else {$fm--;} $tp=$fm; $teknum=$maxi-$tp; print" "; $cm=1; // додумать! // ДЕЛИМ ВСЕ РУБРИКИ на столбцы $zz=$maxi-$fm/$colrubperpage; if ((round(($maxi-$fm)/$colrubperpage))==(($maxi-$fm)/$colrubperpage)) {$cm++; print "";} if ($msginout=="1") {$whm=$fm; $whe=$lm;} else {$whm=$lm; $whe=$fm;} } while($whm < $whe); print"
Фото № $teknum
"; if (is_file("$datadir/$msnum.dat")) { $rlines=file("$datadir/$msnum.dat"); $ri=count($rlines); $bals=0; $all=0; print""; do {$ri--; $edt=explode("|",$rlines[$ri]); $edt[3]=date("d.m.Y H:i:s",$edt[3]); if ($edt[4]!=0) {$bals=$bals+$edt[4]; $all++;} else {$edt[4]="-";} } while($ri>0); if ($bals==0) {$itogobals="+";} else {$itogobals=round($bals*10/$all)/10; $itogobals.="";} } else {} print"
$dt[0]
$dt[0]
Разрешение: $dt[8] х $dt[9]
Размер: $dt[7] Кб.
Добавлена:$dt[3]
$dt[4]
"; // выводим СПИСОК СТРАНИЦ ВНИЗУ print "
Страницы:  "; for($i=0; $i<$maxi+1;) {$ip=$i/$qq+1; if ($page==$ip) {print "$ip  ";} else {print "$ip  ";} $i=$i+$qq;} print ""; } else {print"





Нет фото в базе!

Добавьте своё фото по ссылке вверху страницы.




";} $itogofoto=$maxi+1; print"

Всего фото: $itogofoto

Галлерея разработана WR-Gallery © 1.3 и скачана по адресу ЭВ"; include "images/bottom.html"; } print ""; ?>