ArnisR Posted June 26, 2012 Report Share Posted June 26, 2012 Nesen sāku apgūt objektorientēto PHP, tāpēc vēlos padalīties ar vienu no pirmajiem darbiņiem, izpildītu šājā tehnikā - http://paste.php.lv/347b914776c487db2f7eb619b50a17bf?lang=php Labprāt dzirdētu kritiku, ietiekumus utt.! :) Quote Link to comment Share on other sites More sharing options...
codez Posted June 26, 2012 Report Share Posted June 26, 2012 Pilnīgs ....., kāpēc tev katru reizi pie isLoggedin, tiek izsaukts kverijs? Jāsaprot, ka db darbības ir vislēnākās šādos skriptos. Primitīvā gadījumā sesijā glabā, vai lietotājs ir ielogojies un viss, nav nekāda pamata katreiz saukt kveriju. Pie tam, pat, ja netiktu izmantotas iebūvētās sesijas un tās tiktu glabātas db, tad prātīgi būtu kešot pašu isLogged darbības rezultātu, lai otreiz tajā pašā peiprasījumā izsaucot, nebūtu atkal jāsauc kverijs. Quote Link to comment Share on other sites More sharing options...
EdgarsK Posted June 27, 2012 Report Share Posted June 27, 2012 psc :D private function validEmail($var){ if(!empty($var) && preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $var)){ return true; } else {return false;} } // Check for password's validation private function validPassword($var){ if(!empty($var) && preg_match("/^[a-zA-Z0-9]+$/", $var)){ return true; } else {return false;} } mosh tomēr šitā ne ? private function validEmail($var){ return !empty($var) && preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $var); } // Check for password's validation private function validPassword($var){ return !empty($var) && preg_match("/^[a-zA-Z0-9]+$/", $var); } tak kešojam kverijus.. Quote Link to comment Share on other sites More sharing options...
EdgarsK Posted June 27, 2012 Report Share Posted June 27, 2012 Tavu variantu palaboju man tīkamākā variantā, http://paste.php.lv/b97324f7185d5c29788f86deb1d065f9?lang=php bet vispār, es neredzu ka tas būtu OOp, tas ir pliks (Klase+Metode)... iesaku iedziļināties kārtīgi, kas īsti ir OOp. Kā arī, priecātos ja tu saprastu boolean rezultātu jēgu. FUNKCIJA PLJAAPA(){ IF(MAMMA_TEICA) RETURN TRUE ELSE RETURN FALSE } vai arii mosh tomer FUNKCIJA PLJAAPA(){ return MAMMA_TEICA; } ? Quote Link to comment Share on other sites More sharing options...
ArnisR Posted June 27, 2012 Author Report Share Posted June 27, 2012 (edited) mosh tomēr šitā ne ? private function validEmail($var){ return !empty($var) && preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $var); } // Check for password's validation private function validPassword($var){ return !empty($var) && preg_match("/^[a-zA-Z0-9]+$/", $var); } tak kešojam kverijus.. Jā, tā noteikti ir labāk, jo funkcijas empty() un preg_match() jau pašas atgriež true, ja izpildās nosacījums! Visādā gadījumā paldies par padomiem! :) Edited June 27, 2012 by ArnisR Quote Link to comment Share on other sites More sharing options...
briedis Posted June 27, 2012 Report Share Posted June 27, 2012 E-pastu validēšanai (un citai) noteikt izmantojam šo: http://php.net/manual/en/filter.examples.validation.php Quote Link to comment Share on other sites More sharing options...
ArnisR Posted June 27, 2012 Author Report Share Posted June 27, 2012 E-pastu validēšanai (un citai) noteikt izmantojam šo: http://php.net/manua....validation.php Laba alternatīva, bet ar ko regulārās izteiksmes ir sliktākas? Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted June 27, 2012 Report Share Posted June 27, 2012 ne par OOP realizējumu: Kādēļ ierobežot parolēs atļautos izmantotos simbolus? Un labāk būtu to visu rakstīt ar prepared statementiem un bindotiem variabļiem - tas atrisinātu gandrīz visas ar SQL injekcijām saistītās problēmas. https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet Un paroles glabāšanas formātu/veidu vajadzētu uzlabot: https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet private function encryptPassword($password, $salt){ return strrev(md5($password.$salt)); } Quote Link to comment Share on other sites More sharing options...
briedis Posted June 27, 2012 Report Share Posted June 27, 2012 (edited) Laba alternatīva, bet ar ko regulārās izteiksmes ir sliktākas? Regulārās izteiksmes var saturēt arī zemūdens akmeņus, kas uz pirmā acu uzmetiena nav redzami. Ja tās pārvaldi ļoti labi - uz priekšu, lieto. Būtu jāņem vērā, ka e-pasts ir ļoti specifiska padarīšana, un standarts arī ir ļoti plašs, tāpēc ar regexpu varētu būt grūti uzrakstīt universālu risinājumu. Tavs regexps uzskata šo par derīgu e-pastu: .@-.aa.aa.aa.aa.aa.aa.aa Spried pats :) Ieskatam vari uzmest arī šim resursam aci: http://stackoverflow.com/questions/156430/regexp-recognition-of-email-address-hard Edited June 27, 2012 by briedis Quote Link to comment Share on other sites More sharing options...
ArnisR Posted June 27, 2012 Author Report Share Posted June 27, 2012 Regulārās izteiksmes var saturēt arī zemūdens akmeņus, kas uz pirmā acu uzmetiena nav redzami. Ja tās pārvaldi ļoti labi - uz priekšu, lieto. Būtu jāņem vērā, ka e-pasts ir ļoti specifiska padarīšana, un standarts arī ir ļoti plašs, tāpēc ar regexpu varētu būt grūti uzrakstīt universālu risinājumu. Tavs regexps uzskata šo par derīgu e-pastu: .@-.aa.aa.aa.aa.aa.aa.aa Spried pats :) Nu tādā ziņā jāpiekrīt! Bet kāds tad e-pasta adreses standrats ir filter_var($email, FILTER_VALIDATE_EMAIL) funkcijai? Quote Link to comment Share on other sites More sharing options...
daGrevis Posted June 27, 2012 Report Share Posted June 27, 2012 Izmanto šito, lai validātu tos e-pastus. Quote Link to comment Share on other sites More sharing options...
codez Posted June 27, 2012 Report Share Posted June 27, 2012 Un labāk būtu to visu rakstīt ar prepared statementiem un bindotiem variabļiem - tas atrisinātu gandrīz visas ar SQL injekcijām saistītās problēmas. Mani vienmēr ir interesējis PS ieteicēju viedoklis par veselu kaudzi kveriju realizēšanu, piemēram, šādu ar mainīgu id skaitu. SELECT * FROM items WHERE id IN (1,5,12,13,26,29) Vai atkal cits variants, tabulā ir dažādi lauki, bet jāupdeito tikai daži, pietam iepriekš neparedzamā kombinācijā UPDATE items SET param_a=5, param_b=6 WHERE id=1 UPDATE items SET param_a=5, param_c=6 WHERE id=2 Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted June 27, 2012 Report Share Posted June 27, 2012 Vajag pēc iespējas izvairīties no tādiem gadījumiem, kad tādas lietas nepieciešamas. Šajā konkrētajā paroļu gadījumā absolūti nevajadzīga un kaitīga ir dinamiska pieprasījuma veidošanas iespēja. Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted June 27, 2012 Report Share Posted June 27, 2012 Es neesmu DB guru, droši vien Gints varētu ko pateikt. Lūk iespējamie risinājumi: http://www.javaranch.com/journal/200510/Journal200510.jsp#a2 Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted June 27, 2012 Report Share Posted June 27, 2012 Viens variants ar IN ir uzģenerēt vajadzīgo jautājumzīmīšu skaitu dinamiski. $skaits=sizeof($masivs); $statementmaska='SELECT * FROM tabula WHERE lauks IN ('.implode(',', array_fill(0, $skaits, '?')) .')'; Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.