',$text);
$text=preg_replace("/\n/",'
',$text);
$text=preg_replace("/\\\$/",'$',$text);
$text=preg_replace("/\r/",'',$text);
$text=preg_replace("/\\\/",'\',$text);
// если magic_quotes включена - чистим везде СЛЭШи в этих случаях: одиночные (') и двойные кавычки ("), обратный слеш (\)
if (get_magic_quotes_gpc()) { $text=str_replace("\"",'"',$text); $text=str_replace("\'",'\'',$text); $text=str_replace("\\",'\',$text); }
$text=str_replace("\r\n","
",$text);
$text=str_replace("\n\n",'
',$text);
$text=str_replace("\n",'
',$text);
$text=str_replace("\t",'',$text);
$text=str_replace("\r",'',$text);
$text=str_replace(' ',' ',$text);
return $text; }
function nospam() { global $max_key,$rand_key; // Функция АНТИСПАМ
if (array_key_exists("image", $_REQUEST)) { $num=replacer($_REQUEST["image"]);
for ($i=0; $i<10; $i++) {if (md5("$i+$rand_key")==$num) {imgwr($st,$i); die();}} }
$xkey=""; mt_srand(time()+(double)microtime()*1000000);
$dopkod=mktime(0,0,0,date("m"),date("d"),date("Y")); // доп.код: меняется каждые 24 часа
$stime=md5("$dopkod+$rand_key");// доп.код
echo'
"; } 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
";
if ($number<$maxi) {$next=$number; $dtlast=explode("|",$lines[$next]); print "![]() | ![]() | ";
if ($number>1) {$last=$number-2; $dtnext=explode("|",$lines[$last]); print "![]() |