Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.12.2017, 07:31
Интересующийся
Отправить личное сообщение для icqprophet Посмотреть профиль Найти все сообщения от icqprophet
 
Регистрация: 13.01.2013
Сообщений: 10

redirect + cookie
Добрый день

Подскажите как можно реализовать редирект с использованием cookie.

Задача состоит в том, что бы пользователь при посещении сайта, перейдя на следующую страницу (№2) с текущей (№1), не мог вернуться на страницу №1 - срабатывал редирект на страницу №2 и так далее.

Заранее благодарен!
Ответить с цитированием
  #2 (permalink)  
Старый 18.12.2017, 08:54
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от icqprophet
как можно реализовать редирект с использованием cookie
Например так:
- записывать в куки "номер" текущей страницы
- при попадании на страницу считывать из куки номер страницы
- если нужно, делать редирект на другую страницу
Ответить с цитированием
  #3 (permalink)  
Старый 18.12.2017, 09:36
Интересующийся
Отправить личное сообщение для icqprophet Посмотреть профиль Найти все сообщения от icqprophet
 
Регистрация: 13.01.2013
Сообщений: 10

Сообщение от ksa Посмотреть сообщение
Например так:
- записывать в куки "номер" текущей страницы
- при попадании на страницу считывать из куки номер страницы
- если нужно, делать редирект на другую страницу
Логика примерно понятна, если не затруднит, можно кусок кода для наглядности?
Ответить с цитированием
  #4 (permalink)  
Старый 18.12.2017, 10:31
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от icqprophet
можно кусок кода для наглядности?
Не совсем понятно про какой именно "кусок" идет речь...
Вот как работают с куками...
https://learn.javascript.ru/cookie

Вот так можно сделать "редирект"...
top.location='новый_URL';
Ответить с цитированием
  #5 (permalink)  
Старый 18.12.2017, 10:32
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Вот так работает оператор IF
https://javascript.ru/IF
Ответить с цитированием
  #6 (permalink)  
Старый 18.12.2017, 10:36
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,723

Сообщение от ksa
- при попадании на страницу считывать из куки номер страницы
лучше до попадания на страницу редиректить, т.к. js в браузере может быть отключен.
Ответить с цитированием
  #7 (permalink)  
Старый 18.12.2017, 11:33
Интересующийся
Отправить личное сообщение для icqprophet Посмотреть профиль Найти все сообщения от icqprophet
 
Регистрация: 13.01.2013
Сообщений: 10

Если все правильно понял то, как то так получается?

Код не авторский, собран из выдачи в гугле + свои додумки.
В JS не силен, подскажите такая конструкция будет работать?

function set_cookie ( name, value, exp_y, exp_m, exp_d, path, domain, secure )
{
  var cookie_string = name + "=" + escape ( value );
  if ( exp_y )
  {
    var expires = new Date ( exp_y, exp_m, exp_d );
    cookie_string += "; expires=" + expires.toGMTString();
  }
  if ( path )
        cookie_string += "; path=" + escape ( path );
  if ( domain )
        cookie_string += "; domain=" + escape ( domain );
  if ( secure )
        cookie_string += "; secure";
  document.cookie = cookie_string;
}
function get_cookie ( cookie_name )
{
  var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
  if ( results )
    return ( unescape ( results[2] ) );
  else
    return null;
}
    var s=location.href;
    var st = s.substr(s.lastIndexOf("/")+1);
    var current_date = new Date();
    var cookie_year = current_date.getFullYear ( ) + 1;
    var cookie_month = current_date.getMonth ( );
    var cookie_day = current_date.getDate ( );
   if ( (! get_cookie ( "cookieName" )) && ( st  == "index.html")  )
   {
    set_cookie ( "cookieName", "1", cookie_year, cookie_month, cookie_day );
   }
   if ( ( st  == "1.html")  ){
    set_cookie ( "cookieName", "2", cookie_year, cookie_month, cookie_day );
   }
   if ( ( st  == "2.html")  ){
    set_cookie ( "cookieName", "3", cookie_year, cookie_month, cookie_day );
   }
	var check = get_cookie ( "cookieName" );

if ( (check == "1") && !( st  == "index.html") ){
	top.location = "index.html";
	}
if ( (check == "2") && !( st  == "1.html") ){
	top.location = "1.html";
	}
if ( (check == "3") && !( st  == "2.html") ){
	top.location = "2.html";
	}

Последний раз редактировалось icqprophet, 18.12.2017 в 11:58.
Ответить с цитированием
  #8 (permalink)  
Старый 18.12.2017, 13:30
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от icqprophet
такая конструкция будет работать?
Ее работоспособность ты можешь проверить самостоятельно...

Но сами конструкции громоздкие.
Ответить с цитированием
  #9 (permalink)  
Старый 18.12.2017, 13:36
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,723

Функция для работы с cookies:
function cookie(name,value,days){
	if(value){
		var expires="";
		if(days){
			var date=new Date();
			date.setTime(date.getTime()+(days*24*3600*1000));
			expires="; expires="+date.toGMTString();
		}
		document.cookie=name+"="+value+expires+"; path=/";

		return true;
	}else{
		var nameEQ=name+"=";
		var ca=document.cookie.split(';');
		for(var i=0;i<ca.length;i++){
			var c=ca[i];
			while(c.charAt(0)==' ') c=c.substring(1,c.length);
			if(c.indexOf(nameEQ)==0) return c.substring(nameEQ.length,c.length);
		}

		return null;
	}
};

//cookie('test_cookie');//Получить значение куки по наименованию или null
//cookie('test_cookie','some string');//Записать куку до конца сессии
//cookie('test_cookie','some string',1);//Записать куку на 1 день
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не сохраняет стиль страницы в cookie sana Events/DOM/Window 3 24.04.2015 12:02
Неправильно работает кнопка Нияз Элементы интерфейса 23 07.04.2015 10:56
id + cookie + redirect Gennadiy Javascript под браузер 2 29.03.2013 17:08
проверка отсутствия записей в cookie legrol Общие вопросы Javascript 2 18.08.2012 19:27
Как удолить cookie через javascript shtopor Javascript под браузер 5 22.03.2011 23:10