2016-11-06 4 views
-2

У меня есть этот PHP код, связанный с базой данных, и мне нужно здесь, чтобы сделать полный адрес электронной почты и имя проверки на основе этого кода, как я могу это сделать, потому что мой код имеет некоторые проблемы здесьполная форма проверки в PHP

1) имя ключа не имеет (//) или каких-либо символов для правильного имени.

2) электронный ключ действителен, потому что то, что мы здесь сделали, просто гарантирует, что есть символ @, и если я наберу адрес электронной почты [email protected] или даже без (.com), это будет также справедливо? !!

if(array_key_exists("submit",$_POST)){ 
    $link = mysqli_connect("localhost","root","123456789","users"); 

    if(mysqli_connect_error()){ 
    die("There is a problem in connecting to database"); 
    } 

    if(!$_POST['name']){ 
    $error .="<p>Your Full name is required</p><br>"; 
    } 

    if(!$_POST['email']){ 
    $error .="<p>Your email address is required</p><br>"; 
    } 

    if(!$_POST['password']){ 
    $error .="<p>Your password is required</p><br>"; 
    } 

    if($error !=""){ 
    $error = "<p>There were errors in your form</p><br>".$error; 
    } 
} 
+0

Не ссылайтесь на внешние сайты с кодом. Вставьте код здесь. И, пожалуйста, перефразируйте/перепишите свои вопросы, потому что они не имеют абсолютно никакого смысла в их текущей форме. – junkfoodjunkie

+0

. Я только что положил форму проверки, которую я использовал. –

+0

. Это то, что вы хотите знать. КАК убедиться, что имя и адрес электронной почты не содержат недопустимых символов и что письмо является действительным адресом электронной почты? Это то, что вы спрашиваете? – junkfoodjunkie

ответ

0

Вы можете использовать эту функцию для проверки:

function filtervariable($string,$type,$method) { 
    //function for sanitizing variables using PHPs built-in filter methods 
    $validEmail = false; 

    if ($method == 'sanitize') { 
     $filtermethod = 'FILTER_SANITIZE_'; 
    } elseif ($method == 'validate') { 
     $filtermethod = 'FILTER_VALIDATE_'; 
    } else { 
     return; 
    } 
    switch ($type) { 
     case 'email': 
     case 'string': 
     case 'number_int': 
     case 'int': 
     case 'special_chars': 
     case 'url': 
     $filtertype = $filtermethod.strtoupper($type); 
     break; 
    } 

    if ($filtertype == 'FILTER_VALIDATE_EMAIL' && !empty($string)) { 
     list($local,$domain) = explode('@',$string); 

     $localLength = strlen($local); 
     $domainLength = strlen($domain); 

     $checkLocal = explode('.',$domain); 

     if (($localLength > 0 && $localLength < 65) && ($domainLength > 3 && $domainLength < 256) && (checkdnsrr($domain,'MX') || checkdnsrr($domain,'A') || ($checkLocal[1] == 'loc' || $checkLocal[1] == 'dev' || $checkLocal[1] == 'srv'))) { // check for "loc, dev, srv" added to cater for specific problems with local setups 
      $validEmail = true; 
     } else { 
      $validEmail = false; 
     } 
    } 
    if (($filtertype == 'FILTER_VALIDATE_EMAIL' && $validEmail) || $filtertype != 'FILTER_VALIDATE_EMAIL') { 
     return filter_var($string, constant($filtertype)); 
    } else { 
     return false; 
    } 
} 

И использовать его как это: $email = filtervariable($registeremail,'email','validate');

Она возвращает «истина» в случае успеха и «ложь» в случае неудачи.

+0

Пожалуйста, объясните свой ответ? –

+0

Уважаемый junkfoodjunkie, Вы имеете в виду, что я могу поместить эту функцию в любое место в этом шахтном PHP-коде?! также следует использовать $ email = filtervariable ($ registeremail, 'email', 'validate'); как вы сделали или $ _POST ['email'] = filtervariable ($ registeremail, 'email', 'validate'); –

+0

Вы либо помещаете функцию внизу файла php выше, либо во включенный файл с PHP-функциями, если только это доступно в файле, где вы выполняете проверку. И вы действительно должны прочитать некоторые базовые PHP-уроки. – junkfoodjunkie

Смежные вопросы