Код (Text): <form name="searchform" onSubmit="if(document.searchform.search.value==''){alert('<?=$lang[SearchEmpty]?>');return false;}" method="GET" action="<?=$web_path;?>index.php"> <?php if(isset($_REQUEST['submit'])) { $tagsearch = strip_tags($search); $tagsearch = htmlentities($tagsearch); if(strlen($tagsearch)>3) { mysql_query("INSERT INTO `tags` VALUES ('', '$tagsearch','$date')"); } } ?> <input type="text" name="search" value="<?php echo "$search"; ?>"> <input type="submit" name="submit" value="<?=$lang[Search]?>"> <input type="hidden" name="page" value="1"> <input type="hidden" name="changeurl" value="1"> </form> Я так поинмаю - что эта штука записывает в бд MySQL тэги которые пользователь ввел в форму поиска, но в БД пишет в виде таких вот "???" и прочие знаки (но токо русский язык, с латиницей все норма), соответсвенно из бд берет такие же символы, как сделать чтоб в бд писалось в UTF8. Сама база в Utf8 и кодировка страниц тоже UTF-8. Помогите пожалуйста!
1) убрать кашу в голове и понять, в чем причина - html, php, mysql 2) http://php.ru/forum/viewtopic.php?t=10103
Дак я и пытаюсь её самую убрать. Вот здесь приказал писать в ЮТФ Код (Text): $this->connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS) or die(mysql_error()); mysql_query("SET NAMES 'utf8';"); mysql_select_db(DB_NAME, $this->connection) or die(mysql_error()); База В UTF, по запросу например: "Михей" - в базу прописывает мÐ&c
Код (Text): <?php include "session.php"; ?> <link rel="stylesheet" href="<?=$web_path?>css/music.css" media="screen,projection" type="text/css" /> <div align="center"> <div class="tag-box"> <b>Recent Searches:</b> <?php if($type=="lyrics") { $type = "lyrics"; } elseif($type=="video") { $type = "video"; } else { $type = "mp3"; } $q4 = mysql_query("SELECT * FROM tags ORDER by id DESC LIMIT 25"); $i = 1; while($tags = mysql_fetch_array($q4)) { $tag = $tags[tag]; $tag = str_replace(" ","-",$tag); if(($type=="lyrics")||($type=="video")) { $tag = str_replace("-","+",$tag); } $tag_name = $tags[tag]; $tag_name = ucwords($tag_name); $count = $i++; if(($count==1) || ($count==5) || ($count==10) || ($count==15) || ($count==20)) { $class = "style1"; } elseif(($count==3) || ($count==9) || ($count==14) || ($count==16) || ($count==18)) { $class = "style2"; } elseif(($count==2) || ($count==7) || ($count==12) || ($count==17) || ($count==19)) { $class = "style3"; } elseif(($count==4) || ($count==11) || ($count==13) || ($count==6) || ($count==15)) { $class = "style4"; } ?> вот так выводит на страницу! дак он в базу уже коряво пишет? соответственно читает так же, разве нет?
при чтении попробуй после открытия мускуль-коннекции также выполнить mysql_query("SET NAMES 'utf8';");
Юзаю вот такой вот конфиг: config.inc Код (Text): /* * The basic functions for work with a database */ global $work; // при тестировании - false, при работе - true $work=false; // при тестировании - false, при работе - true // *** Conclusion of messages during the test and during work ini_set ('display_errors', 1); // при тестировани - 1, при работе - 0 ini_set ('display_startup_errors', 1); // при тестировани - 1, при работе - 0 ini_set ('log_errors', 1); // всегда 1. Читайте логи Апача, там будут копиться ПХП-ошибки!!! error_reporting(E_ALL); if(version_compare(phpversion(), "5.0.0", ">")==1) { ini_set("error_reporting", E_ALL | E_STRICT); } else { ini_set("error_reporting", E_ALL); } // *** function open_database($work) { if($work==false) // test mode { $link=mysql_pconnect('localhost', 'login', 'pass') or die ("Could not connect to MySQL (1); ".mysql_errno()." : ".mysql_error()." \n "); mysql_select_db('db', $link) or die ("Could not select database (2); ".mysql_errno()." : ".mysql_error()." \n "); } else // work mode { $link=mysql_pconnect('localhost', 'login', 'pass') or die ("Could not connect to MySQL (1);"); mysql_select_db('db', $link) or die ("Could not select database (2);"); } //////////// ** We establish the coding for correct display in a database and at the client mysql_query("set character_set_client='cp1251'",$link); mysql_query("set character_set_results='cp1251'",$link); mysql_query("set collation_connection='cp1251_general_ci'",$link); //////////// ** return $link; } function close_database($link) { mysql_close($link); } там есть "выравнивание" кодировки