20 行
832 B
PHP
20 行
832 B
PHP
<?php
|
|
session_start();
|
|
$lang = trim($_GET['lang'] ?? '');
|
|
$allowed = ['zh_CN', 'en_US'];
|
|
if ($lang !== '' && in_array($lang, $allowed, true)) {
|
|
$_SESSION['lang'] = $lang;
|
|
setcookie('fnw_lang', $lang, time() + 31536000, '/');
|
|
}
|
|
$ref = $_SERVER['HTTP_REFERER'] ?? '';
|
|
$scheme = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? '' : '';
|
|
$host = parse_url($scheme . ($_SERVER['HTTP_HOST'] ?? 'localhost'), PHP_URL_HOST);
|
|
$refHost = $ref !== '' ? parse_url($ref, PHP_URL_HOST) : '';
|
|
$refPath = $ref !== '' ? (parse_url($ref, PHP_URL_PATH) ?: '') : '';
|
|
if ($refHost !== $host || $refPath === '' || $refPath === '/') {
|
|
$scriptDir = dirname($_SERVER['REQUEST_URI'] ?? '/');
|
|
$ref = ($scriptDir === '/' || $scriptDir === '\\') ? '/' : rtrim($scriptDir, '/') . '/';
|
|
}
|
|
header('Location: ' . $ref, true, 302);
|
|
exit;
|