|
|
|
| Всем привет. Столкнулся с такой проблемой. Постом отправляю данные и в обработчике я перевожу utf-8 в windows-1251. После чего пишу в БД. База создана в кодировке cp1251, сайт тоже в кодировке windows-1251. Приведу код обработчика:
$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);
$text = htmlspecialchars($_POST['text']);
include("config.php");
$param1 = iconv("utf-8", "windows-1251", $name);
$param2 = iconv("utf-8", "windows-1251", $email);
$param3 = iconv("utf-8", "windows-1251", $text);
mysql_query("INSERT INTO reviews SET name=".$param1.", email=2, text=3, date=NOW(), view=0");
|
Код конфига:
define('SLMySqlHostName', 'localhost');
define('SLMySqlUser', 'ххх');
define('SLMySqlPassword', 'ххх');
define('SLMySqlDBName', 'хххх');
mysql_connect(SLMySqlHostName, SLMySqlUser, SLMySqlPassword) or die ("Соединиться с сервером не вышло: ".mysql_error());
mysql_query("SET NAMES cp1251");
mysql_select_db(SLMySqlDBName) or die ('Не получается соединиться с базой данных: ' . mysql_error());
|
Если попробовать вывести
echo iconv("utf-8", "windows-1251", $name);
|
на страницу - вывод осуществляется и на русс, и на енгл раскладке.
В БД не хочет писать :(
Где же тогда собака зарыта? Прошу помощи.
п.с. данные через аякс шлю | |
|
|
|
|
|
|
|
для: TetRiska
(13.06.2010 в 15:42)
| | а почему name=".$param1." а email и text - 2 и 3 соответственно? может надо $param2 и $param3 ? | |
|
|
|
|
|
|
|
для: bab-nike
(13.06.2010 в 16:13)
| | разницы нет допишу ли я далее или так | |
|
|
|
|
|
|
|
для: TetRiska
(13.06.2010 в 15:42)
| | Не пробовали выводить текст запроса перед тем, как пытаться его исполнить?
Ну или на худой конец, после того, как. | |
|
|
|
|
|
|
|
для: Trianon
(13.06.2010 в 16:29)
| | пробовал выводить
в поле name ввел слово тест и вывел, чтобы посмотреть что же в запрос оно запихнет
echo ("INSERT INTO reviews SET name=".$param1.", email=2, text=3, date=NOW(), view=0");
|
далее вывело
INSERT INTO reviews SET name=тест, email=2, text=3, date=NOW(), view=0
|
| |
|
|
|
|
|
|
|
для: Trianon
(13.06.2010 в 16:29)
| | п.с
ввел в первое поле test
ввел во второе поле mail@mail.ru
ввел в третье поле privet
после ИНСЕРТА прописал
вывело такую ошибку
Unknown column 'test' in 'field list'
|
| |
|
|
|
|
|
|
|
для: TetRiska
(13.06.2010 в 17:16)
| | А кто будет экранировать данные? А кавычки ставить в запросах? | |
|
|
|
|
|
|
|
для: neadekvat
(13.06.2010 в 17:22)
| | благодарю, блин затупил на такой мелочи
mysql_query("INSERT INTO reviews SET name='".$param1."', email=2, text=3, date=NOW(), view=0");
|
| |
|
|
|
|
|
|
|
для: TetRiska
(13.06.2010 в 17:16)
| | а всё же?
echo текст_запроса? | |
|
|
|
|
|
|
|
для: Trianon
(13.06.2010 в 17:27)
| | mysql_error() | |
|
|
|