Jump to content
php.lv forumi

Kaklz

Moderatori
  • Posts

    1,401
  • Joined

  • Last visited

Everything posted by Kaklz

  1. Ja tu glabātu sesijas nevis ar PHP iebūvētajiem līdzekļiem, bet ar MySQL vai kādas citas datubāzu vadības sistēmas palīdzību, tad varētu vienkārši izpildīt vienu SQL pieprasījumu, lai noskaidrotu pašlaik aktīvo sesiju skaitu.
  2. nē, tas nebūtu reāli: 1. ir cilvēki, kas sēž aiz firewall un nelaiž tam cauri ECHO requestus (ping komandu), attiecīgi IP adresi tu nopingot nevari. 2. ir pietiekoši daudz uzņēmumu un iestāžu, kurās ir viena ārējā IP adrese uz neskaitāmiem datoriem. 3. ko tu darīsi situācijā, kad tev būs 100 aktīvu lietotāju? Katru pingosi un no viņa saņemsi arī atbildi? 4. uz servera turēt atvērtu browseri ir deizgan slimīgs pasākums, protams, ja vien mums ir vienāda izpratne, ko nozīmē vārds browseris un kas ir serveris. Ja tu runā par shell skriptu, kas visu laiku sēž atmiņā un veic tevis teiktās darbības, tad tas jau ir vairāk uz pareizo pusi, taču tas nekādā gadījumā nemaina 3 iepriekšējos punktus. Reālākais variants tomēr ir tas pats JavaScript (HTTPRequest), kas ar savu settimeout() funkciju kaut kā padod serverim datus par savu dzīvību .. un tajā pašā laikā serveris ar php un kaut vai MySQL palīdzību reģistrē visas sesijas datubāzē un dzēš teiksim visas sesijas, kurās nav nekādas aktivitātes ilgāk kā teiksim 10 minūtes no vietas.
  3. Pamēģini uz 3 sekundēm izraut tīkla vadu no datora ;) Ja ir nestabilāks pieslēgums, šis variants fiksi un ātri izgāžas.
  4. <html> <head> <title></title> <meta content=""> <style></style> </head> <body> <script type="text/javascript"> function addDays(date, add) { var t = date ? new Date(date) : new Date(); t.setDate(t.getDate() + add); return t; } function yesterday(date) { return addDays(date, -1); } function tomorrow(date) { return addDays(date, +1); } d = new Date(2004, 0, 1, 0, 0, 0); alert('Vakar bija: ' + yesterday(d)); alert ('Šodien ir: ' + d); alert('Rīt būs: ' + tomorrow(d)); </script> </body> </html> Google: yesterday date function javascript No rezultātiem jāizvēlas pirmais.
  5. Redzi, te jau tu mazliet aizbrauc auzās. PHP stāv uz servera, SmartIRC klasi ( ja nemaldos tu domāji PEAR komplektācijā iekļauto Net_SmartIRC) tu izmanto uz servera. Kur pie velna ir klienta dators un kādā veidā notiek datu apmaiņa ar klientu? Protams, tieši tā, kā Jāzeps teica - klients pieslēdzas serverim un savāc datus no PHP skripta, kurš tos XHTML veidā padod klientam. Tas, kā Net_SmartIRC sazinās ar IRC serveri, ir jau pavisam cits pastāsts - tur apakšā ir IRC protokols, sazināšanās notiek ar Socket funkcijām. (http://www.irchelp.org/irchelp/rfc/rfc.html) Slēptais iframe ar pliku PHP jebkurā gadījumā nav drošs pasākums starp klientu un serveri. Tikko kaut kādu mirkli pazūd tīkla pieslēgums, tā savienojums pārtrūkst un klients vairs nu nekādi necenšas savienoties ar serveri, attiecīgi tu nevari zināt, vai klients vēl joprojām ir lapā. Tāpat varētu būt arī problēmas ar to, ka pārlūkprogramma ilgāku laiku nesaņemot nekādus datus no servera izdomā, ka savienojums ir jāpārtrauc (Connection Timeout) Ja tev ir vajadzība perfekti zināt, ko lietotājs attiecīgajā brīdī dara sistēmā, tad būvēt sistēmu uz HTTP protokola varētu arī nebūt pati labākā ideja. Patiesībā, lai tev varētu labāk palīdzēt tu varētu paskaidrot, kas ir tas, ko tu mēģini uzbūvēt? Vai tā ir vienkārši mājas lapa, kaut kāda uzskaites sistēma, vai kas cits.
  6. jauns pieprasījums tomēr nav visas lapas pārlāde, attiecīgi uz šāda risinājuma tomēr var pat nopelnīt - ja es ierakstu un redzu cik ir rezultātu, es varbūt saprotu, ka vēl jāprecizē savi atslēgas vārdi, nemaz nespiežot meklēšanas pogu. Attiecīgi tiek ietaupītas vairākas visas lapas un visas informācijas ielādes, tā vietā no datubāzes kaut kur savācot tikai attiecīgā atslēgas vārda rezultātu skaitu.
  7. Kaklz

    cik ir ONLINE

    Nez kāpēc neļauj labot iepriekšējo postu. šite mazliet saprotamāk, bez iezīmju kļūdām: <?php echo rand(1,20); ?> Bet ja nopietni, tad doma varētu būt aptuveni šāda: Saglabājam kādā vietiņā (failā vai datubāzē), kad un kāda IP adrese ir apmeklējusi mūsu lapu, pie katras lapas ielādes aplūkojam failiņu un izdzēšam ierakstus, kas vecāki par kādu noteiktu laika periodu. Parasti mājas lapās norāda, ka x apmeklētāji ir bijuši pēdējo y minūšu laikā. Tātad, PHP kods: // atceries par x apmekleetaajiem peedeejo y minuushu laikaa ? $y = 15; // sagatavojam ierakstu par apmekleejumu - ip adrese un shiibriizha laiks $visit = $_SERVER['REMOTE_ADDR'] . '|' . date('Y-m-d H:i:s') . "\n"; // veram valjaa failu $fp = fopen('fails', 'a'); // rakstaam apmekleejumu failaa fwrite($fp, $visit); // veram ciet failu fclose($fp); // lasaam visus datus no faila ieksh allVisits masiiva $allVisits = file('fails'); // inicializeejam masiivu $currentVisitors = array(); // ejam cauri visiem datiem foreach ($allVisits as $visitItem){ // sadalaam katru rindinju pa sastaavdaljaam - IP adrese un apmekleejuma laiks list($ip, $time) = explode('|', $visitItem); // ja ir peedeejo y minuushu laikaa, tad if (strtotime($time) + $y * 60 > strtotime(date('Y-m-d H:i:s'))){ // atceramies sho apmekleejumu $currentVisitors[$ip] = $time; } } // veram valjaa failu $fp = fopen('fails', 'w'); // ejam cauri visiem apstraadaatajiem datiem foreach ($currentVisitors as $ip => $time){ // veidojam rindinju $visit = $ip . '|' . $time . "\n"; // rakstaam failaa fwrite($fp, $visit); } // veram ciet failu fclose($fp); // galu galaa, izdrukaajam aaraa, cik tad nu mums iisti ir bijushi tie apmekleetaaji peedeejo y minuushu laikaa. echo count($currentVisitors); njem par labu, testeejis neesmu, vajadzeetu straadaat.
  8. jautājums, priekš kam tev glabāt tos AA un BB, ja to nosaka jau grupa? Šādā variantā sanāk, ka tu tos datus glabā atkārtoti. Attiecīgi, ja tu glabātu numurus kā Sērija + numurs, tad būtu daudz vienkāršāk veikt automātisku ierakstu pievienošanu: Tabula: serija | numurs AA | 00001 AA | 00002 BB | 00001 un tā tālāk. Attiecīgi pielikt jaunu numuru klāt var ar SELECT max (numurs) from tabula where serija = 'AA'; insert into tabula (serija, numurs) values ('AA', [iepriekšējā select dabūtais max cipars + 1]); Lai nodrošinātu to, ka neviens cits nepaspēj selektus izdarīt vienā laikā ar tevi un ievietot tādu pašu numuru, var izmantot transakcijas. Ja nemaldos, tad tam pašam MySQL viņas ir, ja izmanto InnoDB tabulas tipu. Protams, varu arī kļūdīties, neesmu īpaši viņā iedziļinājies.
  9. šo te kādu brīdi atpakaļ aprunāja ārzemju PHP blogos: http://blog.bitflux.ch/archive/spotlight_l...arch_added.html
  10. $params = array('viens'=> 'divi', 'triis' => 'cetri', 'pieci' => 'sesi' ); $sqlWhereParts = array(); foreach ($params as $key => $value){ $sqlWhereParts[] = $key . '="' . $value . '"'; } $sqlQuery = 'SELECT * FROM tabula WHERE ' . join(' AND ', $sqlWhereParts);
  11. ja tev veel ir e-pasta adrese inbox.lv, tad tur ir viens piedaavaajums ..
  12. Sūdīgs admins :) .. lai gan bieži vien pretī ir tādi brīnumbērni, ko pat nevar pielauzt uz 1 moduļa pievienošanu, kur nu vēl vairāku :)
  13. Venom, http://www.thephpwtf.com/node/26 :P
  14. nevaig gadījumā arī case-insensitive match? tb pielikt klāt arī i modifikatoru? p.s. vispār jau ātrāk tas viss varētu notikt, ja tu iedotu konkrētu teksta gabalu, kuru tev neņem pretī.
  15. multiline pattern modifikators ir m, nevis n ;) :P
  16. Pēc idejas adapt - pielāgot no angļu valodas, tāpēc arī teicu, lai viņš nopērk strāvas pārveidotāju :) Ir nelaba aizdoma, ka cilvēks ir uz labu laimi saklikšķinājis kaut ko flash un tagad grib ar PHP mailu nosūtīt no sava saklikšķinātā brīnuma. :P
  17. Varbūt nopērc strāvas pārveidotāju no 220 uz 12V? Palasi par SendVariables un LoadVariables iekš Flash palīdzības
  18. LIMIT [offset], [count] LIMIT 10, 20 nozīmē nevis no 10 līdz 20. ierakstam, bet sākot no 10. paņemt 20 ierakstus. PHP vienmēr izvada datus pareizi - tu nepareizi liec izvadīt :P
  19. kā tu iedomājies uzskaitīt unikālo hostu skaitu? Manā izpratnē ir jāsaglabā visas IP, kuras ir apmeklējušas tavu lapu.
  20. Neliela aptauja par to, ko jūs gribētu redzēt savā hostinga paciņā. PHP 4 vai PHP 5 ? MySQL 3.23.x, MySQL 4.0.x vai MySQL 4.1.x? Vai ir nozīme PostgreSQL klātbūtnei? Kādai aptuveni vajadzētu būt PHP konfigurācijai?Kaut kādai, būtībā neko man nevajag, lai tikai ir standarta konfigurācija Ir dažas lietas, kas man ir vajadzīgas citādi (GD, TTF, kaut kas cits). Ja izvēlaties šo atbildi, pierakstiet, kas jūs varētu interesēt. Pēc iespējas vairāk iekļautas jaunās tehnoloģijas (SQLite, SimpleXML, SOAP, MySQLi, XSL, XSLT, utt.) Vēlams būtu pierakstīt, kas jūs tieši interesētu. [*]Vai ir nepieciešama statistika? (apache log failu analīze) [*]Vai ir nepieciešams webmail interfeiss? [*]Vai ir nepieciešams web bāzēts failu pārvaldnieks? [*]Vai ir nepieciešams kaut kāds vienots administrācijas panelis? [*]Cik daudz diska vietas jums būtu nepieciešams? [*]Vai jūs interesētu web programmatūras uzstādīšanas pakalpojumi? Tb. pasakat savam pakalpojumu sniedzējam, šodien gribu sev blogu uz Wordpress, pakalpojumu sniedzējs uzstāda. Pasakat rīt, ka gribat teiksim Invision PowerBoard forumu, pakalpojumu sniedzējs to uzstāda. [*]Vai ir nozīme tam, kā izskatās pakalpojumu sniedzēja lapa? Saprotiet pareizi - neviens jums neliek mainīt savu hostinga pakalpojumu sniedzēju, vienkārši mani interesē cilvēku vēlmes, ja iespējams pēc iespējas detalizēti un ar pamatojumu. Paldies tiem, kas atbildēs.
  21. logrotate ir pats par sevi, vienkārši bija doma, kā organizēt statistikas ģenerēšanu. Laikam jau iesākumam pietiks arī ar to pašu masīvu padarīšanu un datu serializēšanu. Pieņemsim, ka būs iesākumam tie paši pāris tūkstoši ierakstu sekundē. Galvenais ir no sākuma kaut ko izveidot un pēc tam jau var sākt veidot optimizācijas.
  22. ir divas lietas. 1) vai esi kaut ko dzirdeejis par datubaazu normaalformaam un datu struktureeshanu? Nudien nedomaaju, ka datubaazee datus vajadzeetu atdaliit ar | 2) $filedata = $row[pabijis_sektoros]; $filedata = array(); Vai ir jeega pieshkjirt mainiigajam kaadu veertiibu, ja tuuliit naakamajaa rindinjaa tu mainiigo paarveert par tukshu masiivu?
  23. pastāsti vēlreiz, man nepieleca :)
  24. Ar to datubāzi jau būs problēmas nevis pie insert, bet pie maģiskajiem selektiem. Vismaz man tā liekas. Ja datubāze ir ar 2 000 000 ierakstiem, tad nekādus jaudīgos selektus saprātīgā laikā arī ārā dabūt būs grūti. Teiksim tas pats webalizer - viņš taču neizmanto nekādu DB, awstats arī ne. Pie tam, ja nemaldos tad gan vienam, gan otram nav nekāda limita uz log faila lielumu. Ja nu tomēr ejam roku rokā ar masīviem, man liekas, ka pietiek ar: $dailyResults = array( '2004-12-01' => array( 'hits' => 1000000, 'hosts' => 10000, 'pageviews' => 10000, 'bandwidth' => 1000000, 'visits' => 10000 ) '2004-12-02' => array( 'hits' => 1000000, 'hosts' => 10000, 'pageviews' => 10000, 'bandwidth' => 1000000, 'visits' => 10000 ) ... līdz mēneša pēdējam datumam ) Līdzīgi pa stundām $hourlyResults = array( 0 => array( 'hits' => 10000, 'pages' => 1000 ) 1 => array( ...līdz 23 ) Un kopējais masīvs priekš total results: $totalResults = array( 'hits'=> 23949 'pages' => 398969 'visits' => 50225 'bandwidth' => 18314746 'hosts' => 1923 } Labi, te nebūtu iekšā referer, user-agent un kāda tur vēl statistika. To pārējo varētu vēl piedomāt pēc tam. Iesākumam pietiktu kaut vai ar šādiem datiem, no kuriem ar GD varētu uzģenerēt normālus grafikus. Tikko ienāca prātā viena cita doma - kā būtu pamēģināt izmantot SQLite? It kā viņi baigi lepojās, ka ir ātrāki par MySQL, PostgreSQL un citām datubāzu pārvaldības sistēmām.
×
×
  • Create New...