Jump to content
php.lv forumi

wintermute

Reģistrētie lietotāji
  • Posts

    144
  • Joined

  • Last visited

Everything posted by wintermute

  1. Es nez kāpēc iedomājos, ka tu zini, kas ir FOREIGN KEY un ko tas dara. Sāc ar to, ka cītīgi izlasi: http://en.wikipedia.org/wiki/Foreign_key ( vēlams vismaz 2x ). Nedaudz mēģināšu paskaidrot. Pieņemsim, ka tev ir tabula Comments ar lauku user_id, un tev ir tabula Users, kas satur jūzera datus un user_id . Loģiski būtu, ja tu nevarētu ievietot komentāru ar jūzeri, kurš neeksistē. Tā ir viena lieta ko nodrošina FOREIGN KEY. Un tad ir tāda lieta kā notikumi ON DELETE un ON UPDATE, kas ļauj tev automātiski mainīt datus, ja kaut kas mainās tabulā, uz kuru tu atsaucies. Piemēram, tu dzēs ierakstu no Users tabulas, un vēlies turmpāk parādīt visus tā jūzera komentārus ar autora vardu "Dzēsts lietotājs", tad tabulas definīcijā tev būs framgments: FOREIGN KEY(user_id) REFERENCES Users(user_id) ON DELETE SET NULL Un tad tu visiem komentāriem kuriem komentāru tabulā user_id ir NULL , tu parādi speciālu jūzerneimu. Nu kaut kā tā .. IMO tev vajadzētu vienārši iemācīties kaut kādus SQL pamatus. Paņem izlasi kādu grāmatu par MySQL vai PostgreSQL, tad izlasi kas ir 3NF, Un visbeidzot palasi šito grāmatu : SQL Antipatterns
  2. Un tieši kādus tad vārdus tu lieto, kad pamanies padirst dienas darbu ?
  3. Par lamuvārdiem no youtube ( spied uz pogas ):
  4. Interesanti kur tu tos benchmarkus dabūji ar "daudz lēnāko" PDO ? Nevēlies padalīties ? Vēlams kaut ko kas saistīts ar PHP 5.3, nevis rakstus ciema blogā no 2006tā gada. Es jau tev konkrētus argumentus uzskaitīju: tas šobrīd ir "maintenance only" jaunas fīčas vairs klāt liktas netiek, kas nozīmē, ka iznāko MySQL 6.0 ir ļoti iespējams, ka mysql_* vairs nespēs izmantot jaunākās iespējas, un varbūt pat kaut kas vairs nestrādās . [*] ir pieejams tikai procedurāls un morāli novecojis API morāli novecojis - paplašinājums satur tādus briljantus kā mysql_escape_string() un http://lv.php.net/manual/en/function.mysql-db-query.php un tad protams, pat ja tu lieto mysql_real_escape_string() tev ir jāpārbauda vai kāds pajoliņs nav iespēdzis magic_quotes_gpc. aizvēsturisks API - lietoju OOP un MySQL nav vienīgā RDBMS ko zinu.
  5. @glorificus: ja baigi gribas , vari palasīt http://php.lv/f/topic/18428- ( bet kašķis bija par prepared statement'iem ). Maša mysql_* atmešanai ir, IMHO, divie iemesli : tas šobrīd ir "maintenance only" ir pieejams tikai procedurāls un morāli novecojis API
  6. No tabulas Thumbs tu praktiski nekad neko neselektē. Varbūt vienīgi tad , ja jāpārrēķina rezultāts, pēc kāda jūzera dzēšanas. Un arī tad par to drošvien atbildētu kaskāde SQL pusē. Thumbs ir paredzēts galvenokārt vertējumu reģistram. Tā kā primary key's ir unikāls, tad DB pati tev neļaus jūzerim divreiz par vienu komentāru nobalsot. Ja INSERT's iekš Thumbs nekādu kļūdu neatgriež, tad tu Comments tabulā izmani kopējo vērtējumu. Šito var norealizēt gan ar diviem query'iem , gan arī (labāk) ar SQL procedūru.
  7. Ne bluži. Starp citu , svarīgi : vajag PRIMARY KEY( user_id , comment_id ) un + atsevišķu indeksu priekš comment_id .. un tad nekādi miljoni tur selektēti netiek. Anyway , paskaties : Akcents diezgn specifisks , bet saturs tev noderēs.
  8. Nu tātad tev to CS monitoru patiesībā nemaz nevajag - imho, varam slēgt ciet.
  9. Thumbs( value [ -1 , 1 ], user_id, comment_id, primary key( comment_id , user_id ) ); Comments( comment_id total_thumbs ... cits stuffs ) Es turētu kopējo komenta vētējumu pie komentiem , un pie katra balsojumaa pārbaudītu , vai neeksistē jau ieraksts Thumbs tabulā. Nav jegas no atsevišķa ID priekš thumbiem, jo tas tāpat netisk lietots.
  10. Bet tev taču esot 5'cu gadu pieredze programēšanā. Dīvaini ka tu nezini, kas ir SourceForge. http://sourceforge.net/search/?q=counter+strike&q=counter+strike+monitor
  11. wintermute

    Form

    Nekādi preg_* .. ehh filter_var('[email protected]', FILTER_VALIDATE_EMAIL) http://lv.php.net/manual/en/function.filter-var.php
  12. codez, kas ir pirmā doma, kas nāk prātā, ja tu apskaties savu 5us gadus veco kodu ?!
  13. So what ?! Par tiem 10Ls es par netu samaksāt varu. Kāpēc lai kāds nomestu zemē 10Ls par kodu, kas ir nelietojams ?
  14. Same here. Piemēram parādi mums bootstrap failu un varbūt Routing klasi. Vismaz cilvēkiem būtu kaut kāda nojausma par koda kvalitāti. Citādi tu te "kaķi maisā" tirgo.
  15. Man gan ir smagas aizdomas, ka Rich Bitch meklē koda dizaina kļūdas nepilnīgā labojuma diezgan pastulbā patch'a ātru fix'u. Citiem vārdiem : operējam smadzenes caur dirsu.
  16. Jap , paņem gan. Tāpēc tiek rekomendēts neizmantor vairāk kā 3 domainus vienā lapā. Tai brīdī kad ir vairāk, tu sāc zaudēt ieguvumus ielādes ātrumā.
  17. Patiesībā labās variants būtu <link rel="stylesheet" type="text/css" href="http://res.<?php echo $SITE_NAME ?>/includes/layout.css" /> Tas uzlabotu ielādes ātrumu, jo browseris var vilkt tikai divus failus vienlaicīgi no viena domeina. Un cookie'ji arī netiktu sūtīti komplektā.
  18. Nomet pirmos 4 vai 5us ciparus , un tad izrēķini http://en.wikipedia.org/wiki/Absolute_deviation Jo vērtība tuvāka 1, jo lielāka iespēja ka jūzeris kaut ko čakarē. Tas gan neparādīs tev cik reizes katra lapa apmeklēta. Un tieši kāpēc SQL neder ?
  19. Abi pasvītrotie vārdi tai punktā ir linki. Izlasi rakstus kas ir zem tiem, tad sapratīsi .. cerams.
  20. Hehe .. no tad neraksti procedurālu kodu un izmanto OOP. Pašu lapas loģiku vari noformēt kā MVC. Kodu izkartotu kā /public/ asserts/ css/ javascript/ graphics/ uploads/ /blog/ cotrollers/ views/ models/ /cms/ cotrollers/ views/ models/ /framework/ Kur /public/ ir tas Document_Root us webservera.
  21. daGrevis, tam 2005ajā tika atrasta ievainojamība un 2008tajā tā tikai veiksmīgi realizēta. Un, ja palasi wikipēdijā, tad md5 ir līdzīgā stāvoklī. Protams tas viss galvenokārt attiecas uz "nesālītiem" hashiem. snach15, ehh ... nu ko tu tur vispār dari ?! funkcijas isset() un empty() nav savstaprēji aizstājamas nafig tu ierobežo simbolus, kas drīkst būt parolē ? tu glabā lietotāja parole, kā "nesālītu" hash'u padarot to ievainojamu pret kollīzijām tā vietā, lai salabotu klūdu, kas saistīta ar "header already sent" paziņojumu, tu to paslēp un paildzini laiku kurā lapa ielādējas Varbūt tomēt tev vajadzītu nedaudz pamācīties PHP, nevis lipināt kaut ko kopā no netā atrastiem fragmentiem.
  22. Tā ... Es teiktu ka tajā skriptā ir diezgan daudz problēmas: tas noteikti nav kvalitatīvi uzrakstīts kods, jo loģika ir sabāzta kopā ar html'u tiek izmantots session_register(), kas ir novecojusi ( deprecated ) funkcija sākot no 5.3.0 versijas tiek izmantots addslashes() , to vajadzētu aizstāt at mysql_real_escape_string() vispār jau jaunu kodu ar mysql_* funkcijām pat rakstīt nevajadzētu ... palasi iekš 'MySQL Forge' rindās 63 un 64 tu piešķir vērtības nepārbaudot vai tās eksistē. sql daļa ir pilnīgā dirsā paroles ir jāglabā kā vienvirziena hash'us , vēlams vismaz kā sha256 tu pārbaudi vai ir pareizs jūzeris un parole, izskaiti vai rezultāts ir tikai 1 ( izskatās ja lietotāji tabulā nav norādti kā UNIQUE ) , un pēc tam tu selectē vēlreiz to pašu tabu un skaties vai ir tāds jūzeris - KĀPĒC ?!? [*]visur ir nez kāpēc izmantot echo, lai rukātu leilus HTML gabalus, tā vietā vajadžetu būt aizētam <?php ?> tagam, tad HTMLam un tad atvērtam php tagam. [*] .. un ar php nesaistīta piezīme - mūsdienās šitā HTML neraksta. Par header() .. šitai funkcijai ir jātiek izpildītais pirms tu sāc sūtīt lapas saturu ( tavā gadījuā, tas būtu pirms <!DOCTYPE> ). Ņem vērā ka "atstarpe arī ir "saturs".
  23. par 'while' ciklu: http://php.net/manual/en/control-structures.while.php par 'for' ciklu: http://php.net/manual/en/control-structures.for.php
×
×
  • Create New...