За последние 24 часа нас посетили 15997 программистов и 1641 робот. Сейчас ищут 1052 программиста ...

Обновление страницы на другом компьютере

Тема в разделе "PHP для новичков", создана пользователем Coder87, 23 окт 2009.

  1. Coder87

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

    С нами с:
    1 сен 2009
    Сообщения:
    11
    Симпатии:
    0
    Здравствуйте! У меня возникла следующая проблема: организовал работу с базой данных через ODBC, и все (т.е. добавление, удаление и проч.) работает. Передаю ссылку на проект коллегам по офису (сообщая им при этом свой IP), и возникают проблемы с обновлением страницы. Страница обновляется только если нажать ДВА раза кнопку обновления, или F5. То есть удаляю запись из БД, в базе удаляется нормально, а страница не обновляется. На компьютере где разрабатывал работает нормально. С чем это может быть связано?
     
  2. alexey_baranov

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

    С нами с:
    3 фев 2009
    Сообщения:
    647
    Симпатии:
    0
    Адрес:
    Сургут
    ошибся дверью. это в разделе для новичков
     
  3. Alost

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

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    Это связано что все живут своей жизнью, и им пофиг что у вас там на сервере проиходит.
    Пропишите принудительное обновление страницы, если это только просмотр данных, или переводите на AJAX.
     
  4. Coder87

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

    С нами с:
    1 сен 2009
    Сообщения:
    11
    Симпатии:
    0
    Вас понял, спасибо за совет
     
  5. Coder87

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

    С нами с:
    1 сен 2009
    Сообщения:
    11
    Симпатии:
    0
    Почитал в инете литературу по этой теме, мне всего лишь нужно принудительно обновить страницу. Любыми средствами, кто чем располагает, напишите как это делается.
     
  6. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Варианта два

    Злобный
    через HTTP-EQUIV refresh:таймаут

    Менее злобный
    через Javascript
    вешаешь обработчик, который по таймауту спрашивает на твоем сайте - есть ли изменения.
    Если есть, то обновляет страницу через
    location=новыйилистарыйурл
     
  7. [vs]

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

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    PHP:
    1. header('Refresh: 5'); //Обновить через 5 секунд
     
  8. Alost

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

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    На самом деле в плане юзабили очень не удобно.Если пользователь будет что то редактировать то все его редактирования коту под хвост.Если конечно это информационая страница то можно и просто рефреш.Но если это информационая страница с большой высотой, то опять же рефреш закинет в начало страницы.
     
  9. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Они в любом случае под хвост, поскольку ситуация изменилась.

    Не делай страницы с большой высотой - они неудобны в восприятии.
     
  10. Coder87

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

    С нами с:
    1 сен 2009
    Сообщения:
    11
    Симпатии:
    0
    Это страница в которой пользователь вводит большое количество информации. Если я буду оформлять по таймеру, то данные, которые вносит пользователь, могут не сохраняться и пропадать. Обновление по времени не приемлимо, напишите плз как обновить на яваскрипте.
     
  11. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    А зачем тебе обновлять страницу где пользователь вводит информацию?

    Проще будет при сохранении проверить изменилось ли что-то.
    Если изменилось - то выдать пользователю страницу с измененной информацией и его введенными данными.
     
  12. Coder87

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

    С нами с:
    1 сен 2009
    Сообщения:
    11
    Симпатии:
    0
    Задача такая: есть выпадающий список факультетов, факультеты хранятся в БД. БД на MSSQL сервер, доступ реализован через ODBC. Пользователь выбирает факультет, форма обновляется, и видит специальности, с этим факультетом связанные. Затем выбирает специальность и видит список выбранных специальностей, который также сохраняется в БД. Он может выбрать специальности и из другого факультета и в итоговом списке они нормально сохраняются. Из этого списка пользователь может также их удалить. Все это работает нормально, все обновляется замечательно, но на другом компьютере при удалении из общего списка выбранных, в базе специальности удаляются, а форма иногда не обновляется. Повторюсь, на другом компьютере, на моем все нормально. Я предполагаю, что мне нужно в этом случае сделать принудительное обновление страницы. Но по времени обновлять тут не подходит. Напишите, пожалуйста, код для обновления.
     
  13. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    вот для таких случаев и придумали Ajax...
     
  14. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Так не бывает.
    Включай логи, смотри код. Ты где-то ошибся.

    Хотя... Чем ты получаешь доступ к БД? у MS есть хитросделанный способ чтения напрямую через html.

    На чем вообще задачка написана? :)
     
  15. Coder87

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

    С нами с:
    1 сен 2009
    Сообщения:
    11
    Симпатии:
    0
    Все написано на пхп)) Доступ к данным через ODBC. На другой комп скидываю для проверки адрес странички со своим IP. Все норм работает, только глюки с обновленем.
     
  16. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Тогда

     
  17. Coder87

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

    С нами с:
    1 сен 2009
    Сообщения:
    11
    Симпатии:
    0
    Спасибо, твой ответ меня обнадеживает) так, раз уж это раздел для новичков: как включить логи?)
     
  18. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    логи ошибок в PHP
    Код (Text):
    1. error_reporting = E_ALL | E_STRICT
    2. error_log = "C:\PHP\php-error.log"
    для отладки полезно поставить
    Код (Text):
    1. display_errors = On

    Кроме всего прочего, полезным будет вести логи и самому
    PHP:
    1. <?php
    2. function write_log() {
    3.     $fh = fopen('path/to/my.log', 'a+');
    4.     $args = function_get_args();
    5.     foreach($args as $value) {
    6.         fwrite($fh, date('Y-m-d H:i:s') . ' ' . print_r($value, true));
    7.     }
    8.     fclose($fh);
    9. }
    10.  
    И вызывать эту функцию на каждый чих. Т.е.
    получил данные от пользователя - вывел их в лог write_log($_POST);
    создал запрос - вывел его в лог.
    Записал в базу - вывел в лог mssql_get_last_message()
    Подготовил данные к отправке на страницу - вывел в лог.
     
  19. Coder87

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

    С нами с:
    1 сен 2009
    Сообщения:
    11
    Симпатии:
    0
    Спасибо за совет) я попробую.