|
|
|
| Возникла проблема... я с формы на сайте добавляю в базу данные в кирилице... например имя:"Сергей", фамилия:"Петрович"... но данные на русском языке в базе не появляются.
проверял на en "Sergey Petrovich", рабатает и если убрать mysql_query("SET NAMES utf8");
работает но выводится кирилица.�����
все страници в utf8
------------------------------------------
в файле .htaccess
AddDefaultCharset charset=utf-8
AddDefaultCharset Off
-----------------------------------------------
с чего начать поиск проблемы не пойму
может база MySQL
define("HOST","localhost");
define("USER","zorgg");
define("PASS","12345");
define("DB","magazin");
$db = mysql_connect (HOST,USER,PASS) or die (mysql_error());
mysql_query("SET NAMES utf8");
mysql_select_db(DB,$db);
|
База
-- phpMyAdmin SQL Dump
-- version 3.2.1
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Окт 07 2011 г., 03:43
-- Версия сервера: 5.0.45
-- Версия PHP: 5.2.4
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- База данных: `magazin`
--
-- --------------------------------------------------------
--
-- Структура таблицы `basket`
--
CREATE TABLE `basket` (
`id` int(11) NOT NULL auto_increment,
`customer` varchar(32) NOT NULL,
`goodsid` int(11) NOT NULL default '0',
`quantity` int(4) NOT NULL default '0',
`datetime` int(11) NOT NULL default '0',
`razmer` varchar(5) NOT NULL,
`cvet` varchar(25) character set utf8 collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=741 ;
--
-- Дамп данных таблицы `basket`
--
INSERT INTO `basket` VALUES(738, 'bba52d3518a68361db4cde6f66cc4099', 199, 1, 1317943352, 'S', 'чорный');
INSERT INTO `basket` VALUES(737, '9b116c4a0dfa6efc4d434d4228dbe83f', 174, 1, 1317943180,
-- --------------------------------------------------------
--
-- Структура таблицы `catalog`
--
CREATE TABLE `catalog` (
`id` int(11) NOT NULL auto_increment,
`author` varchar(50) collate utf8_unicode_ci NOT NULL,
`title` varchar(50) collate utf8_unicode_ci NOT NULL,
`pubyear` int(4) NOT NULL default '0',
`price` int(11) NOT NULL default '0',
`img` varchar(255) collate utf8_unicode_ci NOT NULL,
`cat` int(2) NOT NULL,
`img2` varchar(255) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=204 ;
--
-- Дамп данных таблицы `catalog`
--
INSERT INTO `catalog` VALUES(199, 'bla', 'bla', 2011, 110, 'file/314.png', 1, '');
-- --------------------------------------------------------
--
-- Структура таблицы `comments`
--
CREATE TABLE `comments` (
`id` int(5) NOT NULL auto_increment,
`post` varchar(5) NOT NULL,
`author` varchar(100) NOT NULL,
`text` text NOT NULL,
`date` datetime NOT NULL,
`email` varchar(250) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1214 ;
--
-- Дамп данных таблицы `comments`
--
INSERT INTO `comments` VALUES(1212, '203 ', '', '', '2011-10-07 03:37:49', '');
INSERT INTO `comments` VALUES(1211, '201 ', '', '', '2011-10-07 03:28:28', '');
INSERT INTO `comments` VALUES(1210, '201 ', 'ммм', 'ммм', '2011-10-07 03:27:55', '');
INSERT INTO `comments` VALUES(1209, '201 ', 'ппп', 'пп', '2011-10-07 03:27:22', '');
INSERT INTO `comments` VALUES(1208, '201 ', 'аа', 'ааа', '2011-10-07 03:27:15', '');
INSERT INTO `comments` VALUES(1214, '203 ', 'nn', 'nnnn', '2011-10-07 03:45:03', '');
INSERT INTO `comments` VALUES(1215, '203 ', 'jjjjj', 'jjjj', '2011-10-07 03:45:22', '');
INSERT INTO `comments` VALUES(1213, '203 ', 'мм', 'ммм', '2011-10-07 03:38:03', '');
-- --------------------------------------------------------
|
| |
|
|
|
|
|
|
|
для: zorg84
(07.10.2011 в 03:48)
| | Вообще говоря странно, а версия MySQL-сервера какая? | |
|
|
|
|
|
|
|
для: cheops
(07.10.2011 в 09:57)
| | MySql 5.0.45
всё передаётся через ajax может в этом причина | |
|
|
|
|
|
|
|
для: zorg84
(07.10.2011 в 22:43)
| |
$("#send").click(function(){
var author = $("#author").val();
var message = $("#message").val();
var id = $("#id").val();
var time = new Date ();
var AddZero = new Function ('x', "if (x < 10) x = '0' + x; return x");
var min = AddZero (time.getMinutes ()),
cha = AddZero (time.getHours ()),
den = AddZero (time.getDate ()),
mes = AddZero (time.getMonth () + 1);
var date = time.getFullYear () + '-' + mes + '-' + den + ' ' + cha + ':' + min;
$.ajax({
type: "POST",
url: "coment.php",
data: {"author": author, "id": id, "message": message},
cache: false,
success: function(response){
var messageResp = new Array("Ваше сообщение отправлено "+author+"",'Сообщение не отправлено Ошибка базы данных','Нельзя отправлять пустые сообщения');
var resultStat = messageResp[Number(response)];
if(response == 0){
$("#author").val("");
$("#message").val("");
$("#commentBlock").append("<div class='comment'>Комментарий добавил(а): <strong>"+author+"</strong><br>Дата: <strong>"+date+"</strong><br><br>"+message+"</div>");
}
else{
var resul = "Слишком длинное слово "+author+" ";
$("#resp").text(resul).show().delay(1500).fadeOut(800);
}
$("#resp").text(resultStat).show().delay(1500).fadeOut(800);
}
});
return false;
});
});
|
<?php
$query3 = "SELECT *, DATE_FORMAT(date,'%Y-%m-%d %H:%i') as eurodate FROM comments WHERE post='$id'";
$result3 = mysql_query("$query3") or die(mysql_error());
if (mysql_num_rows($result3) > 0)
{
while ($myrow3 = mysql_fetch_assoc($result3)) {
?>
<div class="comment"><p class='post_comment_add'>Комментарий добавил(а): <strong><?php echo $myrow3["author"]; ?></strong><br>
Дата: <strong><?php echo $myrow3["eurodate"]; ?></strong></p>
<p><?php echo $myrow3["text"]; ?></p></div>
<?php
}
}
?>
</div>
<span id="res"><div id="resp" style="border:solid black"></div></span>
<form action="coment.php" method="post" name="form">
<p>
Автор:<br>
<input name="author" type="text" id="author">
</p>
<p>
Текст сообщения:<br>
<textarea name="message" rows="5" cols="50" id="message"></textarea>
</p>
<input name="js" type="hidden" value="no" id="js">
<p>
<input name="id" type="hidden" id="id" value="<? echo $id; ?> ">
<input name="button" type="submit" value="Отправить" id="send">
</p>
</form>
|
<?php include ("blocks/bd.php");
header('Content-Type: text/html; charset=utf-8');
//**********************************************
if(empty($_POST['js'])){
$mas=explode(" ",$_POST['message']);
foreach($mas as $index => $val)
{
if (strlen($val)>25)
{
exit("Слишком длинные слова в тексте сообщения!");
break;
}
}
if($_POST['message'] != '' && $_POST['author'] != ''){
if (isset($_POST['id'])){$id = $_POST['id'];}
$author = @iconv("UTF-8", "windows-1251", $_POST['author']);
$author = addslashes($author);
$author = htmlspecialchars($author);
$author = stripslashes($author);
$author = mysql_real_escape_string($author);
$text = @iconv("UTF-8", "windows-1251", $_POST['message']);
$text = addslashes($text);
$text = htmlspecialchars($text);
$text = stripslashes($text);
$text = mysql_real_escape_string($text);
$date = date("Y-m-d H:i:s");
$result = mysql_query("INSERT INTO comments (post,author,text,date) VALUES ('$id','$author','$text','$date')");
if($result == true){
echo 0; //Ваше сообшение успешно отправлено
}else{
echo 1; //Сообщение не отправлено. Ошибка базы данных
}
}else{
echo 2; //Нельзя отправлять пустые сообщения
}
}
//**************************************** Если отключен JavaScript ************************************
if($_POST['js'] == 'no'){
if (isset($_POST['id'])){$id = $_POST['id'];}
if($_POST['message'] != '' && $_POST['author'] != ''){
$author = $_POST['author'];
$author = addslashes($author);
$author = htmlspecialchars($author);
$author = stripslashes($author);
$author = mysql_real_escape_string($author);
$text = $_POST['message'];
$text = addslashes($text);
$text = htmlspecialchars($text);
$text = stripslashes($text);
$text = mysql_real_escape_string($text);
$date = date("Y-m-d");
$result = mysql_query("INSERT INTO comments (post,author,text,date) VALUES ('$id','$author','$text','$date')",$db);
if($result == true){
echo "Ваше сообшение успешно отправлено"; //Ваше сообшение успешно отправлено
}else{
echo "Сообщение не отправлено. Ошибка базы данных"; //Сообщение не отправлено. Ошибка базы данных
}
}else{
echo "Нельзя отправлять пустые сообщения"; //Нельзя отправлять пустые сообщения
}
}
?>
|
| |
|
|
|
|
|
|
|
для: zorg84
(07.10.2011 в 23:00)
| | попробуйте обработать данные функцией encodeURI()
data: {"author": encodeURI(author), "id": id, "message": encodeURI(message) },
|
| |
|
|
|
|
|
|
|
для: Slo_Nik
(07.10.2011 в 23:12)
| | попробую | |
|
|
|
|
|
|
|
для: zorg84
(07.10.2011 в 23:17)
| | добавилось но кириллица отображается
Комментарий добавил(а): %D0%BC%D0%BC%D0%BC
Дата: 2011-10-07 23:18
%D0%BC%D0%BC%D0%BC
|
и в базе также | |
|
|
|
|
|
|
|
для: zorg84
(07.10.2011 в 23:21)
| | просьба к модератора перенести тему в HTML+CSS+JavaScriptтак-как проблема в ajex | |
|
|
|
|
|
|
|
для: zorg84
(08.10.2011 в 00:12)
| | сделал так заработало, но почему так работает, а в файле bd не работает
$query3 = "SELECT *, DATE_FORMAT(date,'%Y-%m-%d %H:%i') as eurodate FROM comments WHERE post='$id'";
//**********************
mysql_query("SET NAMES utf8");
//***********************
$result3 = mysql_query("$query3") or die(mysql_error());
|
| |
|
|
|
|