Avatar billede neocron Nybegynder
07. oktober 2007 - 02:34 Der er 14 kommentarer og
1 løsning

PHP (eller IIS) issues mht. sessions

Det kan godt være at dette spørgsmål hører bedst hjemme under IIS kategorien, idet erikjakobsen påpegede at dette problem sandssynligvis lå i IIS, men jeg prøver alligevel idet andre her kunne have erfaring på dette punkt.

Problemet er at sessioner ikke gemmer data på tværs af siderne.
Jeg har faktisk lavet en tråd på det før, men der havde jeg ikke rigtig nogen indgangsvinkel til problemet før nu hvor erik mente at det sandssynligvis er IIS, som laver kage i sessionerne.

Ved en Googling blev jeg anbefalet at lave en ini_set("session.use_cookies", false); men dette hjalp ingenting.

Følgende script burde vise problematikken;

*** test1.php ***
<?php
session_start();
session_register("username");
       
$username = "justme";
           
Header("Location: test_login.php");
?>

*** test_login.php ***
<?php
session_start();
   
if ( isset ($username) )
  echo $username;
else
  echo "Not authenticated!"; // her ender vi uanset hvad
?>

Jeg rykker PHP over på en Unix server for det er for bøvlet med alle de underlige problemer - dette skulle gerne ultimativt løse problemet. Men det kræver at jeg får købt ind til en maskine der kan køre de ting jeg har brug for. Indtil da ville jeg gerne se om jeg kunne få fundet en løsning for at få det til at virke.

Er der nogle af jer som har erfaring med dette mystiske problem?
Jeg ved godt at det er begrænset, den information jeg umiddelbart kan give, og det beklager jeg naturligvis.
Avatar billede gammelhat Nybegynder
07. oktober 2007 - 02:41 #1
prøv på den moderne måde

*** test1.php ***
<?php
session_start();
     
$username = "justme";

$_SESSION['username'] = $username;
         
Header("Location: test_login.php");
?>

*** test_login.php ***
<?php
session_start();
 
if ( isset ($_SESSION['username']) )
  echo $_SESSION['username'];
else
  echo "Not authenticated!"; // her ender vi uanset hvad
?>
Avatar billede neocron Nybegynder
07. oktober 2007 - 03:13 #2
Jeg burde have skrevet at det er uanset om vi gør det på den nye eller gamle måde. Vi får samme kedelige resultat, desværre.
Avatar billede gammelhat Nybegynder
07. oktober 2007 - 04:14 #3
Bliver sessionen oprettet i dit session-bibliotek?

Du kan evt benytte filemon (fra sysinternals) til at se, om den bliver forsøgt oprettet i det bibliotek du forventer
Avatar billede erikjacobsen Ekspert
07. oktober 2007 - 08:50 #4
I dit tidligere spørgsmål brugte du et link ( echo "<a href=\"session2.php\">Se side 2</a>"; ), her laver du en redirect. IIS har (haft?) problemer med at sætte cookies på samme side som man laver en redirect. Det med linket bør derimod også virke, selv på IIS/PHP.
Avatar billede neocron Nybegynder
07. oktober 2007 - 14:01 #5
Hverken redirect med header() eller direkte via links virker. De giver samme resultat - sessions data'en kommer ikke med over til den anden fil.

Gammelhat, lyder interessant - jeg er ikke bekendt med filemon / sysinternals - tør jeg spørge om du kan uddybe omkring dette?
Avatar billede erikjacobsen Ekspert
07. oktober 2007 - 14:39 #6
Ok - men hvad siger php.ini om session-kataloget. Findes det? Er der noget i det?
Avatar billede neocron Nybegynder
07. oktober 2007 - 15:36 #7
upload_tmp_dir="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\PHP\upload"
session.save_path="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\PHP\session"

Og ja, der ligger forskelle filer i sessions-dir'et. Eks:
sess_3bgt3gevu91ffd1mk1fbe0n2q7

Jeg har forsøgt at ændre upload samt session dir'et til f.eks. mit PHP installdir og så lave en session og upload folder og opdateret php.ini filen tilsvarende, men det hjælper intet, ej heller efter reboot af server. Jeg har også forsøgt at skrive det direkte link istedet for forkortelserne, for det ved jeg at ISS godt kan blive negativ over.

Dvs. at jeg også har forsøgt således:
upload_tmp_dir="C:\Documents and Settings\Administrator\Local Settings\Temp\PHP\upload"
session.save_path="C:\Documents and Settings\Administrator\Local Settings\Temp\PHP\session"

Og intet af det giver noget resultat.
Avatar billede neocron Nybegynder
07. oktober 2007 - 15:37 #8
phpinfo() afslører desuden udfra hvad jeg kan se ikke noget galt med sessions, der får jeg samme output som på mit webhotel

(Session Support  enabled 
Registered save handlers  files user)
Avatar billede olebole Juniormester
07. oktober 2007 - 16:25 #9
<ole>

Hvis du tømmer dit session-dir og prøver at oprette en ny session. Oprettes så en session-fil med det forventede navn - og indholder den, hvad du forventer?

/mvh
</bole>
Avatar billede neocron Nybegynder
07. oktober 2007 - 17:26 #10
Hmm godt spørgsmål.
Jeg har netop tømt dir'et for alle filerne, men ingen nye oprettes, på trods af at min php fil tildeles et sessions id (okp3ib8vflknqm1fn6ijiaj7f0). Hvis man søger på dette, burde der tilsvarende oprettes en "sess_okp3ib8vflknqm1fn6ijiaj7f0" fil, men den findes ikke. Besynderligt. Vi må altså umiddelbart konkluderes at de ikke oprettes.

Det er korrekt sti, og der er read/write-permissions til dir'et.
Avatar billede gammelhat Nybegynder
07. oktober 2007 - 18:47 #11
Med filemon kan du se hvilke filer et program tilgår på harddisken. At se hvad et program rent faktisk laver på harddisken, kan sommetider løse nogle sjove problemer
Avatar billede erikjacobsen Ekspert
07. oktober 2007 - 19:38 #12
Lav et nyt katalog, C:\sessions, giv rettigheder til alt og alle - selv naboens hankat må skrive i det. Sæt det ind i din rigtige PHP. Og læn dig tilbage, og se hvad der sker. Men brug et link, og vent med redirect.
Avatar billede neocron Nybegynder
10. oktober 2007 - 23:58 #13
Jeg beklager det sene svar.
Det ser ud til at det hjalp at lave et tomt dir og give fuldstændig adgang. Nu virker det sgu :) Det var spot-on, Erik. Men tusind tak til alle for bidrag, det har bestemt hjulpet mig til at fejlsøge på det en anden gang.

Erik, jeg går ikke ud fra at du er begyndt at samle på point, men skulle det være tilfældet skal du naturligvis have dem :)
Avatar billede erikjacobsen Ekspert
11. oktober 2007 - 08:40 #14
Nej tak. Virker det også med en redirect?
Avatar billede neocron Nybegynder
02. august 2008 - 13:40 #15
Hej med jer,
Denne tråd har vist været åben alt, alt for længe. Har desværre glemt alt om det da jeg ikke har været logget på i det sidste lange stykke tid.

Maskinen fungerer iøvrigt perfekt - og har gjort det lige siden!
Min dybeste tak skal lyde til jer alle.
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



IT-JOB