Jump to content
php.lv forumi

PHP OOP ielogošanās klase


Recommended Posts

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.

Link to comment
Share on other sites

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..

Link to comment
Share on other sites

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;

}

 

?

Link to comment
Share on other sites

 

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 by ArnisR
Link to comment
Share on other sites

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));
}

Link to comment
Share on other sites

 

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 by briedis
Link to comment
Share on other sites

 

 

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?

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...