Установка MySQL charset из включенного файла не работает - PullRequest
0 голосов
/ 24 января 2011

Для большинства моих сценариев я включаю файл, в котором я подключаюсь к базе данных, проверяю, установлены ли определенные переменные сеанса и т. Д. В сценарии я использую следующий код:

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');
  }
}
?>
...