Zamiana funkcji EXEC()


(system) #1

witam :slight_smile:

mam taką funkcję sprawdzającą, czy podany e-mail jest poprawny:

function myCheckDNSRR($hostName, $recType = '')

{

	if(!empty($hostName))

	{

		if( $recType == '' ) $recType = "MX";

		exec("nslookup -type=$recType $hostName", $result);

		// check each line to find the one that starts with the host

		// name. If it exists then the function succeeded.

		foreach ($result as $line) {

			if(eregi("^$hostName",$line)) {

				return true;

			}

		}

		// otherwise there was no mail handler for the domain

		return false;

	}

	else

	{

		return false;

	}

}

niestety funkcja exec została wyłączona na serwerze, na którym chcę opublikować stronke, wiec musze jakoś to zmienić... tyle, że na jaką inną funkce działającą prawidłowo w trybie bezpiecznym php moge dać? z góry dzięki za pomoc :wink:

ps. może ktoś kto potrafi napisałby inną funkcję wykorzystującą inne metode, ale pobierającą i wykorzystującą te same zmienne :wink:


(Zagorskid) #2

Ja Ci mogę dać, ale dużo prostszą i bazującą tylko na budowie adresu (funkcje ciągów), czyli czy adres jest postaci a@bc.de...


(Balon) #3

w ten sposob nie masz pewnosci ze adres jest prawidlowy

mozna dodatkowo zbadac adres za pomoca getmxrr o fsockopen


(system) #4

zagorskid - raczej nie.. taką to mógłbym bezproblemowo zbudować w JS :wink:

BalonPL - a mógłbyś pokazać na przykładzie jak to zrobić bo nie całkiem jeszcze pojmuje php i musze sie jeszcze wiele nauczyć :stuck_out_tongue: btw: i czy to bedzie działac na serwerach z włączonym trybem bezpiecznym?


(Balon) #5

a jak ktos wyłączy js ?

cos w tym stylu

<?php

list( $name, $domain ) = split( '@', $mail );

if( @getmxrr( $domain, $MXHost ) )

{

  return true;

}

else

{

  return @fsockopen( $domain, 25, $errno, $errstr, 30 ) ? true : false;

}