Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Промежуток времени добавления файлов на сайт

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Aleksey
Отправлено: 03 Сентября, 2014 - 22:26:13
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Сент. 2014  


Помог: 0 раз(а)




У меня на сайте пользователь может зарегестрироваться и добавлять файлы. В базу данных заносится имя файла, id пользователя и дата добавления. Как сделать промежуток времени между добавлениями файлов на сайт, например пользователь добавил файл и хочет добавить еще один и тут появляется сообщени, что он должен подождать пятнадцать минут перед добавлением еще одного файла. В начале я делаю выборку последнего файла который добавил пользователь.

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $sql = mysql_query("SELECT * FROM attachment WHERE userid=$userid ORDER BY `date`
  3. DESC LIMIT 1");
  4. $result = mysql_fetch_array($sql);
  5.  


А дальше нужно текущую дату отнимать от даты добавления и все это должно быть меньше 900 секунд. Если это так то вывести сообщения, что-бы пользователь подождал 15 минут. Как-то так но реализовать не получается, помогите пожалуйста.
 
 Top
dcc0
Отправлено: 03 Сентября, 2014 - 22:44:28
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Непонятно, что не получается. Получаешь дату из базы данных, конвертируешь в единое, целое число, присваиваешь её значение переменной + 15 минут. Ниже псевдокод:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. Переменная1 = Значение даты из базы + 900 секунд;
  4.  
  5. Если(Текущая Дата >  Переменная1 )
  6.  Тогда
  7.   можно загружать еще
  8. Иначе
  9.  Вывести сообщение "Вам надо подождать" и тут вычисляешь, сколько ждать -
  10. отнимаешь от Переменная1 Текущая Дата, пишешь сколько секунд осталось, можешь конвертировать в минуты;
  11.  
  12.  

И тут можешь подгрузить JavaScript, которому передашь переменную с оставшимся временем для наблюдения за обратным отсчетом.


Для работы с датой есть функции http://www.php.su/strtotime
http://www.php.su/time
http://php.net/manual/ru/function.microtime.php
http://www.php.su/functions/?date
(Добавление)
Если с псевдокодом непонятно, то примерно так:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $var=$row['date'];
  3.  
  4.  $old = strtotime($var)+900;
  5.   $now = strtotime("now");
  6.  
  7.  if ($now > $old) {
  8.  
  9.  echo "OK";
  10.  
  11. } else {
  12.  
  13.  $r=$old-$now;
  14.  
  15.  echo "NO" .$r;
  16. //И какой-нибудь код JS, который будет обновлять страницу раз в 5 секунд.
  17. }
  18.  
  19.  
  20. ?>

(Отредактировано автором: 03 Сентября, 2014 - 23:50:09)



-----
Март 2021. Бросил программирование
 
 Top
Aleksey
Отправлено: 03 Сентября, 2014 - 23:49:19
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Сент. 2014  


Помог: 0 раз(а)




dcc0 Спасибо за помощь! Работает вот, что у меня получилось.

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $sql = mysql_query("SELECT * FROM attachment WHERE userid=$userid ORDER BY `date`
  3. DESC LIMIT 1");
  4. $result = mysql_fetch_array($sql);
  5.  
  6. $time3 = time();
  7. $time2 = $result['date'] + 900;
  8.  
  9. if($time3 > $time2)
  10. {
  11.     $img = upload_files();
  12.     $time = time();
  13.     $sql = "INSERT INTO attachment (userid, path, date) VALUES ($userid, '$img', $time)";
  14.     mysql_query($sql) or die (mysql_error());
  15. }
  16. else
  17. {
  18.   echo "Нужно подождать 15 минут прежде чем загрузить еще один файл!";
  19.   exit();
  20.  
  21.  
  22. }
  23.  
  24.  


Походу дела я не заметил код снизу и поэтому выложил свой код!

(Отредактировано автором: 03 Сентября, 2014 - 23:52:55)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB