Проблем с кирилица в база данни

montana

Registered
Значи имам една форма за качване и когато за заглавие се въведе нещо на кирилиза в БД излиза Ð?з обиÑ?ам пеÑ?Ñ?к. И същото като извеждам резултата.
Колацията на таблицата е utf8_general_ci

Ето и файла за връзка с БД:
PHP:
<?php

$DB_username = "8888888";
$DB_password = "888888";
$DB_name = "88888888888";
$DB_hostname = "localhost";

$DBobject = mysql_connect($DB_hostname, $DB_username, $DB_password) or Die("There was a problem connecting to your Database Server");
mysql_query("SET NAMES UTF8");
mysql_select_db($DB_name, $DBobject) or Die("No such Database exist on your server.");

if(!get_magic_quotes_gpc())
{
  $_GET = array_map('mysql_real_escape_string', $_GET); 
  $_POST = array_map('mysql_real_escape_string', $_POST); 
  $_COOKIE = array_map('mysql_real_escape_string', $_COOKIE);
}
else
{  
   $_GET = array_map('stripslashes', $_GET); 
   $_POST = array_map('stripslashes', $_POST); 
   $_COOKIE = array_map('stripslashes', $_COOKIE);
   $_GET = array_map('mysql_real_escape_string', $_GET); 
   $_POST = array_map('mysql_real_escape_string', $_POST); 
   $_COOKIE = array_map('mysql_real_escape_string', $_COOKIE);
}

include("settings.php");

?>


Извеждане:

PHP:
<?php

include("./header.php");

$curid = $cur_image["id"];
$page = "index";
if(isset($_GET["v"]))
$page = mysql_real_escape_string(checkerr($_GET["v"]));

if($empty == 0)
{
	include("./emptywarning.php");
}
else if($page == "submit")
{
	include("./submit.php");
}
else if($page == "contact_us")
{
	include("./contact_us.php");
}
else if($page == "privacy_policy")
{
	include("./privacy_policy.php");
}
else if($page == "terms")
{
	include("./terms.php");
}
else
{

if($page == "index" || $numofimages == 0)
{
	
	
	$forward_image_select = mysql_query("SELECT * FROM `images` WHERE `id` < $curid ORDER BY id DESC LIMIT 1");
	$next_image = mysql_fetch_array($forward_image_select);
	$prev_image = "";
	$prev = "#";
	if(mysql_num_rows($forward_image_select)>0)
	$next = constructLink($next_image['filename'], $property['apache']);
	else
	$next = "#";
}
else
{
	
	$forward_image_select = mysql_query("SELECT * FROM `images` WHERE `id` < $curid ORDER BY id DESC LIMIT 1");
	$next_image = mysql_fetch_array($forward_image_select);
	$backward_image_select = mysql_query("SELECT * FROM `images` WHERE `id` > $curid ORDER BY id ASC LIMIT 1");
	$prev_image = mysql_fetch_array($backward_image_select);
	
	if(mysql_num_rows($forward_image_select)>0)
	{
		$next = constructLink($next_image['filename'], $property['apache']);
	}
	else
	{
		$next = "#";
	}

	if(mysql_num_rows($backward_image_select)>0)
	{
		$prev = constructLink($prev_image['filename'], $property['apache']);
	}
	else
	{
		$prev = "#";
	}
}

if($next == "#" || $prev == "#")
{
mysql_query("SET NAMES utf8");
$randompic = mysql_query("SELECT * FROM images ORDER by RAND() LIMIT 1");
$random_pic = mysql_fetch_array($randompic);
$random_url = constructLink($random_pic['filename'], $property['apache']);
}
?>
<h1><?php echo"{$cur_image['title']}";?></h1>

		<div class="pic rounded-8" style="overflow:hidden;"><div style="margin:0 0 36px 0;overflow:hidden;border:none;height:auto;"><img src='<?php echo "./images/".$cur_image['filename'].".".$cur_image['ext']; 
$viewed = $cur_image['id'];
mysql_query("SET NAMES utf8");
mysql_query("UPDATE `images` SET `views` = `views`+1 WHERE `id`='$viewed'") or die("Couldnt update");

?>' style="max-width:500px;"></div></div>
 
PHP файла (за вкарване в БД и за изкарване) го направи utf - 8 without BOM

Отваряш файла с notepad ++, отиваш на Encoding > utf - 8 without bom


EDIT:

Също така мисля, че се пише:

Мисля, че трябва да има кавички.

PHP:
mysql_query("SET NAMES 'UTF8'");
 
Замени
PHP:
mysql_query("SET NAMES 'UTF8'");

Със:

PHP:
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");
 
Сега трябва да ти работи, когато изпълняваше заявката за чарсета, ти не инициализираше връзката с базата данни + това полетата ти бяха Latin а не utf - 8 general ci
PHP:
$DBobject = mysql_connect($DB_hostname, $DB_username, $DB_password) or Die("There was a problem connecting to your Database Server");
mysql_query("SET NAMES UTF8");
mysql_select_db($DB_name, $DBobject) or Die("No such Database exist on your server.");

Забележи как за селектиране на базата данни задаваш връзката (променливата DBobject), а при mysql_query(); не е задаваш.


ЕДИТ:

А пък и да беше казал, че трябвало да се качат файловете чрез ftp ..
 

Back
Горе