andrisp Posted November 29, 2005 Report Share Posted November 29, 2005 Es izmantoju apt. šādu pārbaudi pie katras lapas: if(isset($_SESSION['username']) && $_SESSION['ip'] == $_SERVER['REMOTE_ADDR'] && $_SESSION['loged_in'] == TRUE) { header("Location: index.php"); die(); } it kā viss strādāja normāli, bet bija vajadzība pēc vairākām saita kopijām (katra savā direktorijā, bet uz viena servera, zem vienas ip), līdz ar to tagad tas kas ir ielogojies vienā saita versijā, tiek klāt arī citām. Ko lai dara ? Itkā laikam vajadzētu ģenerēt kautkādu unikālu stringu, vai kautko tā, bet nevaru izdomāt. Paldies Link to comment Share on other sites More sharing options...
GedroX Posted November 29, 2005 Report Share Posted November 29, 2005 Nu pieliec vēl katrai `saita kopijai` $_SESSION['logged_in_saita_kopija_N'] boolean tipa elementu un pārbaudi. Ne? Link to comment Share on other sites More sharing options...
andrisp Posted November 29, 2005 Author Report Share Posted November 29, 2005 (edited) tas ir viens, bet vai nav risinājums, kurā es varētu veidot cik vien kopijas vēlētos (vienkārši kopējot, neko nemainot kodā)? laikam kautkas jāmēģina ar esošās direktorijas nolasīšanu un pārbaudi uz to. Edited November 29, 2005 by andrisp Link to comment Share on other sites More sharing options...
teror Posted November 29, 2005 Report Share Posted November 29, 2005 var jau arī šitā: $_SESSION['copy1']['username'] = ''; $_SESSION['copy2']['username'] = ''; ... Link to comment Share on other sites More sharing options...
[Ya] Posted November 29, 2005 Report Share Posted November 29, 2005 tak paņem uz uzliec papildus $_SESSION['folderis'] tipa kurā mapē atrodas un ir ok .... Link to comment Share on other sites More sharing options...
Grey_Wolf Posted November 29, 2005 Report Share Posted November 29, 2005 andrisp--> ar vienkaarshu kopeeshanuneko nepanaaksi :( teoreetiski ir pilniigi vienalga no kuras direktorijas saac logotie...... risinaajums ir genereet (vai saglabaat ar rocinjaam failaa )plniigi unikaalu mainiigo... vai parbaudi index.php faila (faila no kura logojies) pilno celju un to izmanto kaa identifikaatoru.... Link to comment Share on other sites More sharing options...
GedroX Posted November 29, 2005 Report Share Posted November 29, 2005 Tieši tā: ..vai parbaudi index.php faila (faila no kura logojies) pilno celju un to izmanto kaa identifikaatoru.. Izmanto $fn = $_SERVER['SCRIPT_FILENAME']. Lai atrastu vajadzīgo mapi, es lietotu $fn = explode('/', $fn); $fn = $fn[n]; kur n - mapes dziļums (ja tās mapes nav vienā līmenī, tad nu gan būs čakarīgāk). Link to comment Share on other sites More sharing options...
Grey_Wolf Posted November 29, 2005 Report Share Posted November 29, 2005 GedroX--> ja jau ir zinaams pilnais celjsh tad tas jau var kalpot kaa unikaals identifikaators piedevaam arii paarnesot uz citu serveri :) Link to comment Share on other sites More sharing options...
andrisp Posted November 29, 2005 Author Report Share Posted November 29, 2005 (edited) Izdomāju šādi: Ielogojoties izdara šādi: $_SESSION['folder'] = getcwd(); Pēc tam katrā lapā kopā ar pārējiem darām šādi: if (!preg_match('/^'.addslashes($_SESSION['folder']).'/', getcwd())) { die(); } Pēc idejas vajadzētu ļaut vērt lapas, kas ir $_SESSION['folder'] direktorijā un arī apakšdirektorijās. UPD: šis nestrādās, jo visu laiku tiks overvraitots folder mainīgais.. Edited November 29, 2005 by andrisp Link to comment Share on other sites More sharing options...
bubu Posted November 29, 2005 Report Share Posted November 29, 2005 if (!preg_match('/^'.addslashes($_SESSION['folder']).'/', getcwd())) { die(); } wtf ir tas? :) Es vēl saprastu šādi: if (!preg_match('/^'.preg_quote($_SESSION['folder'],'/').'/', getcwd())) { vai vispār jau vispareizāk būtu: if (strpos(getcwd(), $_SESSION['folder'])!==0) { Link to comment Share on other sites More sharing options...
andrisp Posted November 29, 2005 Author Report Share Posted November 29, 2005 (edited) if (!preg_match('/^'.preg_quote($_SESSION['folder'],'/').'/', getcwd())) { Paldies, nezināju, ka ir tāds preg_quote :) if (strpos(getcwd(), $_SESSION['folder'])!==0) { no šitā labums tikai tāds, ka ātrāk strādā un skaitās 'labais stils' ? Nu tipa ja var iztikt bez regexiem, tad vajag mēģināt neizmantot tos ? UPDATE: vispār baigi nepatīkama problēma.. ja esmu ielogojies uz viena servera vairākās lapās no vienas ip, tad izlogojoties no vienas lapas (uztaisot, piem. $_SESSION = array(); ) tikšu izmests arī no pārējām. Piem, ja hostēju vairākus saitus (neatkarīgus) uz viena hosta, tad kā lai atrisina šo problēmu ? Vai to varbūt nemaz tā nevar ? Edited November 29, 2005 by andrisp Link to comment Share on other sites More sharing options...
PheliX Posted November 29, 2005 Report Share Posted November 29, 2005 session_name( 'blabla' ) Link to comment Share on other sites More sharing options...
Grey_Wolf Posted November 29, 2005 Report Share Posted November 29, 2005 (edited) andrisp--> cit: ...lapās no vienas ip, tad... /cit; kaads sakars sessijai ar IP? atbilde.. nekaads!!! P.S. ko tad lai dara n*100ti useri kas logojas no vienas IP ? edit: kaada Xsa peec tev vajag n kopijas kuras skaties no 1 kompja? ... Edited November 29, 2005 by Grey_Wolf Link to comment Share on other sites More sharing options...
Recommended Posts