PDA

Просмотр полной версии : как создать привязку,сессию куков к странице ?


ReduKToR
19.09.2009, 16:57
Дело вот в чем, до сегодняшних дней мой сервис был русскоязычным....по многочисленным просьбам,я решил добавить поддержку Английского....
В реализации всё получилось,
допустим на главной выбираеш еглиш и все меняется,
а вот при переходе на страницу регистрации все опять становится русским,хотя если и там нажать английский,то отображение тоже поменяется....

Вот хочу посоветоваться и спросить, как можно привязать выбор языка, думаю без сессии куков тут не обойтись......
для смены языков идет такой запрос...
index.php?lang=en и index.php?lang=ru разумеется....

в начале документа стоит
session_start();
set_time_limit(0);
error_reporting(0);

толку 0,при переходе на страницу регистрации- сессия не прописывается((((

Deathdreams
19.09.2009, 16:58
setcookie попробуй.

Срок сессии истекает, а куки можно хранить до бесконечности.

Deathdreams
19.09.2009, 17:03
<script>
function SetCookie(name,value){
var argv=SetCookie.arguments;
var argc=SetCookie.arguments.length;
var expires=(argc>2)?argv[2]:null;
var path=(argc>3)?argv[3]:null;
var domain=(argc>4)? argv[4]:null;
var secure=(argc>4)? argv[5]:false;
document.cookie=name+"="+escape(value)+((expires==null)?"":("; expires="+expires))+((path==null)?"":("; path="+path))+((domain==null)?"":("; domain="+domain));
}
function getCookieVal(offset){
var endstr=document.cookie.indexOf(";",offset);
if (endstr==-1)
endstr=document.cookie.length;
return unescape(document.cookie.substring(offset,endstr)) ;
}
function GetCookie(name){
var arg=name+"=";
var alen=arg.length;
var clen=document.cookie.length;
var i=0;
while (i<clen){
var j=i+alen;
if (document.cookie.substring(i,j)==arg)
return getCookieVal(j);
i=document.cookie.indexOf(" ",i)+1;
if (i==0)
break;
}
return null;
}
</script>

<a onclick="SetCookie('lang','en')" href="#">Английский</a>
<a onclick="SetCookie('lang','ru')" href="#">Русский</a>


А в самом начале страницы GetCookie('lang') ну и небольшое знание js, а точнее if,then,else :)

ReduKToR
19.09.2009, 17:03
setcookie("Russian","index.php?lang=ru");
setcookie("English","index.php?lang=en");

тоже не помогло.........

Deathdreams
19.09.2009, 17:12
ReduKToR
ты думаешь установил куки и всё?
их проверять надо.


switch($_COOKIE['lang']){

case "rus":

//тут код или переадресация какаянибудь.
break;
case "eng":

//тут тоже

break;
default: //тут переадресация на выбор языка
break;
}

Deathdreams
19.09.2009, 17:31
Получилось?

oldsugar
19.09.2009, 17:39
попробуй на странице регистрации что то типа

session_start();

if ($_SESSION['lang']=='en') {
header("Location: ursite.ru/reg.php?lang=en ")
}

как записывать в сессию ,думаю, ты знаешь

Deathdreams
19.09.2009, 17:45
oldsugar
лучше использовать конструкцию switch-case

m0Hze
19.09.2009, 18:00
oldsugar
лучше использовать конструкцию switch-case
Кто тебе это сказал? :/ Попов?

L I G A
19.09.2009, 18:12
setcookie попробуй.

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

Deathdreams
19.09.2009, 18:16
L I G A
спасибо, Капитан Очевидность.