Avatar billede php_gubbi Nybegynder
12. juli 2001 - 14:40 Der er 13 kommentarer

PHP4, sessions og no-chace

Jeg har et lille prob med noget sessions og no-chace..

min kode lidt forenklet:

side1.php
<?php
session_start();
session_register(\'var\');
$var = 123456;
header (\"Cache-Control: no-cache, must-revalidate\");
header (\"Pragma: no-cache\");
header (\"Location: side2.php\");
?>

side2.php
<?php
session_start();
form ting
submit og gå til side3.php
?>

side3.php
<?php
session_start();
link til side2.php
?>

Mit prob ligger i at den første gang jeg ser side2.php
bliver den aldrig forældet !?!?!?!?!
Hvorimod hvis jeg går videre ind og rundt på siderne bliver de alle forældet når jeg bruger frem og tilbage knapperne.... bare ikke den første(side2.php) :0(
Avatar billede barefoot Nybegynder
12. juli 2001 - 14:50 #1
Jeg vil mene at:
header (\"Cache-Control: no-cache, must-revalidate\");
header (\"Pragma: no-cache\");
Også skal stå på siden 2.
Avatar billede php_gubbi Nybegynder
12. juli 2001 - 14:54 #2
Har prøvet det
Men heller ikke det virker.
Det burde også være ligemeget når
det virker på de efterfølgende sider ?!?
Bare ikke første gang side2 vises.
Avatar billede barefoot Nybegynder
12. juli 2001 - 15:06 #3
Jamen så prøv at kyle denenstående ind på alle dine sider:

header (\"Expires: Mon, 26 Jul 1997 05:00:00 GMT\");
header (\"Last-Modified: \" . gmdate(\"D, d M Y H:i:s\") . \" GMT\");
header (\"Cache-Control: no-cache, must-revalidate, max_age=0\");
header (\"Pragma: no-cache\");
Avatar billede php_gubbi Nybegynder
12. juli 2001 - 15:18 #4
Har lige prøvet det nu her...
:0((( det er det samme
Alle sider undtagen den første gang side2 vises
forældes som de skal.
Anden gang side2 vises forældes den også rigtigt ?!?!?!
Avatar billede barefoot Nybegynder
12. juli 2001 - 15:32 #5
Prøv også at sætte denne her ind i html-koden:

<meta http-equiv=\"pragma\" content=\"nocache\">
<meta http-equiv=\"expires\" content=\"Thu, 1 October 1998 00:00:00 PST\">

Den virker ret godt på jubii\'s side, så mon ikke også den virker her...?
Avatar billede php_gubbi Nybegynder
12. juli 2001 - 15:39 #6
Nej det virker heller ikke..
Men fandt lige ud af en ting.
Det er fordi jeg bruger:
header (\"Location: side2.php\");
Så vil den ikke forælde siden...
den vil kun hvis det er et link eller andet..
Nogen der ved hvorfor ??
Avatar billede barefoot Nybegynder
12. juli 2001 - 15:53 #7
Så kan du jo fuske lidt og ikke bruge en header men en meta-ting til at redirecte:

<META http-equiv=\"refresh\" content=\"0;URL=side2.php\">

Den sender personen vidre efter 0 sekunder...
Avatar billede php_gubbi Nybegynder
12. juli 2001 - 16:05 #8
Fusk er godt !
Det virkede bare ikke i dette tilfælde :0(
Jeg var vist også ude på et vildspor for senere i min kode bruger jeg også header location og der virker det fint ?!?
Avatar billede barefoot Nybegynder
12. juli 2001 - 16:10 #9
Kunne du ikke lave et mellemled?

I stedet for at sende folk til side2.php kunne de blive sendt til en side som kunne hedde redirect.php
Den kunne så sende dem til side2.php

Det kunne måske afhjælpe problemet.
Avatar billede php_gubbi Nybegynder
12. juli 2001 - 16:24 #10
Det har jeg også lige prøvet OG:
hvis jeg bruger refresh meta eller header location
virker det ikke
Men
Hvis jeg bruger:
<form action=\"side2\" method=\"post\">
<input type=\"submit\" name=\"submitButtonName\" value=\"videre\">
</form>
Så virker det ??!?!?!?

Avatar billede barefoot Nybegynder
12. juli 2001 - 16:33 #11
Hvad med sådan her:

side1.php:

if($redirect){
  header(\"Location: side2.php\");
}//overnstående skal stå helt i toppen af side1.php - før det andet session halløj

Side2.php

if($redirect){
    header(\"Location: side1.php?redirect=yes\");
}//Skal også stå helt i toppen.


På side1.php der hvor du laver dine sessions osv. ændrer du lidt på din redirect.
Så det kommer til at se sådan ud:

<?php
session_start();
session_register(\'var\');
$var = 123456;
header (\"Cache-Control: no-cache, must-revalidate\");
header (\"Pragma: no-cache\");
header (\"Location: side2.php?redirect=yes\");
?>


Når du har registreret din $var sender du personen vidre til side2.php.
Men fordi at du sender $redirect med sender side2.php dig tilbage.
Og fordi at den sender $redirect med til side1.php så sender den dig vidre til side2.php igen.
Men denne gang uden redirect.

Så bliver man altså smidt frem og tilbage. Det kan være at det løser problemet.
Avatar billede php_gubbi Nybegynder
12. juli 2001 - 17:02 #12
Hmmm
Jeg kan sagtens se logikken i det ...
Men det kunne maskinen ikke :0((
Stadig det samme
Kan kun få den til at blive forældet hvis
jeg bruger form/post metoden.
Kan det have noget at gøre med at den der forældelses side kun kommer når man har sendt noget i en formular ?!?
Avatar billede barefoot Nybegynder
12. juli 2001 - 17:40 #13
Virker det da ikke også hvis man bare skriver adressen eller følger et link?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester