182 lines
8.9 KiB
PHP
Executable File
182 lines
8.9 KiB
PHP
Executable File
<?php
|
||
|
||
/*
|
||
foreach($arr as $key => $value)
|
||
{
|
||
echo "$key = $value <br />";
|
||
}
|
||
|
||
*/
|
||
|
||
switch( @$_POST['act'] ) {
|
||
|
||
/* 05.05.2021 Загрузка фотографий */
|
||
case 'foto_upload':
|
||
if ( $_FILES['file']['tmp_name'] ){
|
||
if ( preg_match( '/[.](jpg)|(jpeg)|(JPG)|(JPEG)$/', $_FILES['file']['name'] ) ){
|
||
/* 06.05.2021 вычисляем контрольную сумму чтобы дважды не загружать одно и то же */
|
||
unset($id);
|
||
$md5['md5'] = md5_file( $_FILES['file']['tmp_name'] );
|
||
/* ищем в базе - есть ли оно */
|
||
$db -> free_sql2( 'ALTER TABLE `foto_img` ADD `md5` varchar(100) NULL' );
|
||
$id = $db -> get_val( 'foto_img', $md5, 'id' );
|
||
if ( $id )die( 'Уже есть такое' );
|
||
@mkdir( MYDIR . '/img/albums', 0700 );
|
||
@mkdir( MYDIR . '/img/albums/' . $_SESSION['user_id'], 0700 );
|
||
@mkdir( MYDIR . '/img/albums/' . $_SESSION['user_id'] . '/' . $_SESSION['album_id'], 0700 );
|
||
@mkdir( MYDIR . '/img/albums/' . $_SESSION['user_id'] . '/' . $_SESSION['album_id'] . '/big', 0700 );
|
||
@mkdir( MYDIR . '/img/albums/' . $_SESSION['user_id'] . '/' . $_SESSION['album_id'] . '/original', 0700 );
|
||
require_once MYDIR . '/api/php/genpass.php';
|
||
$img_name = generate_password( 15 );
|
||
$source = $_FILES['file']['tmp_name'];
|
||
$target_original = MYDIR . '/img/albums/' . $_SESSION['user_id'] . '/' . $_SESSION['album_id'] . '/original/' . $img_name . '.jpg';
|
||
$target_big = MYDIR . '/img/albums/' . $_SESSION['user_id'] . '/' . $_SESSION['album_id'] . '/big/' . $img_name . '.jpg';
|
||
$target_small = MYDIR . '/img/albums/' . $_SESSION['user_id'] . '/' . $_SESSION['album_id'] . '/' . $img_name . '.jpg';
|
||
copy( $source, $target_original );
|
||
require_once MYDIR . '/api/php/img2.php';
|
||
rimg ( $target_original, 640, 480, $target_small, $zip=60, $c=0 );
|
||
rimg ( $target_original, 1280, 720, $target_big, $zip=60, $c=0 );
|
||
unset( $a );
|
||
$db -> free_sql2( 'ALTER TABLE `foto_img` ADD `size` varchar(20) NULL' );
|
||
$a['img'] = $img_name;
|
||
$a['user_id'] = $_SESSION['user_id'];
|
||
$a['album_id'] = $_SESSION['album_id'];
|
||
$a['size'] = $_FILES['file']['size'];
|
||
$a['md5'] = $md5['md5'];
|
||
$a['t'] = time();
|
||
echo $img_name;
|
||
$db -> add( 'foto_img', $a );
|
||
}
|
||
}
|
||
break;
|
||
/* 05.05.2021 Удаление фотографий */
|
||
case 'del_foto':
|
||
$dostup = 0; //запрещаем что то делать
|
||
//проверяем авторство фотографии
|
||
unset( $a );
|
||
$a['id'] = $_POST['id'];
|
||
$user_id = $db -> get_val( 'foto_img', $a, 'user_id' );
|
||
if ( MYID == $user_id ) $dostup = 1;
|
||
if ( $_SESSION['dostup'] == 'a' || $_SESSION['dostup'] == 'm' ) $dostup = 1;
|
||
if ( $dostup == 0 ) die( "Кыш!" );
|
||
$img = $db -> get_val( 'foto_img', $a, 'img' );
|
||
unlink( MYDIR . '/img/albums/' . MYID . '/' . $_SESSION['album_id'] . '/original/' . $img . '.jpg' );
|
||
unlink( MYDIR . '/img/albums/' . MYID . '/' . $_SESSION['album_id'] . '/big/' . $img . '.jpg' );
|
||
unlink( MYDIR . '/img/albums/' . MYID . '/' . $_SESSION['album_id'] . '/' . $img . '.jpg' );
|
||
$db -> del_id( 'foto_img', $a['id'] );
|
||
break;
|
||
/* 05.05.2021 обновление описания фото, аудит-контента
|
||
06.05.2021 проверка авторства вынесена в ядро
|
||
*/
|
||
case 'update':
|
||
if ( $db -> check_access ( 'foto_img', $_POST['id'] ) ==0 ) die( 'Нельзя!' );
|
||
if ($_POST['t2']=='longtext')
|
||
$db -> free_sql2( 'ALTER TABLE `foto_img` ADD `' . $_POST['t'] . '` longtext NULL' );
|
||
else
|
||
$db -> free_sql2( 'ALTER TABLE `foto_img` ADD `' . $_POST['t'] . '` varchar(250) NULL' );
|
||
$db -> free_sql( "UPDATE `foto_img` SET `" . $_POST['t'] . "` = '" . $_POST['txt'] . "' WHERE `id` = " . $_POST['id'] . ";" );
|
||
break;
|
||
|
||
|
||
/* 15.05.2021 - покупка фотографии */
|
||
case 'bay_foto':
|
||
if ( !$_SESSION['user_id'] )die( '<div class="alert alert-danger" role="alert">Купить оригинал фотографии могут только <a href="/login/">зарегистрированные пользователи сайта</a></div>' );
|
||
//создаем таблицу покупок
|
||
$db -> free_sql("CREATE TABLE IF NOT EXISTS `foto_shop` (
|
||
`id` int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||
`user_id` int(10) NULL,
|
||
`album_id` int(10) NULL,
|
||
`foto_id` int(15) NULL,
|
||
`summa` varchar(10) NULL,
|
||
`avtor` int(10) NULL,
|
||
`folder` varchar(10) NULL,
|
||
`status` int(2) NULL,
|
||
`t` varchar(30) NULL,
|
||
FOREIGN KEY (`user_id`) REFERENCES `users` (`id`),
|
||
FOREIGN KEY (`avtor`) REFERENCES `users` (`id`),
|
||
FOREIGN KEY (`foto_id`) REFERENCES `foto_img` (`id`),
|
||
FOREIGN KEY (`album_id`) REFERENCES `foto_albums` (`id`)
|
||
) ENGINE='InnoDB';");
|
||
//узнаем цену за альбом, вычисляем цену за фотку, если разрешена розница
|
||
unset( $a );
|
||
$a['id'] = $_POST['id'];
|
||
$foto = $db -> get_massiv( 'foto_img', $a, '', 1 );
|
||
$a['id'] = $foto[0]['album_id'];
|
||
$album = $db -> get_massiv( 'foto_albums', $a, '', 1 );
|
||
if ( $album[0]['roznica'] !=1 ) die ( '<div class="alert alert-danger" role="alert">Не разрешена поштучная покупка фотографий</div>' );
|
||
//узнаем количество фото в альбоме
|
||
unset($b);
|
||
$b['album_id']=$foto[0]['album_id'];
|
||
$col_foto=$db->count_sql('foto_img', $b);
|
||
//узнаем стоимость фотки в розничной цене
|
||
$cena = round( $album[0]['cena'] / $col_foto, 2 );
|
||
//проверяем баланс.... если баланс меньше стоимости фотки - то шлем нах
|
||
$a['id'] = MYID;
|
||
$balans = $db -> get_val( 'users', $a, 'balans' );
|
||
//echo $balans . '<br>';
|
||
//echo $cena;
|
||
// пишем в нее что купили, когда купили, за сколько купили
|
||
if ( $balans < $cena ) die( '<div class="alert alert-danger" role="alert">Не хватает денег на счету, пополните счет в личном кабинете и повторите покупку</a>' );
|
||
|
||
//обновляем свой баланс
|
||
unset( $b );
|
||
$b['balans'] = $balans - $cena;
|
||
$db -> update( 'users', MYID, $b );
|
||
//узнаем баланс автора
|
||
$a['id'] = $foto[0]['avtor'];
|
||
$balans_a = $db -> get_val( 'users', $a, 'balans' );
|
||
|
||
//переводим автору фотографии сумму
|
||
$b['balans'] = $balans_a + $cena;
|
||
$db -> update( 'users', $a['id'], $b );
|
||
|
||
//проверяем, есть ли у пользователя приватный альбом с именем "Мои покупки"
|
||
unset( $a );
|
||
$a = array(
|
||
"user_id" => MYID,
|
||
"naim" => 'Мои покупки',
|
||
"private" => 1
|
||
);
|
||
$id = $db -> get_val ( 'foto_albums', $a, 'id' );
|
||
if ( !$id ){ //создаем альбом
|
||
|
||
$a['t'] = time();
|
||
$a['public'] = 0;
|
||
$a['img'] = 'private';
|
||
$id = $db -> add( 'foto_albums', $a );
|
||
}
|
||
//создаем папку, подпапку и тд....
|
||
@mkdir( MYDIR . '/zip', 0700 );//сюда будем сжимать
|
||
@mkdir( MYDIR . '/img/albums/' . MYID, 0700 );
|
||
@mkdir( MYDIR . '/img/albums/' . MYID . '/' . $id, 0700 );
|
||
@mkdir( MYDIR . '/img/albums/' . MYID . '/' . $id . '/original', 0700 );
|
||
@mkdir( MYDIR . '/img/albums/' . MYID . '/' . $id . '/big', 0700 );
|
||
//генерируем новое имя файлу
|
||
require_once MYDIR . '/api/php/genpass.php';
|
||
$img_name = generate_password( 15 );
|
||
|
||
//делаем символические ссылки на файлы:
|
||
symlink ( MYDIR . '/img/albums/' . $foto[0]['user_id'] . '/' . $foto[0]['album_id'] . '/' . $foto[0]['img'] . '.jpg', MYDIR . '/img/albums/' . MYID . '/' . $id . '/' . $img_name . '.jpg' );
|
||
symlink ( MYDIR . '/img/albums/' . $foto[0]['user_id'] . '/' . $foto[0]['album_id'] . '/original/' . $foto[0]['img'] . '.jpg', MYDIR . '/img/albums/' . MYID . '/' . $id . '/original/' . $img_name . '.jpg' );
|
||
symlink ( MYDIR . '/img/albums/' . $foto[0]['user_id'] . '/' . $foto[0]['album_id'] . '/big/' . $foto[0]['img'] . '.jpg', MYDIR . '/img/albums/' . MYID . '/' . $id . '/big/' . $img_name . '.jpg' );
|
||
//пишем в базу
|
||
unset( $c );
|
||
$c = array(
|
||
"user_id" => MYID,
|
||
"img" => $img_name,
|
||
"album_id" => $id,
|
||
"t" => time(),
|
||
"private" => 1
|
||
);
|
||
$db -> add( 'foto_img', $c );
|
||
chdir(MYDIR . '/img/albums/' . $foto[0]['user_id'] . '/' . $foto[0]['album_id'] . '/original');
|
||
echo '<div class="alert alert-info" role="alert">
|
||
<a href="/zip/' . $foto[0]['img'] . '.zip">Скачать оригинал фотографии</a><br>
|
||
Мы добавили фотографию в ваш <a href="/foto_album/' . $id . '">альбом</a>
|
||
</div>';
|
||
chdir(MYDIR);
|
||
break;
|
||
|
||
default:
|
||
}
|