Перейти к содержимому


Пользователь месяца
Ixman Ixman 1-й за Октябрь
Очков активности: 693 0 тем, 33 сообщения, 14 баллов репутации
Сайт: o5cat.ru
ТОП самых активных за этот месяц
  • Фотография yuran
    #1

    yuran (yurbol.ru)
    Очков активности: 78 0 тем, 52 сообщения, 1 балл репутации

  • Фотография ShowPrint
    #2

    ShowPrint (ShowPrint.ru)
    Очков активности: 58.5 Вне конкурса за определение пользователя месяца

  • Фотография BLIK
    #3

    BLIK
    Очков активности: 48 Вне конкурса за определение пользователя месяца

  • Фотография WGN
    #4

    WGN (worldgamenews.com)
    Очков активности: 37.5 Вне конкурса за определение пользователя месяца

  • Фотография Mandarin
    #5

    Mandarin
    Очков активности: 34.5 0 тем, 23 сообщения, 1 балл репутации

  • Фотография Ixman
    #6

    Ixman (o5cat.ru)
    Очков активности: 30 Вне конкурса за определение пользователя месяца

  • Фотография pozitron123
    #7

    pozitron123
    Очков активности: 30 2 темы, 14 сообщений, 1 балл репутации

  • Фотография Mariko
    #8

    Mariko
    Очков активности: 15 1 тема, 7 сообщений, 1 балл репутации

  • Фотография RosenRot
    #9

    RosenRot (abuzov.com)
    Очков активности: 13.5 1 тема, 6 сообщений, 1 балл репутации

  • Фотография Triniti_Wel
    #10

    Triniti_Wel (triniti-wel.ru)
    Очков активности: 12 1 тема, 5 сообщений, 1 балл репутации

  • Показать весь ТОП 10
Поддержите форум! =)
Апдейты
  • Яндекс ИКС: 31.10.2018
  • Яндекс выдача: 13.11.2018
Топ 5 участников по репутации


Графический таймер обратного отсчета на PHP не работает

#1 Daffy

Daffy
  • Пользователь
  • 26 сообщений
  • Репутация: 1
0

Отправлено 06 November 2017 - 18:20

Здравствуйте! 

 

На сайте автора скрипта, сам скрипт работает корректно, а у меня не отображает числа, пробовал на разных хостингах.

 

ниже пример работы скрипта:

 

date-31-12-2017.jpg

 

Код самого скрипта

<?php
	date_default_timezone_set('Europe/Moscow');
	//header('refresh:1;url='.$_SERVER['HTTP REFERER']);
	header("Content-type: text/html; charset=utf-8");
	// Запрет кэширования
	header('Expires: Mon, 11 Jul 1991 03:00:00 GMT');
	header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
	header('Cache-Control: no-cache, must-revalidate');
	header('Pragma: no-cache');
	error_reporting(0);
	$image = isset($_GET['image']) ? stripslashes(strip_tags($_GET['image'])) : '';
	// установка отсчета на конкретный период времени
	if ($image == 'seodor-sale') { // http://www.sanchez.com.ua/images/timer/seodor-sale.jpg
		$start = $image.'.txt';
		if (!file_exists($start)) {
			$fp = fopen ($start,"w");
			fwrite($fp, time());
			fclose ($fp);
		}	
		$filemtime = filemtime($start) +60*60*24*7;// 7 дней
	}
	else if (preg_match("~^date[\-|_]([0-9]{1,2})[\-|_]([0-9]{1,2})[\-|_]([0-9]{4})(?:_([0-9]{1,2})[\-|_]([0-9]{1,2}))?$~", $image, $m)) {
	$h = $m[4] ? $m[4] : 0;
	$mi = $m[5] ? $m[5] : 0;
		$filemtime = mktime($h,$mi, 0, $m[2], $m[1], $m[3]);
	} else $image = '';
	if (empty($image)) die;
	function declOfNum($number, $titles) { // функция склонения
		$cases = array(2, 0, 1, 1, 1, 2);
		return sprintf($titles[($number%100>4 && $number%100<20)? 2 : $cases[min($number%10, 5)] ], $number);
	}
	if ($filemtime <= time()) {
		$days = '00'; $hours = '00'; $min = '00'; $sec = '00';
	}
	else {
		$s = $filemtime - time();
		$hour = floor($s/3600);
		$mins = floor($s/60);
		$days = floor($s/86400);
		$hours = floor($s/3600 - $days*24);
		$min = floor($s/60 - $hour*60); 
		$sec = floor($s - $mins*60); 
		if ($days<10) $days = '0'.$days;
		if ($hours<10) $hours = '0'.$hours;
		if ($min<10) $min = '0'.$min;
		if ($sec<10) $sec = '0'.$sec;
	}	
	$im = imagecreatefromjpeg('bg.jpg');
	$timecolor = imagecolorallocate($im, 255, 255, 255);
	$textcolor = imagecolorallocate($im, 33, 33, 33);
	$font = 'digital.ttf';
	$fonttext = 'verdana.ttf';
	imagettftext($im, 40, 0, 78, 64, $timecolor, $font, $days);
	imagettftext($im, 20, 0, declOfNum($days, array(71, 78, 69)), 98, $textcolor, $fonttext, declOfNum($days, array("день", "дня", "дней")));
	imagettftext($im, 40, 0, 168, 64, $timecolor, $font, $hours);
	imagettftext($im, 18, 0, declOfNum($hours, array(171, 164, 158)), 96, $textcolor, $fonttext, declOfNum($hours, array("час", "часа", "часов")));
	imagettftext($im, 40, 0, 257, 64, $timecolor, $font, $min);
	imagettftext($im, 14, 0, declOfNum($min, array(247, 245, 252)), 94, $textcolor, $fonttext, declOfNum($min, array("минуту", "минуты", "минут")));
	imagettftext($im, 40, 0, 346, 64, $timecolor, $font, $sec);
	imagettftext($im, 12, 0, declOfNum($sec, array(338, 337, 341)), 92, $textcolor, $fonttext, declOfNum($sec, array("секунду", "секунды", "секунд")));
	header('Content-type: image/jpg');
	imageJpeg($im, null, 85);
	imagedestroy($im);
	die;
