X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Добавить ответ в эту тему
> Ограничение загрузки фотографий на сайт
Panich
Panich
Topic Starter сообщение 18.5.2011, 15:49; Ответить: Panich
Сообщение #1


Прошу направить где именно прочесть(изучить,посмотреть) про ограничение количества файлов (в моём случае изображний) например до трёх штук, загружаемых пользователем на сайт!
Заранее благодарен!
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
P0ZiTR0N
P0ZiTR0N
сообщение 18.5.2011, 16:10; Ответить: P0ZiTR0N
Сообщение #2


Вы хотите добавить ограничение по количеству загрузок файлов пользователями на свой сайт?
Если да - то могу посоветовать алгоритм: успешная закачка файла => в базу +1 к статистике по данному пользователю. Если stat >= 3, то выдавать ошибку о превышении
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Panich
Panich
Topic Starter сообщение 18.5.2011, 16:14; Ответить: Panich
Сообщение #3


как считаете-эту колонку со статистикой лучше добавить в ту же таблицу где и остальные данные о пользователе или создать отдельную со связью между ними?
И просьба:скиньте кусочек кода примерного-что бы я отталкиваться начал-пока только на живых примерах получатеся учиться)))
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
P0ZiTR0N
P0ZiTR0N
сообщение 18.5.2011, 16:43; Ответить: P0ZiTR0N
Сообщение #4


Конечно туда, где и остальные
Кусочек кода скину, но позже (если никто не бросит ещё [img]http://img512.imageshack.us/img512/5310/scratchoneshead.gif[/img])
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Panich
Panich
Topic Starter сообщение 18.5.2011, 17:20; Ответить: Panich
Сообщение #5


Благодарен за ответ и жду"кусочек"кода!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
P0ZiTR0N
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
asbury
сообщение 18.5.2011, 23:52; Ответить: asbury
Сообщение #7


помоему можно просто считать сколько файлов в выделенной директории и если их больше определенного колличества то не производить заливку... Мне кажется это быстрее конекта к базе, выборки и апдейта...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
P0ZiTR0N
P0ZiTR0N
сообщение 19.5.2011, 0:30; Ответить: P0ZiTR0N
Сообщение #8


Вынужден оспорить - А если файлы всех пользователей грузятся в 1 папку? Хотя мы так и не знаем принципа заливки у афтора
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Panich
Panich
Topic Starter сообщение 19.5.2011, 9:47; Ответить: Panich
Сообщение #9


P0ZiTR0N,вы правы по поводу именно моего случая при зогрузке фотографий!
Спасибо за пример-буду разбираться!Загляните ещё разок сюда-я отпишусь!)))
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Добавить ответ в эту тему
Быстрый ответ
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Ваш сайт блокирует Роскомнадзор?
27 hollywooduk 5719 17.4.2024, 0:19
автор: Omaxis
Открытая тема (нет новых ответов) Прототипирование + дизайн + вёрстка = красивый и эффективный сайт под ключ
0 bunneh 359 16.4.2024, 18:02
автор: bunneh
Открытая тема (нет новых ответов) Если в сайт с одними ключами, которые там долго, добавить новую рубрику с новыми ключами
2 Tutich 1244 16.4.2024, 8:27
автор: Tutich
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлы[Услуги] Баннер/Графика/Сайт
240 FillPlay 180534 31.3.2024, 22:58
автор: FillPlay
Открытая тема (нет новых ответов) Тысячи ботовых переходов на сайт
18 Suagaring 4615 26.3.2024, 21:42
автор: c4p1t4l15t


 



RSS Текстовая версия Сейчас: 20.4.2024, 20:34
Дизайн