проблема с кодировкой php, mysql

ecspl01t

Новичок
Здравствуйте.
Проблема заключается в кодировке комментариев. Сайт сам по себе на кодировке cp1251, форма комментариев на utf8. Что-то я не знаю как правильно выразится, расскажу сам процесс...
То есть когда я добавляю заявку/комментарий он сразу показывает его в cp1251 без обновление страницы (скрин1- слева), после обновление страницы я вижу уже кодировку в utf8(скрин1-справа), если зайди в phpmyadmin после добавление комментария то мы увидим (скрин 2) иероглифы, не зависимо от кодировки.
Я так понял, что отправка комментария сама по себе кривая, отсылает из php в mysql в utf8.
Сам вопрос, как сделать так, чтобы отсылал в cp1251?

http://upyourpic.org/images/201204/px3e1tdt1a.png -скрин1
http://upyourpic.org/images/201204/kjzdmhfrgr.png -скрин2

comment.class.php
Код:
<?php  
class Comment
{
	private $data = array();
	
	public function __construct($row)
	{
		/*
		/	Конструктор
		*/
		
		$this->data = $row;
	}
	
	public function markup()
	{
		/*
		/	Данный метод выводит разметку XHTML для комментария
		*/
		
		// Устанавливаем псевдоним, чтобы не писать каждый раз $this->data:
		$d = &$this->data;
		
		$link_open = '';
		$link_close = '';
		
		if($d['url']){
			
			// Если был введн URL при добавлении комментария,
			// определяем открывающий и закрывающий теги ссылки
			
			//$link_open = '<a href="'.$d['url'].'">';
			//$link_close =  '</a>';
		}
		$sostav = '<b>СоставЫЫЫasdddd:</b>';
		// Преобразуем время в формат UNIX:
		$d['dt'] = strtotime($d['dt']);
		
		// Нужно для установки изображения по умолчанию:
		$url = 'http://'.dirname($_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]).'/img/default_avatar.gif';
		
		return '
		
			<div class="comment">
				<div class="avatar">
					'.$link_open.'
					<img src="http://cup.acantari.org.ua/images/default_avatar.gif" />
					'.$link_close.'
				</div>
				
				<div class="name"><b>Название команды:</b> '.$link_open.$d['name'].$link_close.'</div>
				<div class="sostav">'.$sostav.$link_open.$d['sostav'].$link_close.'</div><br>
				<div class="contact"><b>Контакты:</b>'.$link_open.$d['contact'].$link_close.'</div>
				<div class="date" title="Added at '.date('H:i \o\n d M Y',$d['dt']).'">'.date('d M Y',$d['dt']).'</div>
				<p>'.$d['conntact'].'</p>
			</div>
		';
	}
	
	public static function validate(&$arr)
	{
		/*
		/	Данный метод используется для проверки данных отправляемых через AJAX.
		/
		/	Он возвращает true/false в зависимости от правильности данных, и наполняет
		/	массив $arr, который преается как параметр либо данными либо сообщением об ошибке.
		*/
		
		$errors = array();
		$data	= array();
		
		// Используем функцию filter_input, введенную в PHP 5.2.0
		
		if(!($data['sostav'] = filter_input(INPUT_POST,'sostav',FILTER_CALLBACK,array('options'=>'Comment::validate_text'))))
		{
			$errors['sostav'] = 'Пожалуйста, введите полный Состав.';
		}
		if(!($data['pravila'] = filter_input(INPUT_POST,'pravila',FILTER_CALLBACK,array('options'=>'Comment::validate_text'))))
		{
			$errors['pravila'] = 'Пожалуйста, выберете да/нет.';
		}
	
		
		// Используем фильтр с возвратной функцией:
		
		if(!($data['contact'] = filter_input(INPUT_POST,'contact',FILTER_CALLBACK,array('options'=>'Comment::validate_text'))))
		{
			$errors['contact'] = 'Пожалуйста, введите контакты.';
		}
		
		if(!($data['name'] = filter_input(INPUT_POST,'name',FILTER_CALLBACK,array('options'=>'Comment::validate_text'))))
		{
			$errors['name'] = 'Пожалуйста, введите название команды.';
		}
		
		if(!empty($errors)){
			
			// Если есть ошибки, копируем массив $errors в $arr:
			
			$arr = $errors;
			return false;
		}
		
		// Если данные введены правильно, подчищаем данные и копируем их в $arr:
		
		foreach($data as $k=>$v){
			$arr[$k] = mysql_real_escape_string($v);
		}
		
		// email дожен быть в нижнем регистре:
		
		$arr['sostav'] = strtolower(trim($arr['sostav']));
		
		return true;
		
	}

	private static function validate_text($str)
	{
		/*
		/	Данный метод используется как FILTER_CALLBACK
		*/
		
		if(mb_strlen($str)<1)
			return false;
		
		// Кодируем все специальные символы html (<, >, ", & .. etc) и преобразуем
		// символ новой строки в тег <br>:
		
		
		
		// Удаляем все оставщиеся символы новой строки
		$str = str_replace(array(chr(10),chr(13)),'',$str);
		
		return $str;
	}

}

?>
submit.php
Код:
<?php

// Сообщение об ошибке:
error_reporting(E_ALL^E_NOTICE);

include "connect.php";
include "comment.class.php";

/*
/	Данный массив будет наполняться либо данными,
/	которые передаются в скрипт,
/	либо сообщениями об ошибке.
/*/

$arr = array();
$validates = Comment::validate($arr);

if($validates)
{
	/* Все в порядке, вставляем данные в базу: */

	mysql_query("INSERT INTO comments(name,sostav,pravila,contact)
					VALUES (
						'".$arr['name']."',
						'".$arr['sostav']."',
						'".$arr['pravila']."',
						'".$arr['contact']."'
					)");
	
	$arr['dt'] = date('r',time());
	$arr['id'] = mysql_insert_id();
	
	/*
	/	Данные в $arr подготовлены для запроса mysql,
	/	но нам нужно делать вывод на экран, поэтому 
	/	готовим все элементы в массиве:
	/*/
	
	$arr = array_map('stripslashes',$arr);
	
	$insertedComment = new Comment($arr);

	/* Вывод разметки только-что вставленного комментария: */

	echo json_encode(array('status'=>1,'html'=>$insertedComment->markup()));

}
else
{
	/* Вывод сообщений об ошибке */
	echo '{"status":0,"errors":'.json_encode($arr).'}';
}

?>
connect.php
Код:
<?php

/* Конфигурация базы данных */

$db_host		= 'localhost';
$db_user		= 'root';
$db_pass		= '************';
$db_database	= 'fastcup'; 

/* Конец секции */


$link = @mysql_connect($db_host,$db_user,$db_pass) or die('Не могу установить соединение с базой данных');

mysql_query ("set character_set_client='cp1251'"); 
mysql_query ("set character_set_results='cp1251'"); 
mysql_query ("set collation_connection='cp1251_general_ci'");  
mysql_select_db($db_database,$link);

?>
 
Сверху