Avatar billede kgp43 Nybegynder
24. januar 2004 - 20:35 Der er 13 kommentarer og
1 løsning

Session save path

Hejsa,

Dette spørgsmål er vedr: http://www.eksperten.dk/spm/448200
Jeg har stadig problemer med dette (stien), og den anden er åbenbart kommet for langt tilbage.

Jeg har snakket med min host og fået at vide at stien til save path er: /tmp


-----------------------
Svar fra supporten:
-----------------------

The path to the session save directory is /tmp - you should have access to open this directory and read and write from it. For more help with the script, you may want to contact the scripts creator or visit their website is they have one.
-----------------------


-----------------------
Script:
-----------------------
<? session_start();?>
<html>
<head>
<title> Online brugere </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?
define("MAX_IDLE_TIME", 3);
function getOnlineUsers() {
    if ($directory_handle = opendir(session_save_path())) {
        $count = 0;
        while (false !== ($file = readdir($directory_handle))) {
            if ($file != '.' && $file != '..') {
                if (time() - fileatime(session_save_path() . '\\' . $file) < MAX_IDLE_TIME * 60) {
                    $count++;
                }
            }
        }
        closedir($directory_handle);
        return ($count);
    } else {
    return false;
    }
}
echo 'Number of online users: ' . getOnlineUsers() . '<br>';
?>


-----------------------
Fejl
-----------------------
Warning: fileatime(): Stat failed for /tmp\horde.log (errno=2 - No such file or directory) in /home/fedtmco/public_html/tl/index.php on line 167
Avatar billede Slettet bruger
24. januar 2004 - 21:05 #1
Det ser ud til at scriptet er lavet til at køre på en Windows-maskine. Prøv at skifte '\\' ud med '/'
Avatar billede erikjacobsen Ekspert
24. januar 2004 - 21:57 #2
Det er et webhotel?? Så tæller du alle webhotellernes brugere på denne måde, da du
her har adgang til alle sessions.

Det er forøvrigt et godt sted at teste udbyderens sikkerhed. Kan du læse
andres sessionfiler, er der ikke sikkerhed nok til ret meget.
Avatar billede kgp43 Nybegynder
25. januar 2004 - 00:48 #3
Jeg har et webhotel.
Det virker forresten stadig ikke.

Jeg har en tmp folder får jeg logger på med FTP, så tror ikke den er delt.
Avatar billede kgp43 Nybegynder
25. januar 2004 - 00:53 #4
Nuværende script:

<?
define("MAX_IDLE_TIME", 3);
function getOnlineUsers() {
    if ($directory_handle = opendir(session_save_path())) {
        $count = 0;
        while (false !== ($file = readdir($directory_handle))) {
            if ($file != '.' && $file != '..') {
                if (time() - fileatime(session_save_path() . '/' . $file) < MAX_IDLE_TIME * 60) {
                    $count++;
                }
            }
        }
        closedir($directory_handle);
        return ($count);
    } else {
    return false;
    }
}
echo 'Number of online users: ' . getOnlineUsers() . '<br>';
?>


Fejl:

Warning: fileatime(): open_basedir restriction in effect. File(/tmp/mysql.sock) is not within the allowed path(s): (/home/fedtmco:/usr/lib/php:/usr/local/lib/php:/tmp) in /home/fedtmco/public_html/tl/index.php on line 167
Number of online users: 6
Avatar billede kgp43 Nybegynder
25. januar 2004 - 00:54 #5
Number of online users: 6

hmmm... kunne se ud til at det virker, men hvad er fejlmeddelsen så?
Avatar billede Slettet bruger
25. januar 2004 - 08:39 #6
Hvis du laver en mappe i dit home, der hedder sessions og kalder denne kommando

session_save_path('/home/fedtmco/sessions/');

på alle dine sider, lige før session_start(), så skulle det virke - uden den fejlmeddelelse. Og så skulle du være sikker på, at det kun er dine egne sessions, der bliver talt og at det kun er dig, der kan se dem.
Avatar billede erikjacobsen Ekspert
25. januar 2004 - 09:18 #7
"kun er dig, der kan se dem." er nu ikke nødvendigvis rigtigt ... ;(
Avatar billede erikjacobsen Ekspert
25. januar 2004 - 09:19 #8
Men webhotellet har ellers den forventede sikkerhed hvad angår PHP. Er der
andre scriptsprog mulige, er det stadig muligt at /tmp kan tilgås.
Avatar billede Slettet bruger
25. januar 2004 - 09:36 #9
Erik: Nej, der udtalte jeg mig vist lidt for skråsikkert.

Hvis hotellet tillader andre scriptsprog skal de være underlagt samme restriktioner, for at det er helt sikkert med denne løsning.

Hvis det skal være endnu mere sikkert, kan du lave din egen session-handler, som gemmer sessions i en database. Så vil det eneste sikkerhedshul være dit brugernavn og password til databasen. (Og hotellets opsætning af brugerrettigheder på databasen.)
Avatar billede kgp43 Nybegynder
27. januar 2004 - 10:11 #10
Jeg har hørt om at gemme sessions in en db. Er der en af jer der har et link til en artikkel eller lign. ?
Avatar billede Slettet bruger
27. januar 2004 - 13:29 #11
Ja, der er en god artikel om at lave sin egen databasedrevne sessionhandler her: http://www.zend.com/zend/spotlight/code-gallery-wade8.php
Avatar billede kgp43 Nybegynder
06. februar 2004 - 15:01 #12
Sandbox: lav et svar, så du kan få nogle point. Er ved at være træt af at se på alle mine udestående point.
Avatar billede Slettet bruger
06. februar 2004 - 16:21 #13
Javel.

Fik du det til at virke?
Avatar billede kgp43 Nybegynder
19. februar 2004 - 10:21 #14
Nej, den kommer stadig med en fejl, men tæller dog sessions.
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