Avatar billede fojensen Nybegynder
10. maj 2002 - 15:40 Der er 7 kommentarer og
1 løsning

Session på windows-server, "Register_globals = off".

Jeg har brug for sessions til at bringe nogle variabler videre til næste side.
Min server er en windows-server hos azero.dk, og de har af sikkerhedshensyn sat "Register_globals = off".
En af eksperterne fra eksperten.dk (respac) har hjulpet mig med et par testfiler, og de giver ikke noget positivt resultat.
Mine testfiler:
-----------------------fil1.php-----------------------
<?php
session_start();
session_register('test');
$test = 'whatever';
?>

<a href="fil2.php">fil2.php</a>
----------------------------------------------

-----------------------fil2.php-----------------------
<?php
session_start();

echo $HTTP_SESSION_VARS['test'] . '    - hvis det første ord i denne linie er whatever skal du bare skrive: $http_session_vars["variabelnavn"] for at hente det du har gemt :)';

echo "<br>";

echo $test . '    - hvis det første ord i denne linie er whatever skal du bare skrive: $variabelnavn for at hente det du har gemt :)';
?>
-------------------------------------------

Jeg har arbejdet lidt med filerne, og hvis jeg laver linken i fil1.php om til en submit via en formular, kan jeg få variablen frem på næste side, hvis jeg ændrer " echo $HTTP_SESSION_VARS['test'] " til " echo $HTTP_POST_VARS['test'] "
Azero.dk skriver noget om "Register_globals = off" på http://www.azero.dk/?/support/programmering/php/faq/ , men session er ikke nævnt.
Er der en ekspert der ved hvad man gør for at få variablen lagret med session, og kaldt frem med session på næste side?

Problemet har tidligere været berørt i http://www.eksperten.dk/spm/209075 men jeg kom til at acceptere et svar, der viste sig ikke at være den rigtige løsning.

Det vil glæde mig at få problemet løst, hilsen Folmer !
Avatar billede wfarm Nybegynder
10. maj 2002 - 21:57 #1
Umildbart vil jeg tror du skal lave dit link om så det kommer til at hedde:
<a href="fil2.php?<?=SID?>">fil2.php</a>
På den måde får du session id'et med, jeg er langt fra sikker på at det er det der er galt, desuden burde du måske kigge på razor's artikel om sessions:
http://netcoders.dk/articles.asp?mode=show_article&article_id=100&tech_id=2

Held og lykke
Avatar billede fojensen Nybegynder
10. maj 2002 - 23:18 #2
wfarm > nej det kan ikke være der det ligger begravet, for i fil2.php kan jeg udskrive session-id ved at indsætte linien:
echo "session-id er : ".session_id()."<br/>";
se evt selv testfilerne på http://vindehelsinge.dk/login/fil1.php
Avatar billede kao Nybegynder
11. maj 2002 - 01:34 #3
Jeg er bange for at du ikke får løst problemet her. Alt tyder på at Azero har en forkert opsætning.
Den teoretiske (og rigtige) løsning er at bruge http_session_vars , hvis register_globals er sat off.
Det virker på min egen maskine (en win2000 med php 4.2 og apache 1.23.49).
Her er det absolut nødvendigt at læse fra http_session_vars, for at kunne få variable med over (fordi jeg også har register_globals off).

Jeg har prøvet at se om der er andre måder , men det er der ikke noget der tyder på.
Dog kan du overveje at bruge en database til at gemme sessionsdata ( istedet for filer).

Dette gøres med funktionen session_set_save_handler().
Avatar billede fojensen Nybegynder
11. maj 2002 - 15:21 #4
Jeg vil gerne overveje at bruge en database til at gemme sessionsdata, og jeg har været i manualen og læse lidt om funktionen session_set_save_handler().
Jeg er bare stadig ikke helt sikker på hvordan jeg skal gribe det an, og i manualen står der bl.a. :
"Note: You must set the configuration option session.save_handler to user in your php.ini file for session_set_save_handler() to take effect."
Som jeg forstår det, skal jeg have sat "session.save_handler" til "user", men kan jeg selv gøre det ?
Har jeg adgang til php,ini og evt. hvordan ?
Avatar billede fojensen Nybegynder
14. maj 2002 - 23:44 #5
kao > er det muligt at få dig til at uploade de 2 små testfiler som jeg ikke kan få til at køre, til din server ?
Formålet skal være at få dem afprøvet på en server der ligner min, inden jeg skriver til Azero i forsøg på at få dem til at løse prøblemet.
Avatar billede kao Nybegynder
17. maj 2002 - 17:06 #6
Jeg har (endnu) ikke nogen server der er offentlig tlgængelig.
Jeg har et internt netværk, hvor jeg både kører Linux, Windows 2000 og windows 98.
Jeg har prøvet de script jeg tidligere har givet dig på både min linux og win2000 maskine (begge kører apache, php og mysql).
Mine script virker fint på både windows og linux , men ikke hos Azero.
Men hvad der er galt ved jeg desværre ikke !
Avatar billede fojensen Nybegynder
19. maj 2002 - 20:54 #7
ok kao, jeg må bare lede videre efter en anden bruger hos Azero med windows-server, fordi jeg jeg skal have noget virkelig håndfast for overhovedet at få Azero til at se på sådan en sag, eller også må jeg bede dem flytte mig over på en unix-server.
Avatar billede fojensen Nybegynder
28. maj 2002 - 23:49 #8
Her kommer løsningen - for det kan lade sig gøre:
måden at registrere session på i fil1.php laves om til
$HTTP_SESSION_VARS['test'] = 'whatewer';
så de simple testfiler fommer til at se sådan ud:

-----------------------fil1.php-----------------------
<?php
session_start();
$HTTP_SESSION_VARS['test'] = 'whatewer';
?>

<a href="fil2.php">fil2.php</a>
-------------------------------------------------------

og så har den variablen "test" med til næste side, hvar den kan skrives ud ved hjælp af:
echo $HTTP_SESSION_VARS['test'];

-----------------------fil2.php-----------------------
<?php
session_start();

echo $HTTP_SESSION_VARS['test'] . '    - hvis det første ord i denne linie er whatever skal du bare skrive: $http_session_vars["variabelnavn"] for at hente det du har gemt :)';
echo "<br>";
echo $test . '    - hvis det første ord i denne linie er whatever skal du bare skrive: $variabelnavn for at hente det du har gemt :)';
?>
-------------------------------------------------------

Jeg vil være så beskeden at tage pointene tilbage til mig selv, i håb om at andre kan få glæde af svaret før eller siden.
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