Jump to content

Verificarea Numarului De Telefon Intr-o Pagina Php


Recommended Posts

Posted

Scriptul de mai jos, se adreseaza celor care doresc sa verifice daca numarul de telefon introdus in campul respectiv, este dintr-o retea anume, acesta indicand reteaua corespunzatoare (Vodafone, Cosmote, Orange, Digi Mobil, Zapp).

Scriptul verifica daca numarul este de forma (07xx)xxxxxx, 07xx-xxx-xxx, 07xx xxxxxx, daca are minim 10 cifre si daca incepe cu 07*.

<?php 
/*
* Verificare numar telefon mobil
* Autor: Iancu Dragos
*/


/*
* 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'] = 'Numarul de telefon este corect. Numarul de telefon introdus este:';
$lang['NO_OPERATOR'] = 'Numarul specificat nu apartine nici unei retele de telefonie mobila din Romania';

/*
* Prefixele retelelor de telefonie mobila din romania
*/
$retele = array(
'072' => 'Vodafone',
'073' => 'Vodafone',
'074' => 'Orange',
'075' => 'Orange',
'076' => 'Cosmote',
'077' => 'Digi Mobil',
'078' => 'Zapp',
);


/*
* partea de setari
*/

/*
* functia care returneaza erorile
*
* @param string $nr_tel
*
* @global array $lang
*
* @return array $errors
*/

function verific_tel($nr_tel)
{
global $lang;
// setez operatorii din ro
$nr_corecte = array(
'072' => 'Vodafone',
'073' => 'Vodafone',
'074' => 'Orange',
'075' => 'Orange',
'076' => 'Cosmote',
'077' => 'Digi Mobil',
'078' => 'Zapp',
);
// 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
{
$ver_operator = substr($nr_tel,0,3); // iau primele 3 numere din stringul introdus in form
if ( !isset($nr_corecte[$ver_operator]) ) // daca operatorul nu exista in lista de operatori
$errors[] = $lang['NO_OPERATOR']; // setez mesaj de eroare
}
// returnez eventualele erori aparute
return $errors;
}

// setari pentru afisare
$mesage = '';
$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.'>
<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
$show_form = true; // setam sa se afiseze formul
break;

case 'read': // daca se cere citirea datelor
// preluam valorile din form
$nr_tel = trim($_POST['nr_tel']);
// verificam de erori
$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
preg_match('/^\(?(07\d)\d\)?[-\s]?\d{3}[-\s]?\d{3}$/', trim($_POST['nr_tel']), $matches);
$mesage .= $lang['NR_OK'] . ' <b>'.trim($_POST['nr_tel']).'</b>. Reteaua din care face parte este: <b>'.$retele[$matches[1]].'</b>';
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;
}
?>[/html]

Codul de mai sus, pentru a functiona, va trebui introdus intr-o pagina [color=red][b].php[/b][/color]

Succes :pct:

Te-ai inregistrat? Ne-ar placea sa te prezinti.

Cum pot sustine forumul?
Cumpara de la eMag folosind acest link.
--------------------
oG2BN9d.gifse1WdXd.gifQG6MtmI.gifRHYjDzD.gifG5p1wui.gif

Posted

vezi ca ti-am dat edit ca erau niste bug-uri.

"Timpul exista pentru ca lucrurile sa nu se intample in acelasi timp." - Albert Einstein

"I'm gonna make him an offer he can't refuse." - Don Corleone Vito

Posted

inca mai este bun...dar in ceva timp (un timp scurt) se va duce...

"Timpul exista pentru ca lucrurile sa nu se intample in acelasi timp." - Albert Einstein

"I'm gonna make him an offer he can't refuse." - Don Corleone Vito

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.