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 :: Версия для печати :: Ajax не коректно работает в Опере [2]
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Ajax не коректно работает в Опере

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

16. taxi008 - 14 Декабря, 2011 - 05:49:41 - перейти к сообщению
Вопрос как перекодировать все файлы php и tpl ???
У меня поверка имени стоит в форме обратной связи - отправки письма в html формате прямо на принтер.
17. Viper - 14 Декабря, 2011 - 07:52:57 - перейти к сообщению
taxi008 notepad++ в нем пересохранить в utf8 без BOM
18. taxi008 - 15 Декабря, 2011 - 12:40:15 - перейти к сообщению
Дело в том, что в результате проб и ошибок я выяснил следующее. Запрос к базе скрипт почему то отправляет с оперы в кодировке utf8, а в других браузерах кодировка windows-1251. База в windows-1251. Устанавливаю...
PHP:
скопировать код в буфер обмена
  1. $name=iconv("UTF-8","windows-1251",$_GET['name']);
. Вроде все должно быть нормально. Теперь опера работает в windows-1251. А остальные браузеры по видемому в utf8. Подскажите как заставить работать все браузеры в windows-1251.
(Добавление)
Меняю кодировку таблицы в базе с СР1251 на utf8. Все остается по старому. Опера не работает, остальные браузеры нормально. В чем же проблемма?
19. taxi008 - 15 Декабря, 2011 - 15:10:14 - перейти к сообщению
У меня весь сайт в windows-1251. Думаю базу перекодировать на UTF-8 не стоит?
20. Мелкий - 15 Декабря, 2011 - 15:27:11 - перейти к сообщению
Стоит всё заменить на utf8. Нормально аякс работает только в utf8.
21. taxi008 - 17 Декабря, 2011 - 02:10:52 - перейти к сообщению
Перекодировать весь сайт в utf8 ? Или только те страницы и базу, что работает с ajax_ом. Скажется это на позициях в поисковике?
22. taxi008 - 18 Декабря, 2011 - 19:20:44 - перейти к сообщению
Я не могу понять следующее!
1) Проверка на наличие Русского слова в базе пороходит не коректно только в опере.
2) Ставлю
PHP:
скопировать код в буфер обмена
  1. $name=iconv("UTF-8","windows-1251",$_GET['name']);

Опера работает коректно, но остальные браузеры увы пишут "слово не найдено".
3) Ставлю
PHP:
скопировать код в буфер обмена
  1. $name=iconv("windows-1251","UTF-8",$_GET['name']);

Все браузеры работают не коректно ("слово не найдено").
Вопрос в какой же кодировке работают браузеры?
23. tuareg - 18 Декабря, 2011 - 19:45:11 - перейти к сообщению
Тут просто получается либо Opera где-то косячит, либо все остальные браузеры.
Браузеры работают в кодировке, в которой указал пользователь. Тут пробелмма не в работе браузера, а в том что ajax не работает(криво) с кодировкой не utf-8
24. taxi008 - 18 Декабря, 2011 - 20:19:43 - перейти к сообщению
Да вроде нечему работать криво.
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var name,
  3.       nameStat,
  4. $(function() {
  5.         //Логин
  6.         $("#name").change(function(){
  7.                 name = $("#name").val();
  8.                 var expName = /^[а-яА-Яa-zA-Z0-9_]+$/g;
  9.                 var resName = name.search(expName);
  10.                 if(resName == -1){
  11.                         $("#name").next().hide().text("Неверный логин").css("color","red").fadeIn(400);
  12.                         $("#name").removeClass().addClass("inputRed");
  13.                         nameStat = 0;
  14.                         buttonOnAndOff();
  15.                 }else{
  16.                         $.ajax({
  17.                         url: "include/testingLoginEmail.php",
  18.                         type: "GET",
  19.                         data: "name=" + name,
  20.                         cache: false,
  21.                         success: function(response){
  22.                                 if(response == "no"){
  23.                                         $("#name").next().hide().text("Логин занят").css("color","red").fadeIn(400);
  24.                                         $("#name").removeClass().addClass("inputRed");                                 
  25.                                 }else{                                 
  26.                                         $("#name").removeClass().addClass("inputGreen");
  27.                                         $("#name").next().text("");
  28.                                 }                      
  29.                                
  30.                         }
  31.                 });
  32.                         nameStat = 1;
  33.                         buttonOnAndOff();
  34.                 }
  35.                
  36.         });
  37.         $("#name").keyup(function(){
  38.                 $("#name").removeClass();
  39.                 $("#name").next().text("");
  40.         });
  41. function buttonOnAndOff(){
  42.                 if(nameStat == 1){
  43.                         $("#button").removeAttr("disabled");
  44.                 }else{
  45.                         $("#button").attr("disabled","disabled");
  46.                 }
  47.        
  48.         }
  49.        
  50. });
  51.  
