19. juli 2003 - 10:42Der er
9 kommentarer og 1 løsning
Sessions i version 4.0.3
Jeg er i gang med at lave et simpelt online shopping system i PHP, der vha. session-variabler opbevarer informationer om de valgte produkter, navn, adresse, osv.
Jeg er endnu ikke så stærk i PHP, så jeg glemte, at min server - som jeg har testet på - kunne have en anden PHP-version end den server, siden skulle lægges ud på. Og det er netop tilfældet. Min server, hvor alting virker fint, har version 4.2.2, og den anden server har kun 4.0.3. Da jeg både bruger $_POST og $_SESSION, skiftede jeg disse ud med henholdsvis $HTTP_POST_VARS og $HTTP_SESSION_VARS, men det virker stadig ikke. Værdierne bliver simpelthen ikke udskrevet rigtigt, og da jeg af uheldige (og uprofessionelle) årsager ikke har ftp-adgang til serveren, kan jeg ikke lave de sædvanlige debugging-tests.
Hvilke andre ting har jeg glemt at tage højde for?
Skal virksomheder stå stærkere mod angreb og kunne udvikle sig, skal sikkerhed, drift og forretning tænkes sammen. Det er tanken bag Jysk IT’s ambition om at skabe en “sikker fremtid” for kunderne.
I stedet for at skifte dine variabler ud kunne du fremtidssikre dem ved hjælp af dette lille triks: --------------------- list($major, $minor, $rev) = explode(".", phpversion()); if($major < 4) { die("Jeg kan kun arbejde med PHP 4.0.0 eller derover"); }
/** * Udligner forskellene mellem 4.1.x og 4.0.x * Bemaerk, at disse ikke er "superglobals" */ if($minor < 1) { $_FILES = $HTTP_POST_FILES; $_POST = $HTTP_POST_VARS; $_SESSION = $HTTP_SESSION_VARS; $_SERVER = $HTTP_SERVER_VARS; } Så behøver du ikke ændre din kode igen når de engang opgraderer php'en på dit webhotel.
Synes godt om
Slettet bruger
19. juli 2003 - 11:21#2
Ok tak. :)
Men som sagt er det ikke det, der er det eneste problem...
Jeg tror det går galt fordi du bruger session_register(), session_unregister(), session_is_registered() o.a. I stedet skal du nok bruge $_SESSION['navn']=$var;, unset($_SESSION['navn']);, isset($_SESSION['navn']); Serveren du afvikler på har sandsynligvis sat register_globals()=off.
Synes godt om
Slettet bruger
20. juli 2003 - 19:42#6
Ok, mange tak, det prøver jeg snarest muligt og vender så tilbage! :)
Synes godt om
Slettet bruger
24. juli 2003 - 10:38#7
Jeg undskylder mange gange den lange ventetid, men jeg har endnu ikke haft mulighed for at teste dit svar. Du må væbne dig med tålmodighed! :)
Bare giv dig god tid, det haster ikke for mig. c",)
Synes godt om
Slettet bruger
24. juli 2003 - 17:27#9
Nu har jeg så i mellemtiden fået kontaktet én, der har opdateret PHP-versionen på serveren til 4.3.2, og derfor er problemstillingen ikke aktuel længere.
Men du skal have mange tak for din hjælp, og hvis du lægger et svar, får du dine point right away! :)
Jeg er osse godt tilfreds med 4.3.2. Takker for points.
Synes godt om
Ny brugerNybegynder
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.