Mam problem z funkcją checkdnsrr(). Chodzi oczywiście o sprawdzanie poprawności adresu e-mail. Funkcja z jakiej korzystam wygląda następująco:
function emailCheck( $email ){ $wholeexp = '/^(.+?)@(([a-z0-9\.-]+?)\.[a-z]{2,5})$/i'; $userexp = "/^[a-z0-9\~\\!\#\$\%\&\(\)\-\_\+\=\[\]\;\:\'\"\,\.\/]+$/i"; $username = $regs[1]; $host = $regs[2]; if(checkdnsrr($host, MX)){ return true; } else return false; } else return false; } else return false; }
Jeśli wywołam ją bezpośrednio z pliku wszystko działa jak należy. Problem zaczyna się gdy próbuję wywołać tą funkcję przez AJAXA.
Kod JS wygląda następująco:
$(document).ready(function(){ $('#button_add').click(function(){ $('#new_user_add_result').addClass('ajaxLoad').html('Trwa dodawanie użytkownika...'); $.ajax({ url: 'http://www.adres.com/plik.php', type: "POST", dataType: 'json', data: { email : $('#new_user_email').val()}, success: function(data){ $('#new_user_add_result').html(data.mess).attr('class','').addClass(data.responseClass); } }); }); });
Po wpisaniu adresu e-mail w postaci: 'asd3deda' wyświetla że adres nieprawidłowy.
Jeśli natomiast podam adres poprawny, to nie uzyskuję odpowiedzi. Cały czas mam komunikat 'Trwa dodawanie użytkownika...'. Tak jakby plik PHP z funkcją sprawdzania adresu zawieszał się na funkcji checkdnsrr. Jeśli zamienię 7 linię PHP
na
if(checkdnsrr($host, MX)){
skrypt zaczyna działać. Ma może ktoś pomysł co może być nie tak?
if(true){