2012-04-17 3 views
1

에 GET 변수를 추가 :PHP 내가이처럼 보이는 링크가있는 페이지가 링크

<a href="http://mysite.com/page.php">...</a> 

나는 또한 변수 GET 할 수 있습니다를 LANG = 현재 URL에 갖추고 있습니다. 수동으로 추가하거나 각 링크에 변수를 추가하지 않고 GET 변수 lang = en을 페이지의 모든 링크에 추가하려면 어떻게합니까? 감사.

+0

"페이지가 있습니다"를 정의하십시오. 그것은 정적 인 페이지처럼 들립니다. – Jon

+1

URL을 생성하는 함수/메소드를 작성해야합니다. – kapa

답변

0

$_SESSION['lang']='en' &로 세션 변수에 도중 LANG =을

파일 및 추가 getenv('lang') 또는 $_ENV['lang']

Refernece

0

으로 검색 (config.php를 가정) 기본적인에 $_ENV['lang'] = 'en' 설정 모든 페이지에서 초기화했습니다.

0

출력 버퍼링이나 Apache 필터를 사용하여 출력을 구문 분석하여 lang 쿼리 문자열 매개 변수를 모든 링크에 자동으로 추가 할 수 있지만 이는 그리 효율적이지 않습니다.

정말로 각 링크에 수동으로 추가하고 싶지 않으면 세션 변수에 저장하는 것이 좋습니다. 그런 다음 페이지의 나머지 부분에서 $_SESSION['lang'] 대신 $_GET['lang']를 사용해야합니다

<?php 
define('DEFAULT_LANG', 'en_GB'); 

session_start(); 

// check if a new lang has been specified. 
if (isset($_GET['lang'])) { 

    // yes, so use the requested lang 
    $_SESSION['lang'] = $_GET['lang']; 

    // otherwise, check if a lang was previously set 
} else if (! isset($_SESSION['lang'])) { 

    // no, so use default lang: 
    $_SESSION['lang'] = DEFAULT_LANG; 

} 
?> 

: 각 페이지의 시작에서

당신이 뭔가를 가질 수있다 (아마도 일반에 스크립트를 포함한다). 또한 요청한 lang이 유효하고 사용 가능한지 확인하기 위해 일종의 유효성 검사를 추가 할 수 있습니다.

+0

변경하기} isset –

+0

아니오 - 첫 번째'isset ($ _ SESSION [ 'lang']) '$ _GET [ 'lang']', 두 번째'$ _SESSION [ 'lang']'을 검사합니다. 의견을 읽으십시오. – megaflop

+0

Oups 내가 tought $ _GET, 미안 해요 : S –

관련 문제