I have tried to install Zend Studio 2.6.1 on Windows 2000 server and I get a core dump every time.

    I have narrowed it down to a particular function that I found (and hacked up a bit) that does email validation. This worked on the old server (php4.0.4) but it must hang or loop indefinately on the new server (php 4.3.1)

    Perhaps it is a socket problem? Heres the code:

    /*

    ifsnow's email valid check function SnowCheckMail Ver 0.1

    funtion SnowCheckMail ($Email,$Debug=false)

    $Email : E-Mail address to check.
    $Debug : Variable for debugging.

    • Can use everybody if use without changing the name of function.

    Reference : O'REILLY - Internet Email Programming

    HOMEPAGE : http://www.hellophp.com

    ifsnow is korean phper. Is sorry to be unskillful to English. ;;

    */

    function SnowCheckMail($Email,$Debug=false)

    {

    global $HTTP_HOST;

    $Return =array();

    // Variable for return.
    // $Return[0] : [true|false]
    // $Return[1] : Processing result save.

    if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $Email)) {  
        $Return[0]=false;  
        $Return[1]="${Email} is E-Mail form that is not right."; 
    $stop = urlencode("Thats not an email address");
    print ("error=1&verify=bademail&reason=$stop&");
    exit("bye"); 
        // if ($Debug) echo "Error : {$Email} is E-Mail form that is not right.<br>";          
        return $Return;  
    }  
    // else if ($Debug) echo "Confirmation : {$Email} is E-Mail form that is right.<br>";  
    
    // E-Mail @ by 2 by standard divide. if it is $Email this "lsm@ebeecomm.com".. 
    // $Username : lsm 
    // $Domain : ebeecomm.com 
    // list function reference : [url]http://www.php.net/manual/en/function.list.php[/url] 
    // split function reference : [url]http://www.php.net/manual/en/function.split.php[/url] 
    list ( $Username, $Domain ) = split ("@",$Email);  
    
    // That MX(mail exchanger) record exists in domain check . 
    // checkdnsrr function reference : [url]http://www.php.net/manual/en/function.checkdnsrr.php[/url] 
    if ( checkdnsrr ( $Domain, "MX" ) )  {  
        // if($Debug) echo "Confirmation : MX record about {$Domain} exists.<br>";  
        // If MX record exists, save MX record address. 
        // getmxrr function reference : [url]http://www.php.net/manual/en/function.getmxrr.php[/url] 
        if ( getmxrr ($Domain, $MXHost))  {  
      		if($Debug) {  
                // echo "Confirmation : Is confirming address by MX LOOKUP.<br>";  
              for ( $i = 0,$j = 1; $i < count ( $MXHost ); $i++,$j++ ) {  
            // echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result($j) - $MXHost[$i]<BR>";   
        }  
            }  
        }  
        // Getmxrr function does to store MX record address about $Domain in arrangement form to $MXHost. 
        // $ConnectAddress socket connection address. 
        $ConnectAddress = $MXHost[0];  
    }  
    else {  
        // If there is no MX record simply @ to next time address socket connection do . 
        $ConnectAddress = $Domain;          
        // if ($Debug) echo "Confirmation : MX record about {$Domain} does not exist.<br>";
    $stop = urlencode("Bad domain in email address");
    print ("error=1&verify=bademail&reason=$stop&");
    exit("bye");   
    }  
    
    // fsockopen function reference : [url]http://www.php.net/manual/en/function.fsockopen.php[/url] 
    $Connect = fsockopen ( $ConnectAddress, 25 );  
    
    // Success in socket connection 
    if ($Connect)    
    {  
        // if ($Debug) echo "Connection succeeded to {$ConnectAddress} SMTP.<br>";  
        // Judgment is that service is preparing though begin by 220 getting string after connection . 
        // fgets function reference : [url]http://www.php.net/manual/en/function.fgets.php[/url] 
        if ( ereg ( "^220", $Out = fgets ( $Connect, 1024 ) ) ) {  
    
            // Inform client's reaching to server who connect. 
            fputs ( $Connect, "HELO $HTTP_HOST\r\n" );  
                //if ($Debug) echo "Run : HELO $HTTP_HOST<br>";  
            $Out = fgets ( $Connect, 1024 ); // Receive server's answering cord. 
    
            // Inform sender's address to server. 
            fputs ( $Connect, "MAIL FROM: <{$Email}>\r\n" );  
                //if ($Debug) echo "Run : MAIL FROM: &lt;{$Email}&gt;<br>";  
            $From = fgets ( $Connect, 1024 ); // Receive server's answering cord. 
    
            // Inform listener's address to server. 
            fputs ( $Connect, "RCPT TO: <{$Email}>\r\n" );  
                //if ($Debug) echo "Run : RCPT TO: &lt;{$Email}&gt;<br>";  
            $To = fgets ( $Connect, 1024 ); // Receive server's answering cord. 
    
            // Finish connection. 
            fputs ( $Connect, "QUIT\r\n");  
                //if ($Debug) echo "Run : QUIT<br>";  
    
            fclose($Connect);  
    
                // Server's answering cord about MAIL and TO command checks. 
                // Server about listener's address reacts to 550 codes if there does not exist   
                // checking that mailbox is in own E-Mail account. 
                if ( !ereg ( "^250", $From ) || !ereg ( "^250", $To )) {  
                    $Return[0]=false;  
                    $Return[1]="${Email} is address done not admit in E-Mail server.";  
    	    $stop = urlencode("Can not email to that address");
    		print ("error=1&verify=bademail&reason=$stop&");
    		exit("bye"); 
                    //if ($Debug) echo "{$Email} is address done not admit in E-Mail server.<br>";  
                    return $Return;  
                }  
        }  
    }  
    // Failure in socket connection 
    else {  
        $Return[0]=false;  
        $Return[1]="Can not connect E-Mail server ({$ConnectAddress}).";  
        //if ($Debug) echo "Can not connect E-Mail server ({$ConnectAddress}).<br>";
     $stop = urlencode("Can not reach your mail server");
    print ("error=1&verify=bademail&reason=$stop&");
    exit("bye");  
        return $Return;  
    }  
    $Return[0]=true;  
    $Return[1]="{$Email} is E-Mail address that there is no any problem.";  
    // return $Return;  

    }

    SnowCheckMail($email,true);

      Write a Reply...