25. tuareg - 18 Декабря, 2011 - 20:30:29 - перейти к сообщению
Да нет, Вы не поняли. Криво, я имел ввиду, что он отдает непонятно что "кракозябры"
Вот смотрите ajax передает в кодировке utf-8. Потом перед отправкой он "вроде бы" пытается еще закодировать ее(urlDecode).
Вообще ну если уж Вам так не хочется перекодировать всю страницу и Бд. Сделайте запрос
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $.ajax({
  3.                         url: "include/testingLoginEmail.php",
  4.                         type: "POST",
  5.                         ...
  6.  

По идее с POST проблем быть не должно
26. taxi008 - 18 Декабря, 2011 - 22:06:36 - перейти к сообщению
Прописал
.
Скрипт стал вадавать положительный результат ( слово в базе есть ) в любом случае.
Даже если ввожу не верное. Что то нужно менять в скрипте?
27. tuareg - 18 Декабря, 2011 - 22:55:49 - перейти к сообщению
А тут поменяли?
PHP:
скопировать код в буфер обмена
  1.  
  2. $name=iconv("windows-1251","UTF-8",$_POST['name']);
  3.  

(Добавление)
У Вас же это уже на сайте лежит? Дайте я ссылочку гляну
28. taxi008 - 19 Декабря, 2011 - 03:36:40 - перейти к сообщению
Лежит на сайте при регистрации в личном кабинете.
Я пробовал ставить
PHP:
скопировать код в буфер обмена
  1. $name=iconv("windows-1251","UTF-8",$_POST['name']);

После чего не один браузер не работает коректно, так как таблицы в windows-1251.
Так же пробовал ставить
PHP:
скопировать код в буфер обмена
  1. $name=iconv(""UTF-8",windows-1251",$_POST['name']);

После чего опера начинает работать нормально, а вот другие браузеры работают не коректно (name в базе не находят).
Тоесть если работает опера то не работают например Explorer или Mozilla. убираешь iconv то все наоборот.
(Добавление)
Аналогичная тема по этой ссылке http://forum[dot]searchengines[dot]ru/ar[dot][dot][dot]hp/t-504703[dot]html
(Добавление)
Сайт который делаю http://www[dot]eu-taxi[dot]ru/
(Добавление)
В то же время захожу в личный кабинет через оперу. Из кабинета меняю name на новое. Тоесть в одно поле ввожу старое имя в в два других ввожу новое имя жму изменить. Меняет коректно. проверяю в базе замена прошла в нормальной кодировке. Проверяю через например Mozill-у. Проверка проходит коректно. Наверное проблемма с аяксом. Но как исправить ???
29. tuareg - 19 Декабря, 2011 - 03:52:37 - перейти к сообщению
Я же говорю косяк самой оперы.
Попробуйте так.
Не отправляйте $.ajax. А выводите alert(name). И посмотрите одинаково ли они выводятся??
Пропишите то, что по ссылке говорят.
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. encodeURIComponent(lt);
  3.  

Если выводятся одинаковые значения, тут все полный п...., если же нет, то тогда каким-то образом приводить их к одинаковому значению.
Еще можно глянуть. У googl-a есть сжималка js.
http://javascript[dot]ru/optimize/go[dot][dot][dot]ple-optimization
Там внизу комментарии 4 сверху и ответ к нему.
Т.е возможно придется ручками перекодировать и на сервере обратно
30. taxi008 - 19 Декабря, 2011 - 13:22:37 - перейти к сообщению
Спасибо! Все работает!

 

Powered by ExBB FM 1.0 RC1