The HTML Form submits to the same, "a.php"
Once the user submits the Form, a.php is called which INSERT's
the row
into the mySQL Table. However, the row does not appear in the
SELECT
statement table data unless I hit refresh on the page. (The INSERT
function is executed before the SELECT in the page).
I used the header() code that was suggested:
header('Cache-Control: no-cache, no-store, max-age=0, must-
revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the
past
header('Pragma: no-cache');
$ffile = 'a.php';
$time = filemtime($ffile);
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT');
.. but it didn't help.
Everything is working fine except that the Browser is more then
likely
caching the data and thus not allowing the newly inserted row to
appear on top when the SELECT is executed.
On Jul 22, 2008, at 8:34 AM, Thiago H. Pojda wrote:
Code, please? :)
On Tue, Jul 22, 2008 at 9:33 AM, Rahul S. Johari <sleepwalker@xxxxxxxxxxxxxxxx
> wrote:
Hmm, interesting.
In my case, $file does indeed output dynamic data.
I did try with the modified time but it still doesn't work. I
still have to hit refresh on the browser, after submitting the
form, in order for the inserted record to appear.
Not sure what to do - it's rather annoying. Novice users of
the page would assume the entry didn't get inserted or
something happened. One alternate is to submit Data to a
different page and let that page redirect to the Original
page - but I do find it hard to believe that there is no
solution to this caching.
Thanks guys!
On Jul 22, 2008, at 8:26 AM, Yeti wrote:
The Last-Modified header tells the browser when the requested
page was last modified. Now I don't know how you get the date
in your case but here is an example:
browser requests /test/test.php which is a simple php file
without any includes etc.
in this case
$file = '/test/test.php';
This wont work if $file outputs dynamic data, so only use it if
the content only changes when you change the file.
Now if you are using templates etc. obtaining the Last-
Modified time is a bit more complicated. If you use server
side caching then you can chose the cached file else you have
to figure it out yourself.
And the RFC 2616 header specification says:
An origin server MUST NOT send a Last-Modified date which is
later than the server's time of message origination. In such
cases, where the resource's last modification would indicate
some time in the future, the server MUST replace that date
with the message origination date.
So do not send a future date!
On Tue, Jul 22, 2008 at 2:11 PM, Rahul S. Johari <sleepwalker@xxxxxxxxxxxxxxxx
> wrote:
I tried with just the first three header() statements you gave,
but it didn't work.
Let me try the modification date ... which file is being
referred to in $ffile?
Also, I'm using Firefox, if it's of any consequence.
Thanks!
On Jul 22, 2008, at 7:30 AM, Bernhard Kohl wrote:
I'm pretty sure this is a cache issue ..
To disable caching:
header('Cache-Control: no-cache, no-store, max-age=0, must-
revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the
past
header('Pragma: no-cache');
But if you have the modification date then use
$time = filemtime($ffile);
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT');
On Tue, Jul 22, 2008 at 1:14 PM, Rahul S. Johari <sleepwalker@xxxxxxxxxxxxxxxx
> wrote:
Ave,
I'm wondering if there's a PHP solution to this, I could be in
the wrong place.
I have an INSERT form which submits to the same php page,
which also displays the records from the mySQL database the
INSERT form submits to. When the form submits and the page
returns, the added record does not show up unless you
"Refresh" the page.
I'm imagining even after form submit, the Browser is caching
the data and displaying data from the Cache.
Is there a solution to this? Is there anything PHP can do to
instruct the browser not the cache the data?
Thanks!
---
Rahul Sitaram Johari
Founder, Internet Architects Group, Inc.
[Email] sleepwalker@xxxxxxxxxxxxxxxx
[Web] http://www.rahulsjohari.com
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
---
Rahul Sitaram Johari
Founder, Internet Architects Group, Inc.
[Email] sleepwalker@xxxxxxxxxxxxxxxx
[Web] http://www.rahulsjohari.com
---
Rahul Sitaram Johari
Founder, Internet Architects Group, Inc.
[Email] sleepwalker@xxxxxxxxxxxxxxxx
[Web] http://www.rahulsjohari.com
--
Thiago Henrique Pojda
---
Rahul Sitaram Johari
Founder, Internet Architects Group, Inc.
[Email] sleepwalker@xxxxxxxxxxxxxxxx
[Web] http://www.rahulsjohari.com