2015-11-24 4 views
0

Я разрабатываю приложение (используя HTML/PHP/Java Script) для Facebook.Динамическое изменение содержимого приложения в текущий день

Когда приложение открыто, появляется кнопка «Пуск». После нажатия на нее должны быть показаны некоторые снимки.

Срок действия приложения - с 1 декабря по 25 декабря.

Каждый день после нажатия на ссылку Open Он должен отображать другое изображение. Например, 1 декабря должно показать 1.jpg, 2 декабря должно показать 2.jpg и так далее.

Что такое лучший способ достичь этого? Должен ли я создать Cron Job? Должен ли я создавать отдельные файлы для повседневной работы? 1.php, 2.php и т. Д.? Или мне нужно создать game.php и добавить туда разные DIVS для повседневных и с Java Script показать обязательно DIV для текущего дня?

Index.html выглядит следующим образом:

<div id="main" class="main"> 
    <img src="images/background.png" alt="Christmas Game" class="background_main"> 
    <input type="image" src="images/start.png" alt="Start Game" class="start_btn" onClick="parent.location='game.php'" /> 
</div> 

По кнопке мыши из index.html Он должен перенаправлять меня исправить содержание текущего дня.

Game.php выглядит следующим образом:

<div id="main" class="main"> 

    <img src="images/day1/game.png" alt="Christmas Game" class="game"> 

    <a href="downloads/coupon.jpg" download="coupon.jpg" title="Prize Coupon"> 

     <img src="images/day1/download.png" alt="Download Coupon" class="download"> 

    </a>    

</div> 

Как-то мне нужно сделать это динамичный, что каждый день открыты различные изображения/страницы.

Если что-то неясно - спросите меня, я попробую предоставить более подробную информацию.

+0

Каким образом будут ваши изображения хранятся? Как 1.png, 2.png и т. Д.? – Akshay

+0

Я думаю сделать это 1.png, 2.png и так далее, но, возможно, будут проблемы с безопасностью, пользователи будут видеть 1.png в первый день, 2.png на второй день, чтобы они могли попытаться проверьте, чтобы 25.png узнал, какой приз будет 25 декабря.Я хочу, чтобы кто-то предложил мне, почему это сделать самым безопасным способом. – Infinity

ответ

1

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

Создайте 25 названий изображений таким образом.

$imgName = hash('sha512', '1'); //this would generate a complex hash, which would be for pic 1.png 
$imgName = hash('sha512', '2'); //this would generate a complex hash, which would be for pic 2.png 

Теперь, используя php, вы можете легко отображать эти изображения. Посмотри на это.

<?php 
//get today's date. 
$currentDate = date('d'); //24 - current date 
$imgName = hash('sha512', $currentDate).".png";//now this would generate a really long file name, which will be impossible for a user to guess 
?> 

<!-- Now to display the image, just do this --> 
<img src="yourimagedirector/<?php echo $imgName; ?>"> 

Мой код сначала получает текущую дату, а затем выстраивается Filename (как мы сохранили раньше), а затем извлекает его и показывает его. Простой, быстрый и безопасный!

+0

Также попробовал ваш метод. Он генерирует хэш: 'c0033b5f5a4815a172984d64037dd49a8663fb8b3a71e47f11ecd332c8c3819c57e1631fdf46d66c6ff0e58763a61529fefcfa2a6675e186ee901e5452fedd94' за' 24'. Поэтому он не может найти изображение 24.png должно быть названо 'c0033b5f5a4815a172984d64037dd49a8663fb8b3a71e47f11ecd332c8c3819c57e1631fdf46d66c6ff0e58763a61529fefcfa2a6675e186ee901e5452fedd94.png' таким образом, показывая изображение. Итак, мне нужно переименовать изображения с именами хэшей? – Infinity

+0

@ Infinity Correct. Переименуйте этот хэш, который создается для каждого файла. Таким образом, новое имя файла будет «hashgenerated.png». Затем вы можете легко получить к нему доступ и отобразить приведенным выше кодом. – Akshay

+0

Спасибо, это хорошая идея и работал на меня. – Infinity

0

Вы можете сделать это с помощью jQuery.

  1. Прежде всего вам нужно указать название изображения (например, -> день1, день2, день3 ... день25).

  2. Используйте этот код:

    var startDate = new Date('11/23/2015'); // MM/DD/YYYY format 
    var date2 = new Date(); // get current day date 
    var diffDays = date2.getDate() - date1.getDate(); 
    
    $('.start_btn').click(function(){ 
        $('.background_main').attr('src','day'+diffDays+'.jpg'); 
    }); 
    
Смежные вопросы