Jump to content
php.lv forumi

Šis Jums garšos


labaiss

Recommended Posts

Labdien,

Tā kā esmu pilnīgs iesācējs PHP vēlētos dzirdēt Jūsu domas par manu klasi vārda validācijai.

Vēlos dzirdēt visu kritiku par kodu (rakstības ziņā, kā labāk darīt, kā nevajag darīt, kā labāk komentārus pierakstīt, kā labāk padot mainīgos, kas tur ir nepareizi)

 

Bieži esmu ievērojis, ka šeit visiem patīk labot citu kļūdas, kur pat tas nav jautāts - nu tad šoreiz Aiziet - lūdzu 100% kritiku.

 

 

Tā tad mani faili:

form.php

validation.php

 

 

Form.php :

 

<?php
include("validation.php");

if ($_POST["ok"] == "Apstiprinu") {

$n_name = $_POST["n_name"];

$n = new validation();
$n_nameRes = $n->nameValid($n_name);


echo $n_nameRes;
}
else {

}
?>
<htmL>
   <head>
       <title></title>
       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   </head>
   <body>
       <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

           <input type="text" name="n_name" />

       <input type="submit" name="ok" value="Apstiprinu" />

       </form>
   </body>
</htmL>

 

 

Validation.php :

 

<?php

class validation {

function nameValid($n_name)  // Vārda validācijas funkcija
{
   if (strlen($n_name) >= 3) {  // pārbaudam vārda garumu

       if(preg_match("#^[-A-Za-z' ]*$#",$n_name)) { // pārbaudam vai tas ir vārds
         //atbilsts
           $done = "Vārds atbilsts!";
           return $done;
       } else {
         //neatbilsts
           $done = "Vārds neatbilst!";
           return $done;
       } // preg_match beigas

   } // strlen($n_name)
   else {
       $done = "Vārds ir pārāk īss!";
       return $done;
   } // strlen($n_name) beigas

}  // nameValid funkcijas beigas


} // class validation

?>

 

 

Gaidu pamācošu kritiku.

Edited by labaiss
Link to comment
Share on other sites

Izmantoju šitādu pašrakstītu funkciju, lai validētu/noformatētu/attīrītu personas vārdu.

 

/**
* Funkcija validē cilvēku vārdus. Izmet liekos simbolus, pirmos burtus pataisa lielus
* @param string $persons_name Cilvēka vārds, uzvārds vai tēvavārds
* @return string Validēts vārds
*/
function validateName($persons_name){
//Visus pataisam mazus
$persons_name = mb_strtolower($persons_name);

//Izmetam nederīgos simbolus (atstarpe ir derīga)
$persons_name = preg_replace('/[^āēģīķļņабвгдеёжзийклмнопрстуфхцчшщъыьэюяąčęėįųūßabcdefghijklmnopqrsšzžtuvwõäöüxy ]/', ' ', $persons_name);

//Normalizējam atstarpes
$persons_name = trim(preg_replace('/\\s+/', ' ', $persons_name));

//Pataisam pirmos burtus lielus
$names = array();
foreach(explode(" ", $persons_name) as $word){
	$names[] = mb_strtoupper(mb_substr($word, 0, 1)) . mb_substr($word, 1);
}

return implode(" ", $names);
}

Link to comment
Share on other sites

<?
class Validation {

/**
* Validējam vārdu
* @param string $n_name Personas vārds
* @return bool True - valīds, False - kļūdains
*/
public static function nameValid($n_name){
	return (mb_strlen($n_name, "UTF-8") >= 3 && preg_match("#^[-A-Za-z' ]*$#",$n_name));
}

//Citas validācijas
}

//Izsaukšana
if(Validation::nameValid("Jānis Pētersons")){
echo "Ir valīds";
}else{
echo "nav valīds";
}

Link to comment
Share on other sites

<?
class Validation {

/**
* Validējam vārdu
* @param string $n_name Personas vārds
* @return bool True - valīds, False - kļūdains
*/
public static function nameValid($n_name){
	return (mb_strlen($n_name, "UTF-8") >= 3 && preg_match("#^[-A-Za-z' ]*$#",$n_name));
}

//Citas validācijas
}

//Izsaukšana
if(Validation::nameValid("Jānis Pētersons")){
echo "Ir valīds";
}else{
echo "nav valīds";
}

 

Nu jā - šitā ir vienkāršāk, īsāk un kompaktāk! :D

Edited by labaiss
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...