Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как записать в куки код из 5 цифр на 3 суток? (https://javascript.ru/forum/misc/27001-kak-zapisat-v-kuki-kod-iz-5-cifr-na-3-sutok.html)

GrayHunter 30.03.2012 18:49

Как записать в куки код из 5 цифр на 3 суток?
 
Помогите с простым скриптом, пожалуйста.
Сам скрипты писать не умею, но для сайта (на WordPress) очень нужен скрипт, чтобы делал такое:

1) записывал в куки случайно сгенерированный набор из пяти цифр и запоминал бы его на трое суток,
2) выводил бы в нужном месте страницы эти цифры.

Пример работы:
человек зашёл на страницу и увидел фразу "Специальный номер: 93061". Далее он может заходить (или не заходить) на сайт сколь угодно раз - номер всё равно будет таким же. Но спустя трое суток, при очередном заходе, номер уже будет другой.

Буду очень рад помощи. :)


Может быть это поможет тому, кто решит мне помочь - функция для генерации случайных чисел в диапазоне от m до n:

function randomNumber (m,n)
{
  m = parseInt(m);
  n = parseInt(n);
  return Math.floor( Math.random() * (n - m + 1) ) + m;
}

GrayHunter 30.03.2012 22:22

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

function 31.03.2012 17:52

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

Судя по вашему сообщению, вы ну совсем не знаете javascript.

Освойте основы языка и вопрос отпадет сам, полностью или частично.
А с чем не справитесь - поможем.

На сайте javascript можно начать изучать с учебника, раздел Основы javascript.
Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/

Задавайте конкретные вопросы по ходу дела.


Вы просите готовый скрипт с нуля.

Это работа, и за нее обычно платят деньги.
Для таких сообщений предназначен раздел форума "Работа".

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

FINoM 31.03.2012 18:41

GrayHunter, просто прочтите документацию к кукисам и конструктору Date. Но лично я предпочитаю работать с localStorage, вместо куков.

GrayHunter 31.03.2012 21:15

Спасибо, мне уже подсказали в другом месте.

Хотел бы уточнить лишь один момент:
Сейчас у меня выводится, например, "3 апреля 2012 г. 19:43:36 Московское стандартное время", а мне нужно "3.04.12".
Я заменил "date.toLocaleString()" на "date.toLocaleDateString()", но выводиться стало так: "3 апреля 2012 г."
Подскажите плз, как сделать "3.04.12"?

Раед 31.03.2012 21:25

date.getDate()+'.'+date.getMonth()+'.'+date.getYea r()

GrayHunter 31.03.2012 22:24

Спасибо, но отображает почему-то "3.3.112".

Привожу полный код скрипта на всякий случай:
<script type="text/javascript">
            <!--		
            var console = window.console || {log : function(msg) {alert(msg);}},
            MYAPP = MYAPP || {					
                cookie : {
                    expireDate : function(periodType, offset) {
                        var expire = new Date();
														
                        switch (periodType.toLowerCase()) {
                            case 'years':											
                                expire.setFullYear(expire.getFullYear() + offset);
                                break;
                            case 'months':
                                expire.setMonth(expire.getMonth() + offset);
                                break;
                            case 'days':
                                expire.setDate(expire.getDate() + offset);
                                break;
                            case 'hours':
                                expire.setHours(expire.getHours() + offset);
                                break;
                            case 'minutes':
                                expire.setMinutes(expire.getMinutes() + offset);
                                break;
                            default:
                                console.log(
                                    'MYAPP.cookie.expireDate( Invalid "periodType" = "' + periodType + '" );'
                                );								
                        }
                        return expire;
                    },
                    deleteCookie : function (cookieName) {
                        writePersistentCookie(cookieName, 'Pending delete', 'years', -1);
                    },
                    getCookieValue : function (cookieName) {
                        var exp = RegExp(cookieName + '=([^;]+)');
					
                        if (exp.exec(document.cookie + ';')) {						
                            return RegExp.$1;
                        }
                        return null;
                    },
                    writePersistentCookie : function (cookieName, cookieValue, expire, path) {							
                        var expire = expire || this.expireDate('minutes', 5),
                        path = path || '/';
					
                        document.cookie = cookieName + '=' + cookieValue 
                            + '; expires=' + expire.toUTCString() 
                            + '; path=' + path;
                    }
                },										
                showRandomId : function(id, range, periodType) {
                    var getRandomId = function() {
                        var cookieName = 'random_id',
                        value = MYAPP.cookie.getCookieValue(cookieName),										
                        expire = MYAPP.cookie.expireDate(periodType[0], periodType[1]),									
                        x = range[0],
                        y = range[1],
                        random = Math.floor( Math.random() * (y - x + 1) ) + x,
                        sep = '&';
														
                        if(value) {
                            value = value.split(sep);							
                        } else {
                            value = [random, expire.valueOf()];
                            MYAPP.cookie.writePersistentCookie(cookieName, value.join(sep), expire);
                        }
                        return value;						
                    },						
                    value = getRandomId(),							
                    date = new Date(+value[1]),
                    obj = document.getElementById(id);
				
                    if(obj) {
                        obj.innerHTML = '<p>Специальный номер: <em>' + value[0] 
                            + '</em> истекает <em>' + date.getDate()+'.'+date.getMonth()+'.'+date.getYear() + '</em></p>';
                    }
                }
            }	
            -->
        </script>



</head>
<body onload="MYAPP.showRandomId('container', [10101, 99988], ['days', 3])">

<span id="container"></span>


Часовой пояс GMT +3, время: 20:00.