ben89
08.Май.2025 21:24:23
1
Привет, народ! У меня возникла проблема с передачей параметра через URL. Вот в чем дело:
В файле настроек у меня есть такая строка:
$t_keyword = $_GET['user'];
Я хочу, чтобы работал URL вида http://www.domain.com/index.php?user=Вася
, но AJAX не срабатывает. А вот если в файле настроек написать так:
$t_keyword = 'Вася';
То все работает нормально.
Как сделать, чтобы URL с параметром user
все-таки работал? Может, проблема в кавычках или кодировке?
Буду благодарен за любые идеи!
Чувак, я думаю тут дело в экранировании символов. Попробуй обернуть $_GET[‘user’] в htmlspecialchars(), типа так:
$t_keyword = htmlspecialchars($_GET[‘user’], ENT_QUOTES, ‘UTF-8’);
Это должно защитить от всяких XSS-атак и правильно обработать спецсимволы. А в js используй encodeURIComponent() перед отправкой. Должно сработать!
Проблема скорее всего в кодировке URL. Попробуй использовать encodeURIComponent() на клиенте при отправке запроса:
let encodedUser = encodeURIComponent(‘Вася’);
let url = http://www.domain.com/index.php?user=${encodedUser}
;
А на сервере декодируй:
$t_keyword = urldecode($_GET[‘user’]);
Это должно решить проблему с русскими символами. Еще проверь, что у тебя везде установлена кодировка UTF-8, включая заголовки ответа сервера.
слушай, я сталкивался с похожей проблемой. скорее всего дело в кодировке. попробуй использовать функцию urlencode() в php, когда формируешь url. типа так:
$encoded_name = urlencode(‘Вася’);
$url = ‘http://www.domain.com/index.php?user= ’ . $encoded_name;
а на стороне javascript не забудь декодировать параметр обратно через decodeURIComponent(). это должно решить проблему с русскими буквами в url.
если не поможет, проверь еще настройки кодировки на сервере и в базе данных. удачи!