De ce programarea?    Sa progresez continuu...

Un mic validator pentru ati usura lucru.

In vacanta aceasta practic nu am cu ce sa ma ocup de aceea am decis sa scriu un mic Class de validare a datelor care putin o sa va economiseasca timpul in elaborarea unei aplicatii PHP.

Nu e ceva dificil si exceptional, sunt simple functii des intilnite pentru a rezolva unele probleme cu corectitudinea datelor si securitatea, insa este creata si o functie de inregistrare a erorilor ce permite revizuirea erorilor dintr-ul fisier text.

La sigur puteti edita si perfectiona acest script, e Open Source ;D

 

Pentru a include acest class:

require_once("vNG.php");

 

Insusi codul: http://pastebin.com/7x8WZrNT

<?php
/*

BEGIN OF FILE
by GODINA NICOLAE
09.06.2012 11:07
http://my.xbattle.ru/

*/


###################################
###### MyVALID ######
###### by GODINA NICOLAE ######
###################################

class vNG {

// Variabile
private $bad_sql = array('DROP', 'INSERT', 'SELECT', 'JOIN', 'UPDATE', '`', '*', 'OR', ';', 'FROM');
private $bad_words = array('<', '>', '"', "'");
private $god_words = array('&lt;', '&rt;', '&quot;', '&#039;');
private $censor_words = array('Fake', 'kkt', 'pl');
private $censor_rep = '[******]';
private $error_file = 'errors.txt';

// Functii inregistreare erori
function regERR($message) {
$data = '['.date("d/m/Y H:i:s").'] ['.$_SERVER['REMOTE_ADDR'].'] '.$message."\n";
$vdata = file_get_contents($this->error_file);
$file = fopen($this->error_file, 'w') or die("Nu pot deschide fisierul");
fwrite($file, $vdata.$data);
fclose($file);
}

// Functii de control
function vSQL($sql) { // Functie de validare a codului SQL
$return = str_replace($this->bad_sql, '', $sql, $ne);
if ($ne>0) {
$this->regERR("Bad SQL: $sql");
}
return $return;
}

function ecode($html) { // Functie de validare a codului HTML
return htmlentities(stripslashes($html), ENT_QUOTES);
}

function vGet() { // Procedure de validare GET
$_GET = str_replace($this->bad_words, $this->god_words, $_GET, $na );
if ($na>0) {
$this->regERR("Bad GET: ".json_encode($_GET));
}
}

function vPOST() { // Procedure de validare POST
$_POST = str_replace($this->bad_words, $this->god_words, $_POST, $na );
if ($na>0) {
$this->regERR("Bad POST: ".json_encode($_POST));
}
}

function censor($text) { // Functie cenzurare de cuvinte urite
$return = str_replace($this->censor_words, $this->censor_rep, $text, $ne);
if ($ne>0) {
$this->regERR("Bad WORDS: ".$text);
}
return $return;
}

function is_email($email) { // Validare email
return eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email);
}

function is_url($url) { // Validare adresa
return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url);
}
}

$vNG = new vNG();

///////////////////////////////////////////////////////////////
///////////// TESTARE PRIN EXEMPLE ///////////////////////////
///////////////////////////////////////////////////////////////

# 1. Validare cod SQL
// Creat pentru a filtra anumite variabile prin care se poate injecta un SQL cod strain
echo "SQL VAlid: ".$vNG->vSQL("SELECT * FROM table WHERE id = 1").' <br/>';

# 2. Validare cod HTML
// Creat pentru a filtra textul ce poate contine HTML contra XXS
echo "Text Valid: ".$vNG->ecode('<script>alert("XXS");</script>').' <br/>';

# 3. Validare masiv $_GET
// Creat pentru a filtra toate datele de intrare prin metoda GET
$vNG->vGET();

# 4. Validare masiv $_POST
// Creat pentru a filtra toate datele de intrare prin metoda POST
$vNG->vPOST();

# 5. Cenzurarea cuvintelor rele
// Creat pentru a exclude din text cuvinte neadecvate.
echo "Text Cenzurat: ".$vNG->censor("Fake! Treaba asta e kkt!").' <br/>';

# 6. Daca este email
// Creat pentru controlul de corectitudine a E-Mail
if ($vNG->is_email("myname@gmail.com")) { echo "Email corect <br/>"; } else { echo "Email incorect <br/>"; }
if ($vNG->is_email("myn@a/me@gmail.com")) { echo "Email corect <br/>"; } else { echo "Email incorect <br/>"; }

# 7. Daca este adresa
// Creat pentru controlul de corectitudine a URL
if ($vNG->is_url("http://my.xbattle.ru/")) { echo "URL corect <br/>"; } else { echo "URL incorect <br/>"; }
if ($vNG->is_url("www.mysite/ru")) { echo "URL corect <br/>"; } else { echo "URL incorect <br/>"; }

# 8. Inregistrare eroare in registru
// Creat pentru a inregistra o eroare in registru.
$vNG->regERR("Eroarea s-a petrecut in sistema");

/*

END OF FILE
by GODINA NICOLAE
09.06.2012 12:37
http://my.xbattle.ru/

*/
?>


Ți-a plăcut articolul? Apasă Like:

Tag-uri: php, free

Comentarii: