ArnisR Posted June 26, 2012 Report 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
codez Posted June 26, 2012 Report 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
EdgarsK Posted June 27, 2012 Report 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
EdgarsK Posted June 27, 2012 Report 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
ArnisR Posted June 27, 2012 Author Report 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
briedis Posted June 27, 2012 Report Posted June 27, 2012 E-pastu validēšanai (un citai) noteikt izmantojam šo: http://php.net/manual/en/filter.examples.validation.php Quote
ArnisR Posted June 27, 2012 Author Report 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
Aleksejs Posted June 27, 2012 Report 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
briedis Posted June 27, 2012 Report 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
ArnisR Posted June 27, 2012 Author Report 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
daGrevis Posted June 27, 2012 Report Posted June 27, 2012 Izmanto šito, lai validātu tos e-pastus. Quote
codez Posted June 27, 2012 Report 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
Aleksejs Posted June 27, 2012 Report 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
Aleksejs Posted June 27, 2012 Report 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
Aleksejs Posted June 27, 2012 Report 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
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.