Avatar billede aaanders Nybegynder
04. december 2009 - 11:01 Der er 24 kommentarer

sqlsrv_connect laver mystisk fejl når jeg håndterer sessions

Hej

Jeg er ved at lave en sessionshandler, så den ligger det i SQL Server 2005 i stedet for at bruge filer.

Når jeg bruger min databaseklasse uden for Session-klassen så virker den helt fint.. også i andre klasser mm..

Men lige så snart jeg forsøger at bruge sqlsrv_connect() i min database-klasse inden i sessionshandleren så laver den en underlig fejl: PHP Fatal error:  sqlsrv_errors contains an invalid type in c:\inetpub\wwwroot\php-akvariefisk\elements\classes\database.php on line 19

Det er det eneste jeg har at gå efter.. Any ideas!?

Vh.
Den forvirrede
Avatar billede erikjacobsen Ekspert
04. december 2009 - 11:09 #1
Hvad er der i din sqlsrv_errors? Har du en databaseforbindelse, eller en åben fil? Det du har skal kunne serialiseres. http://php.net/manual/en/function.serialize.php
Avatar billede aaanders Nybegynder
04. december 2009 - 11:16 #2
min connect funktion:
http://afekssesssions.pastebin.com/d3699c22

Linjen der er oplyst har jeg lige sat ind.. men det skete der intet ved??
Avatar billede erikjacobsen Ekspert
04. december 2009 - 11:26 #3
Du skal ikke kalde serialize selv. Det sker automatisk. Men min kommentar var forkert: Hvad er der i de klasser du putter i dine sessions-variabler?
Avatar billede aaanders Nybegynder
04. december 2009 - 11:29 #4
Altså min sessions-handler?
Avatar billede aaanders Nybegynder
04. december 2009 - 11:40 #5
Avatar billede erikjacobsen Ekspert
04. december 2009 - 11:46 #6
Jo, men hvilke værdier gemmer du i dine sessions-variabler?
Avatar billede aaanders Nybegynder
04. december 2009 - 11:49 #7
Umiddelbart så gemmer jeg strings og ints..

altså f.eks.
$_SESSION["UserID"] = 5375 eller
$_SESSION["RefPage"] = "/pages/akvarie.php"

Det er bare underligt at den lige pludslig ikke vil noget når den bliver kaldt fra f.eks. open i SessionManager
Avatar billede aaanders Nybegynder
04. december 2009 - 11:50 #8
med open mener jeg read

:P
Avatar billede erikjacobsen Ekspert
04. december 2009 - 11:56 #9
Det skal virke med strenge og tal. Men kunne det tænkes du også gemmer noget andet?
Avatar billede erikjacobsen Ekspert
04. december 2009 - 12:03 #10
Din sessionhandler er også lidt sjov, når du fx ikke bruger indholdet af $Data. Det kan jo faktisk være, det er derfor det går galt, når du skal læse sessionen igen ... ;)
Avatar billede aaanders Nybegynder
04. december 2009 - 12:04 #11
Jeg prøver lige at rode lidt med den.. forstår bare ikke hvorfor den også laver ballade når den bare skal forbinde til databasen!?
Avatar billede aaanders Nybegynder
04. december 2009 - 12:06 #12
http://afekssesssions.pastebin.com/d6ead758c

Så har jeg rettet den så den bruger $Data og $ID ..
Stadig no luck.. :(
Avatar billede erikjacobsen Ekspert
04. december 2009 - 12:08 #13
Det har ikke noget at gøre med databasen, men med det indhold du læser og skriver. Hvad er din kode nu? Og har du startet forfra, med en helt ny session i browseren? Og hvad står der rent faktisk i din database?
Avatar billede erikjacobsen Ekspert
04. december 2009 - 12:11 #14
Du skal nok også kigge på din håndtering af "expires" værdien
Avatar billede aaanders Nybegynder
04. december 2009 - 12:17 #15
Nuv. Kode:
http://afekssesssions.pastebin.com/d5b830f3a

Har lige ordnet Expires

Har prøvet med helt ny session.

Database struktur:
http://afekssesssions.pastebin.com/d42cfc624

Der er ingen rows.
Avatar billede erikjacobsen Ekspert
04. december 2009 - 12:42 #16
DF_sessions_Expires? DF_sessions_UserID? Kommer der stadig samme fejlbesked?
Avatar billede aaanders Nybegynder
04. december 2009 - 12:49 #17
Samme fejlbesked, ja..

Jeg har fået strukturen ved at gå ind i SQL studio og vælge script to -> create
Avatar billede erikjacobsen Ekspert
04. december 2009 - 13:23 #18
Ok da. Men kan du lave "verdens simpleste eksempel" på noget der går galt, når du indsætter noget i en sessions-variabel?
Avatar billede aaanders Nybegynder
04. december 2009 - 13:43 #19
Tjah... det går jo faktisk galt lige så snart jeg bruger session_start() ...

Det er INDEN jeg overhovedet har mulighed for at sætte noget ind..
Avatar billede aaanders Nybegynder
04. december 2009 - 13:43 #20
Hvis jeg slet ikke bruger databasen, så sker der ikke noget. Der komme ikke nogen fejl... ???
Avatar billede aaanders Nybegynder
04. december 2009 - 13:45 #21
Det går faktisk galt når jeg bruger databasen inde i sessions-funktionerne...

Min MSSQL-klasse
http://afekssesssions.pastebin.com/d11420070
Avatar billede erikjacobsen Ekspert
04. december 2009 - 18:59 #22
Hvad hvis du ændrer din read til kun at give '' og ikke røre DB-en?
Avatar billede aaanders Nybegynder
04. december 2009 - 21:07 #23
Hvis jeg udkommenterer alt der kalder sqlsrv_connect, altså både i read/open mm så kommer der ikke nogen fejl.. så loader den som normalt...
Avatar billede aaanders Nybegynder
04. december 2009 - 23:01 #24
Kan det være en fejl i Microsoft's SQL driver, der gør at når den forbinder fra sessionshandleren så laver den af en eller anden grund en mystisk fejl? Tror lige jeg vil prøve med den gamle driver..
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