Как сделать обновление страницы php
Мне нужно загрузить файл на сервер, используя PHP и форму HTML.
Я использовал пример w3school: Загрузка файла PHP 5 что очень помогло и очень мне помогло.
Конечно, мне нужно адаптировать этот код для решения моей проблемы, так что вот такая ситуация:
1) HTML-форма помещается в fileform.php:
2) это мое upload.php:
Я могу правильно загрузить файл, но не могу правильно перезагрузить страницу PHP.
Появляется только страница с белым фоном, показывающая:
Файл file.data был загружен.
с некоторыми иконками страницы PHP …
Как мне изменить свой код, чтобы правильно перезагрузить страницу PHP?
Спасибо заранее за вашу помощь.
Решение
Убедитесь, что вы не отправляете ЛЮБОЙ контент перед звонком session_start , А еще лучше, просто сделай session_start первое, что вы делаете в своем файле PHP (поэтому поместите его в абсолютное начало, перед всем HTML и т. д.).
Используйте это сверху сразу после
Вы можете использовать так:
Другие решения
PHP — это серверный язык, поэтому вы должны использовать javascript для перезагрузки страницы.
Это перезагрузит текущую страницу.
если вы хотите обновить страницу на стороне клиента, вы можете использовать:
Появляется только страница с белым фоном, показывающая: файл file.data загружен.
Это ваш код, который делает это:
Причина, по которой вы впоследствии получаете ошибку, заключается в том, что вы должны вызывать session_start () где-то после ob_end_flush () — но это не появляется ни в одном из кода, который вы нам показали. то есть код, который вы нам показали, не приведет к ошибке, которую вы указали.
По совпадению, несмотря на то, что приведенный выше код приправлен ob_end_flush () (без видимой причины), ob_start () не существует. Это может появиться в коде, который вы нам не показали.
Вы можете перезагрузить ту же страницу, перенаправив на тот же URL.
Я делаю что-то не так в файле upload.php, но я не знаю, что именно не так
Проблема, с которой вы сталкиваетесь, является классической.
Вам нужно будет реорганизовать скрипт загрузки, чтобы вы include('fileform.php') перед отправкой любого другого контента в тело ответа.
Данная статья будет посвящена тому, как организовать автоматическое обновление страниц. В результате выполнения определенной команды, Ваш браузер будет обновлять страницу через заданный промежуток времени.
Кому может пригодится такой функционал для сайта. Лично я встречал такие циклические обновления на сайтах спортивной тематики. Когда идет какой-то матч в реальном времени, на сайте постоянно ведется текстовая трансляция и чтобы посетители постоянно не обновляли свой браузер, повторно нажимая на кнопку раз за разом, используется автоматическое обновление.
Если Вам нужен такой функционал, то решить поставленную задачу можно несколькими способами.
Самый простой способ осуществляется с помощью HTML, а конкретно с помощью тега meta.
Данную строку нужно добавить в шапке страницы между тегами head. Атообновление будет осуществятся каждые 5 секунд. Если Вам нужно ускорить или замедлить частоту, просто измените число.
Второй способ делает эту же работу, только с помощью JavaScript. Просто добавьте на Вашу страницу, такой вот код:
Время автоматического обновления задано в миллисекундах и составляет 5 секунд.
Последний способ осуществляется уже благодаря PHP. Просто добавьте в код страницы такую строку:
Тут, как и в предыдущих двух способах, время автообновления составляет 5 секунд.
Способ с PHP будет работать только в случаи, если хостинг где лежит Ваш сайт поддерживает PHP. Сейчас в 99% эта функция есть, но все же есть такие хостеры, которые предоставляют дешевые тарифные планы с отсутствием поддержки PHP и баз данных. Такие тарифы используют для размещения одностраничников или простеньких визиток.
Какой из способов выбрать, решать Вам. Главное, чтобы все работало так как нужно. Сделав все правильно, результат не заставит себя ждать.
На этом все, спасибо за внимание. ?
Если Вам был полезным мой труд, можете финансово поддержать сайт или отключить блокировщик рекламы, что займет 2 минуты :)
Но что-бы я не пробовал,никак не могу перезагрузить страницу , header не работает, если использую script страница перезагружается вечно, ajax к сожелению не знаю. Помогите пожалуйста решить проблему. Спасибо.
и что вы имеете в виду под перезагрузкой страницы? особенно если учесть, что во время обработки этого условия страница еще не отправлена пользователю, а сервер только формирует ответ.
Чтобы header(); работал, вам необходимо структурировать код таким образом, чтобы все echo/print/var_dump'ы и прочий вывод или html разметка шли строго после header() .
1 ответ 1
Header должен работать, смотрите правильно ли вы всё написали, и header отправляется вместе с заголовками, то есть первый из всего, перед ним не должно быть вывода любого контента а так же html тегов. Так же нельзя объявлять условие в переменной, можно объявить переменную следуя от условия, например:
Обязательно header должен быть до показания контента
А инного способа не существует , ибо у меня дело такое. Есть таблица, там кнопка удалить, как пользователь нажимает кнопку удалить запись удаляется из бд, но в таблице остается, поэтому хочу сделать рестарт страницы чтобы она исчезла.
Вот поэтому в вопросе надо описывать реальную проблему а не свое гипотетическое решение. И да - Ajax и редиректы в таком виде как у вас - несовместимы.
А зачем ты хочешь что бы пропала запись перезагружать страницу, ты и сервер и пользователя грузишь, просто поставь display: none у того элемента, на который нажали, он скроется, а при следующей перезагрузке его уже не будет
Как я могу периодически обновлять страницу с помощью PHP? Если я не могу сделать это с помощью PHP, каков наилучший рекомендуемый сценарий?
мы говорим о синхронизации (вы сталкиваетесь с ситуацией, когда вы хотите обновить во время анализа вашего php-скрипта) refrehs (мета-обновление будет работать нормально) или об асинхронном непрерывном обновлении страницы (больше похоже на javascript / ajax)?
Вы можете сделать это с помощью PHP:
Обновить не является официальным заголовком, но поддерживается многими браузерами, начиная с Netscape Navigator. Это означает, что вам придется проверить, чтобы убедиться, что ваша аудитория использует поддерживающие браузеры.
Использование 0 будет постоянно забивать ваш сервер и / или локальный кеш, особенно если у вас есть изображения на странице. Если вам нужно только обновить информацию на экране, например, цены на акции, но не использовать эту информацию в форме или из javascript, возможно, используйте тег iframe, указывающий на страницу только с обновляемой информацией, и с задержкой, соответствующей тому, как актуальная информация должна быть.
В PHP вы можете использовать:
Или просто используйте JavaScript window.location.reload() .
Заголовок Yazana ('Location:') используется для перенаправления пользователя на любой URL, вы не можете обновить страницу, используя его.
Pratik. Вы неправы. вы действительно можете использовать заголовок ("refresh:"), чтобы обновить страницу
Вы можете сделать и то и другое, хотя я предпочитаю не ждать времени с: header("Location: ".$_SERVER['PHP_SELF']);
Примечание об этом решении: если на вашем сайте реализована какая-то приятная маршрутизация или перезапись URL (т. $_SERVER['PHP_SELF'] Практически любая инфраструктура по умолчанию), вы можете обнаружить, что $_SERVER['PHP_SELF'] дает вам истинный путь к сценарию, а не фактический URL, который вы $_SERVER['PHP_SELF'] увидеть в вашем браузере. В этом случае попробуйте использовать $_SERVER['REQUEST_URI'] .
что просто возможно с заголовком() в php
Вы можете периодически обновлять страницу с помощью PHP:
Это обновит страницу каждые три секунды.
Создайте инструкцию if . Если требуется обновление, echo:
ИЗМЕНИТЬ
Как указано в @warren, приведенный выше код немедленно обновит страницу. Вы можете установить время с помощью content vall
да, я комментирую этот ответ: всегда есть возможности для улучшения. И вы правы, вы можете установить content равным любому значению в секундах - мой комментарий все же стоит отметить, что обновление 0 секунд, вероятно, не то, что вы собираетесь :)
@Mathlight и кто-либо еще жалуется на задержку комментариев. Просто потому, что вы, возможно, пошли дальше, будущий читатель, возможно, только что столкнулся с проблемой, и ваш ответ / комментарий, наряду с любыми задержанными, оспаривающими его, все же может иметь отношение к ним.
@Mathlight Я не уверен, почему люди думают, что только потому, что пост старый, не может быть никакого смысла комментировать его. Вы должны избавиться от этого мышления.
Я нашел 2 способа обновления содержимого PHP:
1. Использование HTML META:
2. Использование PHP REFRESH RATE:
Эхо метатег: URL-адрес - это тот, где страница должна быть перенаправлена после обновления.
Вы не можете сделать это в PHP. После загрузки страницы PHP умирает и выходит из-под контроля.
У вас есть несколько вариантов:
- Используйте JavaScript
- Используйте метатег обновления,
Я думаю, что обновить метатег является самым простым и удобным.
Неправильно, вы можете периодически обновлять страницу, используя PHP, если вы используете функцию заголовка PHP следующим образом: header ("refresh: 3;");
Вы можете обновить страницу в PHP, используя заголовок. Кроме того, использование META REFRESH НЕ идеально для SEO.
Как только страница загружена, PHP умирает и выходит из-под контроля. Все остальные методы являются хитростями на стороне клиента, чтобы снова подключиться к серверу и перезагрузить страницу
Это совершенно неправильно! Всеми возможными способами. Это может быть сделано с помощью PHP, заголовков (обновление) и с помощью инициируемых перенаправлений. Кажется, что все остальные ответы лучше.
header('Location: .'); похоже, обновляет страницу в Chrome, Firefox, Edge и IE 11.
Но это не то, о чем просил ОП. Я все еще проголосовал за это, потому что понял это только потом, извините. Это скоро Рождество! :)
Вы можете обновить с помощью JavaScript. Вместо полного обновления страницы вы можете обновить содержимое в div. Затем с помощью JavaScript вы можете обновить только этот единственный div, и он работает быстрее, чем полное обновление страницы.
PHP - это серверный язык, поэтому вы не можете обновлять страницу с помощью PHP, но JavaScript - лучший вариант для обновления страница:
@Ahmad Ахмад, вы не можете рассматривать как особенность PHP, это особенность HTML. Таким образом, вы делаете это, устанавливая заголовок ответа html. И именно поэтому я сказал, что вы не можете сделать это с помощью PHP. Другое дело, вы не можете обновить страницу после загрузки / при необходимости. да, вы можете установить его на несколько секунд и т. д., как вы ответили.
о технических деталях Думаете, можно использовать заголовок для обновления определенного изображения? Это если вы потоковое изображение через php грубый.
Ах да, нашел это. Сначала я попробовал обычный тег изображения. Неудачно. Но затем я заменил тег изображения на тег iframe и вуаля. Изображение обновляется автоматически. Это очень поможет с некоторыми из моих изображений состояния страницы :) Для тех, кому интересно, я передаю изображение через php вместе с заголовком обновления, устанавливая файл php в качестве источника iframe.
Технически, PHP не может обновить страницу, но используя заголовок Refresh или метатег , как описано в другом месте, PHP может сказать браузеру отображать текущую страницу до истечения времени ожидания, а затем обновить страницу.
Один трюк заключается в том, чтобы добавить случайное число в конец URL-адреса, так что вам не нужно каждый раз переименовывать файл. Например:.
Браузер не будет кэшировать его, пока случайное число отличается, но веб-сервер игнорирует его.
Читайте также: