[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Маленький обработчик запроса для Ajax
Kumirska
Добрый вечер! Всех с праздником!
В общем суть вопроса проста, нужен совет или оценка написанного мною кода.
На сайте будут кнопочки для смены языка, вот для примера:

function changeLang(a){
var full_link = window.location;
var b = '[[SessionInfo]]';
$.ajax({
type: "POST",
url: "assets/snippets/pageexists/page_exists.php",
data: "this_link="+full_link+"&this_lang="+b+"&to_lang="+a,
success: function(msg){
document.location.href = msg;
//alert(msg);
}
}
);
}

        <input type="button" value="Перейти на en" onclick="changeLang('en')"><br />
<input
type="button" value="Перейти на ru" onclick="changeLang('ru')"><br />
<input
type="button" value="Перейти на ch" onclick="changeLang('ch')"><br />

А вот сам обработчик на page_exists.php:

<?php
//---Приходящие значения (Ajax):
//&this_link - ссылка с места запроса смены языка (пример ссылки: http://bsg.do/ru/about.html);
//&to_lang - какой язык нужен (пример значения: en);
//&this_lang - какой сейчас установлен язык (пример значения: ru);
//---Variables
//$url = &this_link
//$this_lang = &this_lang;
//$to_lang = &to_lang;
//$new_link - ссылка, с измененным значением (../ru/..=>../en/..);
//$simple_arr - массив с разбитой на массив ссылкой
//$simple_link - запасная ссылка в корень нужного языка(http://bsg.do/ch)
//$handle - проверка на доступность новой ссылки (на случай, если на другом языке такой страницы нет);
//
//

if($_POST['this_link'] and $_POST['to_lang'] and $_POST['this_lang']){
$url = $_POST['this_link'];
$this_lang = $_POST['this_lang'];
$to_lang = $_POST['to_lang'];
}else{
echo "Error. Some variables is undefined";
exit;
}
//Меняем язык в ссылке (http://bsg.do/ru/about.html => http://bsg.do/en/about.html)
$new_link = str_replace("/".$this_lang."/","/".$to_lang."/",$url);
//Делаем запасную ссылку, на случай, если такой страницы не будет, редирект на index стр.нужного языка
$simple_arr = parse_url($url);
$simple_link = "http://".$simple_arr['host']."/".$to_lang."/index.html";
//Проверяем, есть ли такая ссылка (404.html включена)
$handle = @fopen($new_link,'r');
if($handle !== false){
echo $new_link;
}else{
echo $simple_link;
}
?>

Код работает безотказно. Меня интересует, корректен ли он в плане безопасности, я просто не работал с ajax, можно сказать это дебют =)

_____________
никому не дано знать абсолютной истины, ибо понятия, которыми мы оперируем, сами по себе относительны
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.