Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   как создать привязку,сессию куков к странице ? (https://forum.antichat.xyz/showthread.php?t=142364)

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

PHP код:

<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
ты думаешь установил куки и всё?
их проверять надо.

PHP код:

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

Цитата:

Сообщение от Deathdreams
oldsugar
лучше использовать конструкцию switch-case

Кто тебе это сказал? :/ Попов?

L I G A 19.09.2009 18:12

Цитата:

Сообщение от Deathdreams
setcookie попробуй.

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

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


Время: 05:10