Descriere:Verificare numar telefon mobil
Download:Nu necesita
Autor:In script
Sursa (Link-ul oficial): Propria parere:Util.
Tutorialul:
Mai jos găsiţi 2 variante pentru verificarea numărului de telefon mobil. Prima variantă este scrisă de autorul original al scriptului, iar la a doua variantă mi-am permis să optimizez puţin codul şi să îl modific puţin pentru a fi mai clar de citit. Ambele variante fac acelaşi lucru, le puteţi folosi pe oricare din ele doriţi. Pentru alte informaţii, vă aşteptăm în forum la discuţii.
Cod:
Cod: Selectaţi tot
<?php
// Verificare nr telefon mobil
// Autor: Iancu Dragos
// Setam Array care contine prefixele retelelor de telefonie mobila
// din Romania si numele corespunzator acestora
$array = array('072' => 'Vodafone', '073' => 'Vodafone',
'074' => 'Orange', '075' => 'Orange',
'076' => 'Cosmote', '077' => 'Digi Mobil',
'078' => 'Zapp'
);
// Setam variabilele cu errori posibile
$nr_incomplet ='Numarul de telefon introdus este incomplet. <br />
Numarul minim de cifre pe care poate sa-l aiba un numar de telefon este 10 <br />';
$nr_gresit = 'Numar de telefon invalid. <br />';
$camp_gol ='Campul Numar de telefon este gol! <br />';
// Setam o variabila care va contine formularul de introducere a numarului de telefon
$form = '
<div align="center">
<form method="post" action="'.$_SERVER['PHP_SELF'].'">
Numar de telefon:
<input name="numar_telefon" type="text" value="'.$numar_telefon.'" size="20">
<input type="submit" name="submit" value="Verifica!" size="25"><br>
</form>
</div>';
/*
Cream functia validare_telefon care va verifica daca numarul de telefon
are minim 10 cifre, daca este de forma
(07xx)xxxxxx, 07xx-xxx-xxx, 07xx xxxxxx iar daca repecta aceste doua conditii returneaza true
*/
function validare_telefon($numar_telefon, $nr_incomplet, $nr_gresit, $form) {
if(strlen($numar_telefon) < 10) {
echo $nr_incomplet; // Daca numarul de telefon are < 10 cifre afisam erroarea
echo $form; // Afisam formularul pentru a introduce numarul de telefon dinou
}
else {
if(preg_match('/^(?07d)?[-s]?d[-s]?d$/', $numar_telefon)) {
return true; // Daca totul este OK returneaza true
}
else {
// Daca numarul de telefon nu este de forma celor de mai sus afisam erroarea
echo $nr_gresit;
echo $form; // Afisam formularul pentru a introduce numarul de telefon din nou
}
}
}
if(!isset($_POST['submit'])) {
echo $form; // Daca nu a fost apasat butonul Trimite afisam formularul
}
else {
if(empty($_POST['numar_telefon'])) {
// Daca campul numar telefon este gol afisam erroarea si afisam din nou formularul.
echo $camp_gol;
echo $form;
}
else {
if(validare_telefon($numar_telefon, $nr_incomplet, $nr_gresit, $form)) {
// Functia preg_match ne exporta primele 3 cifre ale numarului de
// telefon pentru a vedea din ce retea face parte
preg_match('/^(?(07d)d)?[-s]?d[-s]?d$/', $numar_telefon, $matches);
if(isset($array[$matches[1]])) {
echo 'Numarul de telefon introdus este: <b>'.$numar_telefon.'</b>
si apartine retelei de telefonie mobile: <b>'.$array[$matches[1]].'</b>';
}
else {
echo 'Numarul de telefon nu face parte lista retelelor de
telefonie mobila din Romania';
echo afisare_form(1);
}
}
}
}
?>
Cod:
Cod: Selectaţi tot
<?php
/*
* Verificare numar telefon mobil
* Autor: Iancu Dragos
* Corectat si modificat de Birkoff
* @Data: 20-01-2009
*/
/*
* partea de mesaje
*/
// mesajele de eroare care se pun in fisierul de limba
$lang['NR_INCOMPLET'] = 'Numarul de telefon introdus este incomplet. <br />
Numarul minim de cifre pe care poate sa-l aiba un numar de telefon este 10 <br />';
$lang['NR_GRESIT'] = 'Numar de telefon invalid. Trebuie sa fie de forma
07xxxxxxxx fara spatii sau alte caractere, doar numere.<br />';
$lang['NR_GOL'] = 'Campul Numar de telefon este gol! <br />';
$lang['NR_OK'] = 'Nr este corect.<br />';
$lang['NO_OPERATOR'] = 'Numarul specificat nu apartine nici unei retele
de telefonie mobila din Romania';
// se foloseste sprintf pentru inlocuire
$lang['MSG_OPERATOR'] = 'Numarul specificat apartine operatorului %s';
/*
* partea de setari
*/
// setez operatorii din ro
$nr_operatori = array(
'072' => 'Vodafone',
'073' => 'Vodafone',
'074' => 'Orange',
'075' => 'Orange',
'076' => 'Cosmote',
'077' => 'Digi Mobil',
'078' => 'Zapp',
);
/*
* functia care returneaza erorile
*
* @param string $nr_tel - contine numarul de telefon primit din formular
*
* @global array $lang - contine lista de mesaje
* @global array $nr_operatori - contine lista cu prefixele operatorilor din romania
*
* @return array $errors - returneaza un array gol in cazul in care
* nu sunt erori sau un array cu mesajele de eroare
*/
function verific_tel($nr_tel) {
global $lang, $nr_operatori;
// initializez variabila de erori
$errors = array();
// incep verificarile
if (empty($nr_tel) ) // daca nu a fost introdus nimic
$errors[] = $lang['NR_GOL'];
elseif(strlen($nr_tel) < 10) // daca sunt mai putin de 10 caractere
$errors[] = $lang['NR_INCOMPLET'];
elseif( ! ctype_digit($nr_tel) ) // daca sa introdus altceva in afara de numere
$errors[] = $lang['NR_GRESIT'];
else { // daca e ok pana aici verific daca exista operatorul
// iau primele 3 numere din stringul introdus in form
$ver_operator = substr($nr_tel,0,3);
// daca operatorul nu exista in lista de operatori
if ( !isset($nr_operatori[$ver_operator]) )
$errors[] = $lang['NO_OPERATOR']; // setez mesaj de eroare
}
// returnez eventualele erori aparute
return $errors;
}
// setari pentru afisare
$mesage = ''; // variabila care contine mesajele ce trebuie afisate in pagina
// daca e true se afiseaza formul pentru introducerea nr de tel. momentan o setam pe false.
$show_form = false;
// functia care genereaza formularul
function generate_form($stare = 0) {
$nr_tel = ($stare == 0) ? '' : $_POST['nr_tel'];
$form = '<form name="verificare_tel" action="'.$_SERVER['PHP_SELF'].'" method="post">
<input name="nr_tel" type="text" value="'.$nr_tel.'" size="20">
<input type="submit" name="submit" value="Verifica!">
</form>';
return $form;
}
/*
* partea de control
*/
$actiune = ( isset($_POST['nr_tel']) ) ? 'read' : 'show';
switch ($actiune) {
default:
case 'show': // daca se cere afisare form
$show_form = true; // setam sa se afiseze formul
break;
case 'read': // daca se cere citirea datelor din form
// preluam valorile din form
$nr_tel = trim($_POST['nr_tel']);
// verificam de erori apeland la functia de verificare
$errors = verific_tel($nr_tel);
// daca sunt erori
if ( count($errors) ) {
foreach ($errors as $msg)
$mesage .= $msg; // setam mesajele in variabila pentru afisare
$show_form = true; // setam sa se afiseze formul
break;
}
// daca e ok
$mesage .= $lang['NR_OK'];
// daca vrem sa afisam si din ce retea face parte
$mesage .= sprintf($lang['MSG_OPERATOR'], $nr_operatori[substr($nr_tel,0,3)]);
break;
}
/*
* sectiunea de viewer
*/
if ( !empty($mesage) )
echo $mesage; // daca sunt mesaje le afisam
if ($show_form) {
// daca se cere afisare form verificam cum trebuie afisat
$form = ($actiune == 'read') ? generate_form(1) : generate_form(0);
// afisam formul
echo $form;
}
?>