Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 605
1

Чтение куков

07.07.2013, 09:42. Просмотров 797. Ответов 4
Метки нет (Все метки)

document.cookie имеет вид :

ID1=1; ID2=2; ID3=3; ID4=4; ID5=5; ID6=6; ID7=7; ID8=8; ID9=9;..... и т.д.

Нужна функция которая считает эти данные и создаст строку типа :

var x = 1,2,3,4,5,6,?,8,9 .... и т.д. проигнорировав другие куки сайта.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2013, 09:42
Ответы с готовыми решениями:

Хранение куков
Вот не могу разобраться как выставить дату... function set_cookie ( name, value, exp_y, exp_m,...

Установка куков
Как она может быть осуществлена? document.cookie вроде не используется(в этом я, правда, не уверен,...

Запись куков не происходит
Всем доброго времени суток. Пишу куки для другого домена, но запись не происходит, кто помоет ...

Берем значения из куков.
Нашел в сети пример. Переделал его под приличный вид. Но есть один вопрос. var cookieStartIndex =...

4
85 / 85 / 31
Регистрация: 14.06.2013
Сообщений: 207
07.07.2013, 13:16 2
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<!DOCTYPE html>
<html>
<head>
<title>JavaScript</title>
</head>
<script type="text/javascript">
function get_cookie_array(name, max){
    cookie_array = new Array();
    for(var i=0; i < max; i++){
        cookie_array[i] = parseInt(get_cookie(name+(i+1)),10);
    }       
    //console.log(cookie_array);
    return cookie_array;
}
 
function get_cookie(name)
{
    cookie_name = name + "=";
    cookie_length = document.cookie.length;
    cookie_begin = 0;
    while (cookie_begin < cookie_length)
    {
        value_begin = cookie_begin + cookie_name.length;
        if (document.cookie.substring(cookie_begin, value_begin) == cookie_name){
            var value_end = document.cookie.indexOf (";", value_begin);
            if (value_end == -1){
                value_end = cookie_length;
            }
            return unescape(document.cookie.substring(value_begin, value_end));
        }
        cookie_begin = document.cookie.indexOf(" ", cookie_begin) + 1;
        if (cookie_begin == 0){
            break;
        }
    }
    return null;
}
</script>
<body>
<a href="#" onclick="get_cookie_array('ID',9)">Получить куки</a>
</body>
</html>
0
20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 605
07.07.2013, 15:09  [ТС] 3
Не работает.

Уже сделал средствами php.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
if (isset($_GET['generate']))
{
foreach ($_COOKIE as $key => $value)
{
if (preg_match('/ID[0-9]+/ui',$key))
   {
   if (!$cookie) {$cookie = $value;}
   else {$cookie = $cookie.", $value";}
   }
}
 
echo "<p>$cookie</p>";
}
0
761 / 430 / 92
Регистрация: 24.10.2012
Сообщений: 3,138
Записей в блоге: 5
07.07.2013, 19:37 4
Функция получения массива cookie
Кликните здесь для просмотра всего текста
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function getCookie() {
        var cookie_array = new Array();
        var cookie_elems = document.cookie.split(/;\s?/);
        var value_index = 0;
        while( cookie_elems[value_index] ) {
            var elem = cookie_elems[value_index].match(/(.+)=(.*)/);
            cookie_array[elem[1]] = elem[2];
            value_index++;
        }
        return cookie_array;
    }
    
    // Запись в cookie
    document.cookie = 'ID1=1;';
    document.cookie = 'ID2=2;';
    document.cookie = 'ID3=3;';
    
    // Получаем список
    var ck = getCookie();
    
    // Выводим
    alert(ck['ID1']);
    alert(ck['ID2']);
    alert(ck['ID3']);
0
20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 605
09.07.2013, 13:30  [ТС] 5
Люди тут проблема возникла...

Эта функция пишет и удаляет куки в зависимости от checkbox.
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<form name='' action='' method=''>
<input id='10' type='checkbox' onClick='select_id(this.id)'>Form № 10<br>
</form>
 
<div id='test'></div>
 
<script type="text/javascript"> 
function select_id (id,select)
{
var id;
cid = 'ID'+id;
 
 if (document.getElementById(id).checked)
  {
  document.cookie = cid+"="+id;  
  document.getElementById('test').innerHTML = document.cookie; 
  }
  else
  {
  var cookie_date = new Date ( );  // Текущая дата и время
  cookie_date.setTime ( cookie_date.getTime() - 1 );
  document.cookie = cid += "=; expires=" + cookie_date.toGMTString();
  document.getElementById('test').innerHTML = document.cookie; 
  }
}
</script>

А эта должна считывать куки

PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
foreach ($_COOKIE as $key => $value)
{
if (preg_match('/ID[0-9]+/ui',$key))
   {
   if (!$cookie) {$cookie = $value;}
   else {$cookie = $cookie.", $value";}
   }
}
 
echo "<p>$cookie</p>";
?>
Все нормально работает, если бы не одно НО!
Как оказалось при использовании RewriteEngine на разных страницах сайта cookie имеют разный путь.
И на сколько я понимаю именно из-за этого я не нахожу созданные куки, хотя они там есть.

Нужно либо перенастроить Rewrite, что бы все куки были в одном месте, либо в этих скриптах указать путь для создания удаления и поиска куков. Подскажите плиииз как это сделать?

Добавлено через 15 часов 29 минут
Нашел... Нужно при установке куков указать path и domain
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.07.2013, 13:30

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

Проверка существования куков
Итак есть site1.ru и site2.ru . Пользователь заходит на site1.ru - если на site2.ru существуют куки...

Разделить строку куков
Здравствуйте! Появилась необходимость в работе с куками в яваскрипте. Я научился прочитывать строку...

Как применять данные из куков на странице до загрузки страницы или как можно раньше?
Всем привет! Есть примерно следующий код: В хедере подключается библиотека jquery, далее в...

Чтение куков
Как задать домен при чтении куков? Например : site.com и m.site.com Основная и мобильная версия...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.