Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2011, 20:13   #1
Seran4ek
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 94
Смущение слетает кодировка при AJAX-запросе

добрый вечер
пишу небольшое приложение

с 1й страницы выполняется ajax запрос на страницу edit.php и пересылаются 3 значения.
скрипт edit.php обновляет данные в таблице.

все в utf-8.
данные в таблицу сохраняются нормально, считываются нормально
НО!
я пытаюсь сразу же использовать одно из пришедших значений без записи в таблицу(переименовываю файл)
но при этом файл переименовывается в фывфыв такие кракозябры. Но в базу они пишутся и считываются вполне нормально

как мне быть?

PHP код:
if (isset($_POST['name'])&&isset($_POST['descr'])&&isset($_POST['img_id'])&&isset($_POST['oldname'])):
    
$descr mysql_real_escape_string($_POST['descr']);
    
$name mysql_real_escape_string($_POST['name']);
    
$oldname mysql_real_escape_string($_POST['oldname']);
    
$query "UPDATE `images`  
            SET    `description` = '
{$descr}', `name` = '{$name}'
            WHERE `img_id` = '
{$_POST['img_id']}' LIMIT 1";
    @
mysql_query($query$con) or die(mysql_error()); 
    print 
"$oldname";
    print 
"$name";
    
rename("../image/".$oldname,"../image/".$name); 
print "$oldname";
print "$name";
сделал чтобы на странице ответ получать
в итоге переименовывает в кракозябры(а потом тупо не может найти)
а в базе все нормально и считанные имена корректны



ЗЫ: если запускаю в фаерфоксе - то ответ с принта идет нормальный, но переименовывает все равно в какое-то непонятное

вот скрины
1) фаерфокс http://clip2net.com/s/1ffxi
2) хром http://clip2net.com/s/1ffzl (в базе все норм - три.jpg)

что за беда - не пойму

UPD:
что-то я ступил, насколько я вижу, то даже код
Код:
$x = 'строка';
rename("/1.txt",$x);
переименовывает в кракозябры.

а как же быть с возвращаемым значением?
почему фаерфокс возвращает нормально, а хром белеберду какую-то?

Последний раз редактировалось Seran4ek; 16.10.2011 в 20:29.
Seran4ek вне форума Ответить с цитированием
Старый 16.10.2011, 21:04   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

скорее всего раз сам фал в utf8 - вот вам и получается... вименах файлов utf8 не катит.... и вообще на *никсовых системах (и не только) очень не рекомендуется использовать символы отличные от латиницы и цифр (в том числе и кириллицу)
ADSoft вне форума Ответить с цитированием
Старый 16.10.2011, 22:22   #3
Seran4ek
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 94
По умолчанию

спасибо, тоже пришел к такому умозаключению, значит не мои бока)
Seran4ek вне форума Ответить с цитированием
Старый 16.10.2011, 22:39   #4
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Это стандартный глюк FF.

Решение:
- Включить в PHP файл заголовок определяющий кодировку:
Код:
header("Content-type: text/html; charset=utf-8");
Виталий Желтяков вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Откуда дубли при запросе? hronos1975 Microsoft Office Access 7 11.02.2011 19:14
Неправильная кодировка при пост запросе RIO Работа с сетью в Delphi 1 14.11.2010 07:02
Можно ли при пост-запросе InDy получить только куки (при логине на сайт например)? TwiX Работа с сетью в Delphi 2 07.02.2010 08:21
Зависание при пост запросе Фенрир Работа с сетью в Delphi 1 14.12.2009 15:18
ajax кодировка Iuliy JavaScript, Ajax 1 07.03.2008 19:38