Помощник
|
Ограничение загрузки фотографий на сайт |
Panich
|
Сообщение
#1
|
||
|
|
||
|
|||
P0ZiTR0N |
18.5.2011, 16:10;
Ответить: P0ZiTR0N
Сообщение
#2
|
|
Вы хотите добавить ограничение по количеству загрузок файлов пользователями на свой сайт?
Если да - то могу посоветовать алгоритм: успешная закачка файла => в базу +1 к статистике по данному пользователю. Если stat >= 3, то выдавать ошибку о превышении |
|
|
Panich
|
Сообщение
#3
|
|
как считаете-эту колонку со статистикой лучше добавить в ту же таблицу где и остальные данные о пользователе или создать отдельную со связью между ними?
И просьба:скиньте кусочек кода примерного-что бы я отталкиваться начал-пока только на живых примерах получатеся учиться))) |
|
|
P0ZiTR0N |
18.5.2011, 16:43;
Ответить: P0ZiTR0N
Сообщение
#4
|
|
Конечно туда, где и остальные
Кусочек кода скину, но позже (если никто не бросит ещё [img]http://img512.imageshack.us/img512/5310/scratchoneshead.gif[/img]) |
|
|
Panich
|
Сообщение
#5
|
|
Благодарен за ответ и жду"кусочек"кода!
|
|
|
P0ZiTR0N |
18.5.2011, 17:59;
Ответить: P0ZiTR0N
Сообщение
#6
|
|
[PHP]<?
$userid = "25514"; //Наш пользователь [определяется как-то у Вас] $max_files_allowed = "3"; //Максимальное количество файлов, доступное любому пользователю $dbhost = "localhost"; //хост базы $dbuser = "main"; //юзверь базы $dbpass = "w48Y90w@"; //пароль в базу $dbname = "4test"; //имя базы /*Делаем подключение и запрос в базу - выдать инфу по количеству загруженных файлов пользователем Считаем, что заранее добавлена колонка (например через PMA): `users` - это таблица с пользователями; `uploadedfiles` - название новой колонки с которой будем работать ALTER TABLE `users` ADD `uploadedfiles` INT NOT NULL Я предполагаю, что у вас УЖЕ есть таблица типа users с инфой о пользователях */ $link = mysql_connect($dbhost,$dbuser,$dbpass) or die("Тыдыщь... Что-то пошло не так: " . mysql_error()); //коннект //Запрос $result возвращет массив с одним значением "uploadedfiles" из базы. Допустим с самого начала значение = 0 $result = mysql_query("SELECT uploadedfiles FROM `$dbname`.`users` WHERE userid = $userid" ) or die("Ошибка в запросе: " . mysql_error()); while ($row = mysql_fetch_assoc($result)) { $uploadedfiles = $row['uploadedfiles']; echo $uploadedfiles ."<br>"; //Для отладки - отобразить какое значение в базе в данной ячейке для выбраного пользователя } ?> <!--Стандартненький аплоад--> <form enctype="multipart/form-data" action="limit_uploads.php" method="POST"> <!--Ограничение на загрузку в байтах -> <input type="hidden" name="MAX_FILE_SIZE" value="100000" />--> <input type="hidden" name="start" value="1" /><!--Для инициализации начала загрузки БЕЗ выдачи ашипки--> <input type="hidden" name="userid" value="<?php echo($userid); ?>" /><!--Я не знаю как у вас передаётся идентификатор пользователя, но считаем, что это он--> <? if ($uploadedfiles >= $max_files_allowed) //Если пользователь загрузил больше, чем положено: { die("<p>Хотите больше загружать? Ставьте ящик админу</p>"); } else { echo ("Выберите файл: <input name=\"uploadedfile\" type=\"file\" /><br /> <input type=\"submit\" value=\"Закачать на серв\" />"); } ?> </form> <? if($_POST['start'] == 1) { $target_path = "uploads"; // Папка для загрузки $target_path = $target_path . "/" . basename( $_FILES['uploadedfile']['name']); if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { echo "Файл ". basename( $_FILES['uploadedfile']['name']) ." загружен"; $upload_success = 1; } else { echo "Ашипко. Пробуйте ещё раз или позже!"; } } if ($upload_success == 1) { //Предположим в базе напротив нашего пользователя №25514 стоял 0. Теперь коммандой UPDATE мы увеличили данные в колонке uploadedfiles на 1 для указанного пользователя $result = mysql_query("UPDATE `$dbname`.`users` SET uploadedfiles=uploadedfiles+1 WHERE userid = $userid" ) or die("Ошибка в запросе: " . mysql_error()); } ?> [/PHP] Дамп базы для теста: SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
CREATE TABLE IF NOT EXISTS `users` ( `userid` int(11) NOT NULL, `uploadedfiles` int(3) NOT NULL, KEY `userid` (`userid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8_general_ci; -- -- Дамп данных таблицы `users` -- INSERT INTO `users` (`userid`, `uploadedfiles`) VALUES (25514, 0); |
|
|
asbury |
18.5.2011, 23:52;
Ответить: asbury
Сообщение
#7
|
|
помоему можно просто считать сколько файлов в выделенной директории и если их больше определенного колличества то не производить заливку... Мне кажется это быстрее конекта к базе, выборки и апдейта...
|
|
|
P0ZiTR0N |
19.5.2011, 0:30;
Ответить: P0ZiTR0N
Сообщение
#8
|
|
Вынужден оспорить - А если файлы всех пользователей грузятся в 1 папку? Хотя мы так и не знаем принципа заливки у афтора
|
|
|
Panich
|
Сообщение
#9
|
|
P0ZiTR0N,вы правы по поводу именно моего случая при зогрузке фотографий!
Спасибо за пример-буду разбираться!Загляните ещё разок сюда-я отпишусь!))) |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Ваш сайт блокирует Роскомнадзор? | 27 | hollywooduk | 5740 | 17.4.2024, 0:19 автор: Omaxis |
|
Прототипирование + дизайн + вёрстка = красивый и эффективный сайт под ключ | 0 | bunneh | 450 | 16.4.2024, 18:02 автор: bunneh |
|
Если в сайт с одними ключами, которые там долго, добавить новую рубрику с новыми ключами | 2 | Tutich | 1318 | 16.4.2024, 8:27 автор: Tutich |
|
[Услуги] Баннер/Графика/Сайт | 240 | FillPlay | 180594 | 31.3.2024, 22:58 автор: FillPlay |
|
Тысячи ботовых переходов на сайт | 18 | Suagaring | 4622 | 26.3.2024, 21:42 автор: c4p1t4l15t |
Текстовая версия | Сейчас: 23.4.2024, 19:35 |