0
votes

When I click on send the textbox displays 'sending....' with no change. I'm very sure that this was working before, but the client has noticed it not working recently. I can't find the problem, please help.

I have a swf with this AS3

var var_load:URLLoader = new URLLoader;  
var URL_request:URLRequest = new URLRequest( "http://www.blah.com/send_email_auto_response.php" );  
URL_request.method = URLRequestMethod.POST;  

function submit(e:MouseEvent):void
{  
    if( contact_name.text == "" || contact_email.text == "" ||
        contact_subject.text == "" || contact_message.text == "" )  
    {  
        message_status.text = "Please fill up all text fields.";  
    }  
    else if( !validate_email(contact_email.text) )  
    {  
        message_status.text = "Please enter the valid email address.";  
    }
    else  
    {  
        message_status.text = "sending...";     
        var email_data:String = "name=" + contact_name.text
                       + "&email=" + contact_email.text
                       + "&subject=" + contact_subject.text
                       + "&message=" + contact_message.text;

        var URL_vars:URLVariables = new URLVariables(email_data);
        URL_vars.dataFormat = URLLoaderDataFormat.TEXT;

        URL_request.data = URL_vars;
        var_load.load( URL_request );
        var_load.addEventListener(Event.COMPLETE, receive_response );
    }  
}  

that calls a page with this PHP code..

$contact_name = $_POST['name'];    
$contact_email = $_POST['email'];    
$contact_subject = $_POST['subject'];  
$contact_message = $_POST['message'];  
if( $contact_name == true )  
{  
    $sender = $contact_email;  
    $receiver = "[email protected]";  
    $client_ip = $_SERVER['REMOTE_ADDR'];  

    $email_body = "Name: $contact_name \nEmail: $sender \n\nSubject: $contact_subject \n\nMessage: \n\n$contact_message \n\nIP: $client_ip \n\n";  
    $email_body_auto_reply = "Hello $contact_name, \nThis is the auto reply message. Thank you.";  

    $extra = "From: $sender\r\n" . "Reply-To: $sender \r\n" . "X-Mailer: PHP/" . phpversion();
    $extra_auto_reply = "From: $receiver\r\n" . "Reply-To: $receiver \r\n" . "X-Mailer: PHP/" . phpversion();

    mail( $sender, "Auto Reply - Re: $contact_subject", $email_body_auto_reply, $extra_auto_reply );    // auto reply mail to sender

    if( mail( $receiver, "Flash Contact Form - $contact_subject", $email_body, $extra ) )
    {
        echo "success=yes";
    }
    else
    {
        echo "success=no";
    }
}
1
Have you tested the PHP function from an HTML page to narrow it down? - Kodiak
I just tried hitting the HTML page and it displays a blank page, even after adding extra echo's after the $_POST vars. - atomicDroid
Have you enabled display_errors in your PHP configuration? Try adding this as the first line of your PHP script: error_reporting(E_ALL); ini_set('display_errors','On'); - shanethehat
@shanethehat after adding that, when hitting... blah.com/… I get... Notice: Undefined index: name in /home/blahblah/public_html/send_email_auto_response.php on line 5 to 8 these are code $contact_name = $_POST['name']; $contact_email = $_POST['email']; $contact_subject = $_POST['subject']; $contact_message = $_POST['message']; - atomicDroid
So your variables are either not being sent, or are not arriving in the expected format. Try dumping the content of the $_POST array before your other code: echo '<pre>'; var_dump($_POST); echo '</pre>'; - shanethehat

1 Answers

0
votes

It could possibly need:

URL_vars.dataFormat = URLLoaderDataFormat.TEXT;

changing to:

URL_vars.dataFormat = URLLoaderDataFormat.VARIABLES;