?>

и архив с ним прикреплен к теме. Может кто разберется в чём проблема.

 

Прикрепленные файлы

  • Прикрепленный файл  timer.zip   127.82К   Количество загрузок: 23

 

 

  • 0

#2 Daffy

Daffy
    Topic Starter
  • Пользователь
  • 26 сообщений
  • Репутация: 1

Отправлено 09 November 2017 - 00:10

Эхх, никто так и не посмотрел в чём проблема  :(


  • 0

#3 Ixman

Ixman
  • Пользователь PRO
  • 2933 сообщений
  • Репутация: 765

Отправлено 09 November 2017 - 12:44

@Daffy, завтра буду дома, то гляну. Главное не забыть
  • 0


#4 Daffy

Daffy
    Topic Starter
  • Пользователь
  • 26 сообщений
  • Репутация: 1

Отправлено 09 November 2017 - 12:57

@Ixman:D  хорошо, спасибо


  • 0

#5 Ixman

Ixman
  • Пользователь PRO
  • 2933 сообщений
  • Репутация: 765

Отправлено 10 November 2017 - 20:12

@Daffy, всё работает, но есть маленькая хитрость.

 

Допустим скрипт будет лежать в директории /timer/ значит ссылка на  таймер будет

http://domen.ru/timer/seodor-sale.jpg

ещё если будут всё же трудности, нужно на директорию таймера выставить права 777.

 

И как я понял это таймер на неделю что ли, то есть он показывает отсчёт на 7 дней


Сообщение отредактировал Ixman: 10 November 2017 - 20:13

  • 0


#6 Daffy

Daffy
    Topic Starter
  • Пользователь
  • 26 сообщений
  • Репутация: 1

Отправлено 10 November 2017 - 20:34

так, сейчас попробуем, но всё это вроде делал, семь дней, это если seodor-sale.jpg , если указать дату date-31-12-2017.jpg вот в таком виде, до будет отсчет по ней

@Ixman, вот закинул всю папку и даже 777 поставил, но не работает 

http://tegdiw.ru/timer/date-31-12-2017.jpg
 http://tegdiw.ru/timer/seodor-sale.jpg

  • 0

#7 Ixman

Ixman
  • Пользователь PRO
  • 2933 сообщений
  • Репутация: 765

Отправлено 10 November 2017 - 20:44

@Daffy, там в скрипте заблокирован показ ошибок, нужно его убрать. Закомментируйте строку error_reporting(0); или уберите её на время вообще. Я хочу посмотреть что покажет скрипт. Да и надо чтобы сервер или хостинг не гасил показ ошибок. В общем вместо error_reporting(0) впишите error_reporting(E_ALL);


  • 0


#8 Daffy

Daffy
    Topic Starter
  • Пользователь
  • 26 сообщений
  • Репутация: 1

Отправлено 10 November 2017 - 20:49

error_reporting(E_ALL);

куча всякого вылезло 

а убрав эту строку, то же самое, что и с ней, нет цифр 


Сообщение отредактировал Daffy: 10 November 2017 - 20:54

  • 0

#9 Daffy

Daffy
    Topic Starter
  • Пользователь
  • 26 сообщений
  • Репутация: 1

Отправлено 10 November 2017 - 21:05

эх, да что же не так, установил на php7+nginx , как автор ответил и даже настройки написал, то же самое, цифр нет

не может же быть, на двух разных хостингах, такая ерунда. 


Сообщение отредактировал Daffy: 10 November 2017 - 21:07

  • 0

#10 Ixman

Ixman
  • Пользователь PRO
  • 2933 сообщений
  • Репутация: 765

Отправлено 10 November 2017 - 21:07

@Daffy, сейчас показ ошибок выключен?


  • 0


#11 Daffy

Daffy
    Topic Starter
  • Пользователь
  • 26 сообщений
  • Репутация: 1

Отправлено 10 November 2017 - 21:18

сейчас показ ошибок выключен?

закомментирован  , точнее удалена, ну разницы нет


Сообщение отредактировал Daffy: 10 November 2017 - 21:21

  • 0

#12 Ixman

Ixman
  • Пользователь PRO
  • 2933 сообщений
  • Репутация: 765

Отправлено 10 November 2017 - 21:24

@Daffy, ну я ошибок у вас не вижу

 

У меня локально работал изначально первый вариант, без указания даты. 

 

Сейчас я залил себе на сервер и вариант без указания даты также у меня работает на ура. А вот с указанием даты, даже картинка не выводиться. Возможно дата криво указана или ещё что.

 

Предположительно что-то не хватает на ваших хостингах 


  • 0


#13 Daffy

Daffy
    Topic Starter
  • Пользователь
  • 26 сообщений
  • Репутация: 1

Отправлено 10 November 2017 - 21:35

Предположительно что-то не хватает на ваших хостингах 

 

 хостинг 

http://www.host-food.ru/

но проблем никогда не было, да и на другом, какие только гиганты не работали

@Ixman, ладно, спасибо, видимо не судьба  :(


  • 0

#14 Ixman

Ixman
  • Пользователь PRO
  • 2933 сообщений
  • Репутация: 765

Отправлено 10 November 2017 - 21:35

@Daffy, у меня на сервере работает такой вариант написания даты 

date-31-12-2017_23-59.jpg

но без показа ошибок скриптом на вашем хостинге я ничего сказать не могу о вашей проблеме

 

Сделайте E_ALL


  • 0


#15 Daffy

Daffy
    Topic Starter
  • Пользователь
  • 26 сообщений
  • Репутация: 1

Отправлено 10 November 2017 - 21:40

Сделайте E_ALL
сделал 
  • 0

#16 Ixman

Ixman
  • Пользователь PRO
  • 2933 сообщений
  • Репутация: 765

Отправлено 10 November 2017 - 21:54

@Daffy, а вы шрифты которые идут со скриптом залили на хост?


  • 0


#17 Daffy

Daffy
    Topic Starter
  • Пользователь
  • 26 сообщений
  • Репутация: 1

Отправлено 10 November 2017 - 22:01

со скриптом залили на хост
да, и права им менял до 777, ничего не изменилось 
  • 0

#18 Ixman

Ixman
  • Пользователь PRO
  • 2933 сообщений
  • Репутация: 765

Отправлено 10 November 2017 - 22:13

@Daffy, права на файлы 777 ставить нельзя. Максимум 666. и то на те в которые будет что-то записываться. В вашем случае у шрифтов должны быть 644.

 

Ну скрипт не видит шрифтов, это ясно из ошибок. Я могу только посоветовать обратиться к хостеру, тут по всей видимости что-то с путями до шрифтов не так

Права на папку timer нужно 777 и то не обязательно


  • 0


#19 Daffy

Daffy
    Topic Starter
  • Пользователь
  • 26 сообщений
  • Репутация: 1

Отправлено 10 November 2017 - 22:15

шрифтов должны быть 644
так и стоит, я их перезалил  
  • 0

#20 Ixman

Ixman
  • Пользователь PRO
  • 2933 сообщений
  • Репутация: 765

Отправлено 10 November 2017 - 22:23

Вот ошибка по сути и всё говорит

Warning: imagettftext(): Could not find/open font in /home/h58601/data/www/tegdiw.ru/timer/index.php on line 63

То есть функция imagettftext() не может найти или открыть шрифт на строке 63. И на 64 тоже, и все ошибки ниже тоже


Я рекомендую обратиться в саппорт с этой проблемой, с вопросом почему скрипт не видит шрифтов. Всего скорее это из-за настроек на сервере


  • 0


robot

robot
  • Пользователь PRO
  • 2652 сообщений
  • Репутация: 85


Похожие темы

  Название темы Автор Статистика Последнее сообщение

Оформление форума – IPBSkins.ru