[PHP] Cache control werkt wel in Firefox/Opera en niet in IE

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben voor mijn opleiding een project aan het maken en een gedeelte hiervan heeft de volgende specificaties:

Bijscholing aanvragen:
Een datum, 1 of meerdere tijdsblokken in te vullen.

Dus mijn idee: default pagina= vakje voor datum + 1 tijdsblok, knopje om tijdsblok bij te voegen, en knopje om tijdsblok weg te nemen.

Mijn herlaad code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
$blockCount = 1;
if ( ( isset($_POST['blockcount']) ) && ( is_numeric($_POST['blockcount']) ) ) {
    $blockCount = $_POST['blockcount'];
    if ( isset($_POST['blockbutton']) ){
        switch ($_POST['blockbutton']) {
            case 'plus':
                $blockCount++;
                break;
            case 'min':
                $blockCount--;
                break;
        }
    }
    if ( $blockCount <= 0) {
        $blockCount = 1;
    }
}
/*
...wat irrelevante context
*/
echo '
<form action="aanvraag.php" method="post">
<input name ="blockcount" type="hidden" value="'.$blockCount.'"></input>
Datum:<br/>
<input type="text" name="datum" onclick="ds_sh(this);" style="cursor: text" value="'.$datum.'"/><br/>
';
for ($i=1;$i <= $blockCount;$i++){
    //een tijdsblok:
    echo 'Block'.$i.'<br/>';
}
echo 'Tijdsblok:';
echo '<button type="submit" name="blockbutton" value="plus">Toevoegen</button>';
if ( $blockCount > 1 ){
    echo '<button type="submit" name="blockbutton" value="min">Verwijderen</button><br/>';
}
echo '</form>';


Dit werkt in opera en firefox, maar in internet explorer laadt hij altijd de initiële pagina met het eerste tijdsblok. De applicatie moet wel werken in ie, dus het moet opgelost raken.

Wat ik zelf al heb uitgevist: dat het met de cache van ie te maken moet hebben, dus op cache control gegoogled en geGoT...

Dit als mogelijke oplossingen tegengekomen... maar hij doet het nog steeds niet in ie...
PHP:
1
2
3
4
header("Cache-Control: no-cache");
header("Cache-Control: must-revalidate");
header("Cache-Control: max-age=0");
header("Pragma: no-cache");


Heeft er nog iemand mogelijke oplossingen/workarounds voor dit?

Dit is de testpagina:
http://hoop.astle.org/afdeling/aanvraag.php

[ Voor 17% gewijzigd door Verwijderd op 16-04-2006 16:02 ]


Acties:
  • 0 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Verwijderd schreef op zondag 16 april 2006 @ 16:01:
De applicatie moet wel werken in ie, dus het moet opgelost raken.
Nee, het moet opgelost wórden, anders raakt het nooit opgelost :P
Wat ik zelf al heb uitgevist: dat het met de cache van ie te maken moet hebben, dus op cache control gegoogled en geGoT...
Hoe ben je er zo bij gekomen dat bij een normale POST actie er iets gecached zou worden? :)
Heeft er nog iemand mogelijke oplossingen/workarounds voor dit?
Gewoon, het basis debug werk. Werkt de post uberhaupt goed? Zet eens een

PHP:
1
print_r($_REQUEST);


bovenin je pagina, en kijk wat er allemaal voor data binnenkomt.

Zet eens een
PHP:
1
echo "Jahoor, deze code wordt in ieder geval uitgevoerd!";

op verschillende plekken in je code, om te kijken of je script daar komt :)

Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
eamelink schreef op zondag 16 april 2006 @ 16:15:
[...]
Gewoon, het basis debug werk. Werkt de post uberhaupt goed? Zet eens een

PHP:
1
print_r($_REQUEST);
Inderdaad, dan zie je dat $_POST['blockbutton'] een andere waarde heeft dan je verwacht.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Omdat het in opera wel werkt en in firefox ook, dus die code wordt wel uitgevoerd.

Acties:
  • 0 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Omdat het in Opera en in Firefox werkt, moet het dus in IE ook werken, dus werkt het ook in IE, dus is er geen probleem, dus wat zeur je dan uberhaupt?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat het in ie niet werkte, maar die print_r($REQUEST) heeft me wel iets gegeven dat naar een oplossing kan leiden, in opera/firefox geeft die $_POST['blockbutton'] de value van de value="tag" en in ie geeft die de tekst van het knopje, dat heb ik aangepast, nu is er een ander probleem, maar daar ga ik zo verder op zoeken.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ok opgelost, ik heb die knopjes anders genoemd en in een apart form gestoken, het probleem was dus idd niet de cache maar dat een form blijkbaar anders wordt behandelt in IE dan in opera.

Acties:
  • 0 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Als je echt gebruik wilt maken van de waarden van de buttons, zou ik ze geen <button> noemen, maar gewoon <input type="submit">. Dan is meteen duidelijk dat de waarde ervan van belang is :)

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Het button-element is inderdaad broken in IE, da's algemeen bekend ;)

Intentionally left blank

Pagina: 1