raivis Posted January 24, 2005 Report Share Posted January 24, 2005 Ja lietotājs ielogojās web lapā, direktorijā session_save_path() failā piem. sess_83b29f30ab7e4d8652e4f65b961432bc saglabājas šā lietotāja $_SESSION["user"] un $_SESSION["pass"] vērtības. login.php $user = $_POST["user"]; $pass = $_POST["pass"]; $_SESSION["user"] = $user; $_SESSION["pass"] = $pass; include("userArea.inc"); Ja lietotājs no web lapas izlogojās caur linku logout.php, sessijas vērtības tiek izdzēstas, bet kā lai to pašu panāk, kad lietotājs, kurš ir ielogojies - proti, atrodas online režīmā, lai izlogotos, lieto nevis linku logout.php, bet aizver Internet Explorer logu..!???logout.php $_SESSION["user"] = false; $_SESSION["pass"] = false; session_destroy(); //session_unset(); session_unregister(); $path = session_save_path()."/"; //[Session] session.save_path $handle=opendir($path); while ($file = readdir($handle)) { if(is_dir($path.$file) && $file != ".") { } elseif ($file != "." && filesize($path.$file) == 0) { unlink($path.$file); } } echo "Jūs esat izlogojies!"; Link to comment Share on other sites More sharing options...
рпр Posted January 24, 2005 Report Share Posted January 24, 2005 php.ini failaa noraadi session.gc_maxlifetime Link to comment Share on other sites More sharing options...
justus Posted January 24, 2005 Report Share Posted January 24, 2005 include("userArea.inc"); tā nedrīkst darīt userArea.inc ;abāk lieto to pašu paplašinājumu .php nevis .inc paprovē ar browseri atvērt to .inc, tad redzēsi atšķirību ! Link to comment Share on other sites More sharing options...
рпр Posted January 24, 2005 Report Share Posted January 24, 2005 include("userArea.inc"); tā nedrīkst darīt userArea.inc ;abāk lieto to pašu paplašinājumu .php nevis .inc paprovē ar browseri atvērt to .inc, tad redzēsi atšķirību ! 13017[/snapback] tas atkarīgs no tā kā apache nokonfigurēts, var jau būt, ka viņš inc failus arī parsē, bet vispār labāk uz to nepaļauties, ja nehostējies uz savas kastes. Link to comment Share on other sites More sharing options...
tamster Posted January 24, 2005 Report Share Posted January 24, 2005 un vēl labāk ir includējamos failus vispār neglabāt zem publiskās direktorijas... Link to comment Share on other sites More sharing options...
raivis Posted January 24, 2005 Author Report Share Posted January 24, 2005 Ar session.gc_maxlifetime nav viss līdzēts.. Lietotājam ielogojoties, tmp[session_save_path();] direktorijā saglabājās lietotāja dati-> $_SESSION['user'], $_SESSION['pass'] vērtības: 1. ja lietotājs izlogijās, ieejot adresē logout.php, tad viss ir Ok!=> session_destroy(); echo "Jūs esat izlogojies!"; 2. ja lietotājs izlogojās, vienkārši aizverot Internet Explorer logu, tad session tmp faili paliek neiztukšoti/nelikvidēti! - kā lai panāku, lietotājam online režīmā aizverot Internet Explorer logu,=> session_destroy(); Link to comment Share on other sites More sharing options...
PheliX Posted January 24, 2005 Report Share Posted January 24, 2005 nekaa jau nevar zinaat vai tas juuzers veel kautkur noklikos un vai vinjam vispaar veel tava lapa atveerta. Taapeec jaapienjem max lifetime peec kura uzskatam ka juuzers vairs nav "online". ja buutu taads online statuss nosakaams tad jau taas sesijas nebuutu vajadziigas :) Link to comment Share on other sites More sharing options...
raivis Posted January 25, 2005 Author Report Share Posted January 25, 2005 php.ini failā man uzstādīts session.gc_maxlifetime = 1440, bet pēc 1440 sekundēm (24 minūtēm) session tml faili netiek izdzēsti - tie vēl eksistē! :( ? Link to comment Share on other sites More sharing options...
Venom Posted January 25, 2005 Report Share Posted January 25, 2005 kamdēļ tevi tas tik ļoti traucē? gan jau pēc kāda laika tiks nodzēsti. Link to comment Share on other sites More sharing options...
рпр Posted January 25, 2005 Report Share Posted January 25, 2005 vecie faili tiek dzeesti, kad kaads apmeklee lapu, lai nav jaaliek klaat robots, kas to dara automaatiski. taa, ka ja to lapu neviens intensiivi neapmeklee, tad varbuut taa arii izskataas. Link to comment Share on other sites More sharing options...
raivis Posted January 26, 2005 Author Report Share Posted January 26, 2005 Drošivien nepareizi darīju!? - lai noteiktu, cik lietotāji ir sistēmas onlinā, login.php kodā ierakstīju: $data = "online.txt"; $file = @join("", file($data)); $online = @fopen($data, "w"); fputs($online, "|".$user); fputs($online, $file); fclose($online); , bet logout.php kodā: $data = "online.txt"; $online = str_replace(array("\n","\r"," "),"",file_get_contents($data)); $online = explode("|",$online); $key = array_search($user,$online); if ($key !== false) unset($online[$key]); $file = fopen($data,"w"); fwrite($file,implode("|",$online)); fclose($file); , bet index.php kodā izvada, cik (un kas) ir onlainā: $data = "online.txt"; $online = str_replace(array("\n","\r"," "),"",file_get_contents($data)); $online = explode("|",$online); $online = count($online) - 1; echo "on-line: <b>".$online."</b><br>"; //un taa taalaak.. ..līdz ar to, ja lietotājs izlogojās aiztaisot Internet Explorer logu, nevis ieejot adresē logout.php, online.txt fails netiek koriģēts un uzrāda, ka lietotājs vēl ir onlinā!...? ..kā lai to apeju!? ~domāju, ka kļūdaini/nekorekti man būtu to tā atstāt. Link to comment Share on other sites More sharing options...
bubu Posted January 26, 2005 Report Share Posted January 26, 2005 login.php kodā saglabā failā laiku, kad lietotājs ir iegājis lapā. Bet index.php failā salīdzini tekošo laiku, ar katra ieraksta laiku, ja piemēram tas lielāks par 10 minūtēm, tad pieņem, ka lietotājs ir izgājis no lapas un neskaiti viņu (tb izmet ārā). Link to comment Share on other sites More sharing options...
raivis Posted January 26, 2005 Author Report Share Posted January 26, 2005 login.php kodā saglabā failā laiku, kad lietotājs ir iegājis lapā.Bet index.php failā salīdzini tekošo laiku, ar katra ieraksta laiku, ja piemēram tas lielāks par 10 minūtēm, tad pieņem, ka lietotājs ir izgājis no lapas un neskaiti viņu (tb izmet ārā). Piedod, bet vai tas būtu korektājais variants!?Jo, iespējams, ka lietotājs vēl pēc 10min. (600sec.) atrodās sistēmas onlinā, bet tas vairs diemžēl netiek ņemts vērā... Link to comment Share on other sites More sharing options...
рпр Posted January 26, 2005 Report Share Posted January 26, 2005 ja nemaldos, tad tavā labā būs vai nu 0 vai 1 lietājs, jo atverot failu ar fopen('fails', 'w'), tas fails tiek no dzēsts un rakstīts no jauna. Link to comment Share on other sites More sharing options...
raivis Posted January 26, 2005 Author Report Share Posted January 26, 2005 ja nemaldos, tad tavā labā būs vai nu 0 vai 1 lietājs, jo atverot failu ar fopen('fails', 'w'), tas fails tiek no dzēsts un rakstīts no jauna...te tev gan рпр nebūs taisnība; - jau izmēģināju! - tik daudz strādā, lai saskaitītu onlinā esošos lietotājus. Link to comment Share on other sites More sharing options...
Recommended Posts