나는 PHP & mysql을 사용하여 다국어 웹을 코딩했습니다. 이제 언어 선택기가 쿠키을 기반으로하기 때문에 (주로 로봇, 서재 및 검색 엔진) 문제가 발생했습니다. 지금 작동하는 방법다국어 웹 : php + mysql + cookies
: 사용자 =>의 index.php :
function cookies() {
if (!isset($_COOKIE["lang"])){
setcookie('lang','ukr', time()+(60*60*24*31));
header('Location: index.php');
}};
하고 기능과 함께하기 위해 필요한 모든 장소에 선택한 언어를 출력 :
function catSet($source, $link, $item){
$item .= '_'. $_COOKIE['lang'];
global $connection;
$link = mysqli_real_escape_string($connection, $link);
$result = mysqli_query($connection, "SELECT * FROM $source WHERE link_item = '". $link ."'");
if (!$result) { die("DB Query failed: " . mysql_error()); }
while ($row = mysqli_fetch_array ($result)) {
echo $row[$item]; }}
은 내가 지금 원하는 것은 로봇 및 검색 엔진에서 읽을 수있는 사용자 선택에 따라 $item .= '_'. $_COOKIE['lang'];
을 상수으로 바꿔야하므로 쿠키이 아니어야합니다.
을 사용하고 싶지 않습니다. 세션이 만료 될 때마다 사용자가 언어를 다시 선택해야하기 때문입니다.
AFAIK 브라우저 언어를 감지하여 기본값으로 설정할 방법이 없습니다.
변수 대신 [GET] 변수를 사용하여 다른 페이지로 전달할 때마다 다음에 시간이 돌아 오면이 [GET] 데이터를 저장하는 방법 (세션과 동일한 문제)을 전달하는 방법을 참조하십시오.
나는 어떤 아이디어와 당신은 여전히 사용자의 결정을 저장하기 위해 쿠키를 사용할 수 있습니다 :
이렇게하면 나는/다른 경우에'(! isset ($ _ COOKIE [ "lang"])))'를 확인해야합니다. 사용자가 처음으로 페이지를 볼 때, 기본 lang = 'eng'라고 말하며, 사용자가 lang을 변경하면 다음에 쿠키를 읽고 선택한 lang을 제공합니다. 그러나! 로봇은 쿠키를 사용하지 않습니다. 즉, 항상 기본 lang 만 보입니다. – A1exandr
@ A1exandr 내가 말했듯이 get 값이 설정되면 사용자를 리디렉션하고 쿠키를 무시합니다. 또한 변수를 얻는 웹 페이지 사용의 모든 링크에서. 예 : 들어오는 링크에 lang = en이 있으면 웹 사이트의 모든 링크에 lang = en이 추가됩니다. –
당신을 이해합니다. 그러나 get의 값이 default로 설정되면 어떨까요? 로봇이 다른 언어를 통해 기어 다니겠습니까?! – A1exandr