Для большинства моих сценариев я включаю файл, в котором я подключаюсь к базе данных, проверяю, установлены ли определенные переменные сеанса и т. Д. В сценарии я использую следующий код:
mysql_query("SET NAMES 'UTF8'");
mysql_query("SET CHARSET 'UTF8'");
Теперь проблема в том, что когда кто-то отправляет что-то в японских символах или эквивалентном ему, он просто превращается в вопросительные знаки. Тем не менее, когда я использую SET NAMES и SET CHARSET в самом скрипте, откуда пользователи делают представления или правки, все работает нормально. Почему это не работает из включенного скрипта? Я хотел бы просто запросить один файл, в котором доступен весь необходимый код для большинства страниц.
Я использую PHP 4.4.9 с MySQL 4.1.22. К сожалению, я могу НЕ обновить версии, так как я не являюсь администратором сервера, и администратор фактически потерял пароль root, поэтому я застрял с этими версиями.
Вот весь код
<?
session_start();
header('Content-Type: text/html; charset=UTF-8');
require 'dbconnect.php'; // Only contains mysql_select_db and mysql_connect
mysql_query("SET NAMES 'UTF8'");
mysql_query("SET CHARSET 'UTF8'");
if(!isset($_SESSION['Username'])){
header('Location: /logout.php');
}
if(isset($_SESSION['Username'])){
$Userexists = mysql_query("SELECT * FROM `users` WHERE `Username`='".$_SESSION['Username']."'");
$Userexists = mysql_num_rows($Userexists);
if ($Userexists == 0){
header('Location: /logout.php');
}
}
?>