Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][PHP]checkdnsrr nie działa
Forum PHP.pl > Forum > Przedszkole
gargamel
Witam,

Mam problem z funkcją checkdnsrr(). Chodzi oczywiście o sprawdzanie poprawności adresu e-mail. Funkcja z jakiej korzystam wygląda następująco:
  1. function emailCheck( $email ){
  2. $wholeexp = '/^(.+?)@(([a-z0-9\.-]+?)\.[a-z]{2,5})$/i';
  3. $userexp = "/^[a-z0-9\~\\!\#\$\%\&\(\)\-\_\+\=\[\]\;\:\'\"\,\.\/]+$/i";
  4. if(preg_match($wholeexp, $email, $regs)){
  5. $username = $regs[1];
  6. $host = $regs[2];
  7. if(checkdnsrr($host, MX)){
  8. if(preg_match($userexp, $username)){
  9. return true;
  10. }
  11. else return false;
  12. }
  13. else return false;
  14. }
  15. else return false;
  16. }


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:

[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){
  2. $('#button_add').click(function(){
  3. $('#new_user_add_result').addClass('ajaxLoad').html('Trwa dodawanie użytkownika...');
  4. $.ajax({
  5. url: 'http://www.adres.com/plik.php',
  6. type: "POST",
  7. dataType: 'json',
  8. data: { email : $('#new_user_email').val()},
  9. success: function(data){
  10. $('#new_user_add_result').html(data.mess).attr('class','').addClass(data.responseClass);
  11. }
  12. });
  13. });
  14. });
[JAVASCRIPT] pobierz, plaintext


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
  1. if(checkdnsrr($host, MX)){
na
  1. if(true){
skrypt zaczyna działać. Ma może ktoś pomysł co może być nie tak?
erix
  • jaka platforma?
  • co w logach serwera?
gargamel
Serwer jest na linuxie.

W logach mam : Use of undefined constant MX - assumed 'MX' in /www/......../actions/add.php on line 12

Plik nie wywołany AJAXem, tak jak mówiłem działa i owego warna do logów nie wpisuje.
erix
Bo prawdopodobnie wypluwany błąd sprawia, że Twój skrypt nie działa.

Nie ma takiej stałej, jak MX; Twój błąd należy do elementarnych.
gargamel
Racja. Zamotało mnie to że plik odpalany bezpośrednio działał i nie zwracał błędów.
Powinno być:
  1. if(checkdnsrr($host, 'MX')){

Dzięki wielkie!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.