Here is my code:
$salesforce = array();
$salesforce = MagicParser_parse("string://".$content,"myRecordHandler","xml|SOAPENV:ENVELOPE/");
function myRecordHandler($record)
{
// This is where you write your code to process each record, such as loading a database
// You can display the record contents using PHP's internal print_r() function:
//print_r($record);
// The following code will print out each field in your sample data:
/*print $record["SOAPENV:ENVELOPE"];
print $record["SOAPENV:ENVELOPE-XMLNS:SOAPENV"];
print $record["SOAPENV:ENVELOPE-XMLNS:XSD"];
print $record["SOAPENV:ENVELOPE-XMLNS:XSI"];
print $record["SOAPENV:BODY"];
print $record["SOAPENV:BODY/AUTHENTICATE"];
print $record["SOAPENV:BODY/AUTHENTICATE-XMLNS"];
print $record["SOAPENV:BODY/AUTHENTICATE/USERNAME"];
print $record["SOAPENV:BODY/AUTHENTICATE/PASSWORD"];
print $record["SOAPENV:BODY/AUTHENTICATE/SOURCEIP"];*/
$data = array();
$data['username'] = $record["SOAPENV:BODY/AUTHENTICATE/USERNAME"];
$data['password'] = $record["SOAPENV:BODY/AUTHENTICATE/PASSWORD"];
$send = '<pre>' . print_r($data, true) . '</pre>';
mail('{email saved}', 'data array', $send);
return $data;
}
when i do a print_r on the $salesforce array it shows:
<pre>1</pre>
Why am I getting back a boolean, why not the $data array?
Please help!!
~Mike
Thanks David that is what I eventually did and it worked
Thanks for getting back to me so fast
~Mike
Hello Mike,
The return value from myRecordHandler is not actually the return value you get from MagicParser_parse() - which only returns boolean TRUE(1) for success, or FALSE(0) if an error occurred.
What you need to do is declare $salesforce as a global within myRecordHandler, and then copy $data into it at the end of your myRecordHandler function. Have a go with the following:
$salesforce = array();
MagicParser_parse("string://".$content,"myRecordHandler","xml|SOAPENV:ENVELOPE/");
function myRecordHandler($record)
{
global $salesforce;
// This is where you write your code to process each record, such as loading a database
// You can display the record contents using PHP's internal print_r() function:
//print_r($record);
// The following code will print out each field in your sample data:
/*print $record["SOAPENV:ENVELOPE"];
print $record["SOAPENV:ENVELOPE-XMLNS:SOAPENV"];
print $record["SOAPENV:ENVELOPE-XMLNS:XSD"];
print $record["SOAPENV:ENVELOPE-XMLNS:XSI"];
print $record["SOAPENV:BODY"];
print $record["SOAPENV:BODY/AUTHENTICATE"];
print $record["SOAPENV:BODY/AUTHENTICATE-XMLNS"];
print $record["SOAPENV:BODY/AUTHENTICATE/USERNAME"];
print $record["SOAPENV:BODY/AUTHENTICATE/PASSWORD"];
print $record["SOAPENV:BODY/AUTHENTICATE/SOURCEIP"];*/
$data = array();
$data['username'] = $record["SOAPENV:BODY/AUTHENTICATE/USERNAME"];
$data['password'] = $record["SOAPENV:BODY/AUTHENTICATE/PASSWORD"];
$send = '<pre>' . print_r($data, true) . '</pre>';
mail('{email saved}', 'data array', $send);
$salesforce = $data;
}
Hope this helps!
All the best,
David.