Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: на срабатывает кириллица при запись данных в ДБ
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » на срабатывает кириллица при запись данных в ДБ

Страниц (1): [1]
 

1. mr.8pa4 - 28 Января, 2012 - 21:08:14 - перейти к сообщению
Помогите пожалуйста
есть модуль интересов ...
у него беда в том что он не хочет ни в какую кириллицу вносить ДБ
как я понял по коду (могу ошибаться) , за занос в БД TEXT отвечает вот эта часть кода

PHP:
скопировать код в буфер обмена
  1. /* INTERES ================================================================ start */
  2.         $gallinteres = $row['interes'];
  3.         list($job,$interes,$music,$movie,$tv,$books,$games) = explode("|",$gallinteres);
  4.        
  5.         function editinter($victima, $fist){
  6.                 global $db;
  7.                 if(! preg_match( "/^([a-zA-Z]|[0-9]|&|,|-| |[а-яА-Я])*$/", trim($victima )))  {
  8.                         return $fist;
  9.                 } else {
  10.                         $victima = $db->safesql( htmlspecialchars( strip_tags( stripslashes( trim( $victima ) ) ) ) );
  11.                         $victima = ucwords(strtolower($victima));
  12.                         $victima = explode(", ",$victima);
  13.                         $victima = array_unique($victima);
  14.                         $victima = implode(", ",$victima);
  15.                         return $victima;
  16.                 }
  17.         }
  18.         $allinteres_new = editinter($_POST['interes'], $interes) . "|" .
  19.         $new_job = editinter($_POST['job'], $job) . "|" .
  20.         $new_music = editinter($_POST['music'], $music) . "|" .
  21.         $new_movie = editinter($_POST['movie'], $movie) . "|" .
  22.         $new_tv = editinter($_POST['tv'], $tv) . "|" .
  23.         $new_books = editinter($_POST['books'], $books) . "|" .
  24.         $new_games = editinter($_POST['games'], $games);
  25. /* INTERES ================================================================ end */
2. Panoptik - 28 Января, 2012 - 21:20:59 - перейти к сообщению
думаю всё дело в кодировке. нужно посмотреть в какой кодировке файл, сервер и БД - должны быть все в одной
3. mr.8pa4 - 28 Января, 2012 - 21:25:25 - перейти к сообщению
я файлы в Notepad++ перевёл в Utf 8 (без BOM) БД тоже Utf 8


CREATE TABLE IF NOT EXISTS `dle_users_interes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL DEFAULT '0',
`inter` varchar(100) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
KEY `inter` (`inter`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=202 ;
4. Panoptik - 28 Января, 2012 - 21:29:36 - перейти к сообщению
сервер в какой кодировке работает?
если не знаете, добавьте в корень сайта файл .htaccess со следующим содержимым:
CODE (htmlphp):
скопировать код в буфер обмена
  1. AddDefaultCharset utf-8

(Добавление)
и еще перед выполнением запросов в БД сделайте следующий запрос:
5. mr.8pa4 - 28 Января, 2012 - 21:33:12 - перейти к сообщению
Сервер в UTF 8

не понял а куда именно добавить (SET NAMES utf8)
6. Panoptik - 28 Января, 2012 - 21:35:14 - перейти к сообщению
перед всеми запросами после подключения к бд напишите просто
7. mr.8pa4 - 28 Января, 2012 - 21:50:56 - перейти к сообщению
Дурдом )))
записывает кириллицу .... но,
не все буквы ... к примеру если в слове есть ы,ц или у то слово в ДБ не заносит ....

я ещё не все символы проверил

 

Powered by ExBB FM 1.0 RC1