За последние 24 часа нас посетили 50704 программиста и 1418 роботов. Сейчас ищут 1332 программиста ...

Туплю, php, браузеры, не одинаково

Тема в разделе "Вопросы от блондинок", создана пользователем zorbis, 21 июн 2010.

  1. zorbis

    zorbis Активный пользователь

    С нами с:
    17 авг 2009
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Кишинев
    Добрый день. Либо я дико туплю уже двое суток, либо я столкнулся с чем-то доселе мне неведомым.

    Есть вот такой вот кусочек кода:
    Код (Text):
    1.  
    2. $car = db_fetch_object(db_query("запрос"));
    3.  
    4. trim($car->special) == 0 ? $add_class = 'regular' : $add_class = 'special';
    5.  
    6. $out .= '<div class="'.$add_class.'"></div>';
    В итоге в хроме нужному элементу присваивается именно тот класс что нужно, а в остальных браузерах (фф, опера, ие) только "regular". Соответственно, var_dump($car->special) в одном браузере говорит, что там пусто, в другом говорит, что там не пусто.

    Подскажите, пожалуйста, где зарыта собака?
     
  2. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    трим же строку возвращает, а если так trim($car->special) === '0'
    ps: а точно 0 если пусто?
     
  3. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    PHP выполняется на сервере и браузер тут абсолютно НЕ ПРИ ЧЁМ.
    Что отдаёшь - то и получаешь.
    Смотри исходный код, он должен быть одинаковым.
     
  4. zorbis

    zorbis Активный пользователь

    С нами с:
    17 авг 2009
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Кишинев
    Та знаю я, что "пхп на сервере выполняется, браузер не при чем", но факт остается фактом: вар_дамп одной и той же переменной в разных браузерах дает разное значение.


    На счет трима. Я там не то написал че-то, там не " == 0", а " == ''", но в принципе суть та же.
     
  5. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    а var_dump($car) что говорит?
     
  6. zorbis

    zorbis Активный пользователь

    С нами с:
    17 авг 2009
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Кишинев
    Выдает объект с инфой про машину, соответственно, в разных браузерах он тоже разный.
     
  7. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    а var_dump("запрос") что говорит?
     
  8. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Браузеры передают в разных кодировках, ага?
    Попробуй задать кодировку явно, заголовком Content-Type
     
  9. zorbis

    zorbis Активный пользователь

    С нами с:
    17 авг 2009
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Кишинев
    Говорит айди ресурса
     
  10. zorbis

    zorbis Активный пользователь

    С нами с:
    17 авг 2009
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Кишинев
    Пробовал, не то.
     
  11. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
  12. zorbis

    zorbis Активный пользователь

    С нами с:
    17 авг 2009
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Кишинев
    После загрузки страницы во всех браузерах в файл льется (при любом значении переменной $car->special, которая должна у меня определять класс для дива).
    Код (Text):
    1. <div class="page_header_regular">2006&nbsp;Toyota&nbsp;Avensis</div>
    А var_dump() выводит разное в разных браузерах.
     
  13. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    я имел в виду - строка запроса одинаковая? в самом запросе различий нету?
     
  14. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Значит в хроме - кэш.
     
  15. zorbis

    zorbis Активный пользователь

    С нами с:
    17 авг 2009
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Кишинев
    Чистил кэш, проверял с 3х компов (2 с виндой, 1 с линуксом).
     
  16. zorbis

    zorbis Активный пользователь

    С нами с:
    17 авг 2009
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Кишинев
    Одну и ту же страницу гружу
     
  17. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    это я к чему - надо же найти, где начинается различие. если строка запроса одна, а из базы возвращается разное, то надо пологировать запросы к базе (mysql.log). если из базы возвращается одинаково, а объекты разные, значит надо смотреть, как создаются объекты и т.д. )
     
  18. zorbis

    zorbis Активный пользователь

    С нами с:
    17 авг 2009
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Кишинев
    Я сдал вчера проект этот. Вроде место это не критичное, клиент и не заметит (надеюсь). Но все равно спасибо за помощь.

    А вообще запросы одинаковые шли, я проверял, но результат почему-то был разным. Ну да и ладно, буду надеятся, что это случайное волшебство было, которое не повторится больше.