• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 250
  • Last Modified:

PHP and PayPal's returned $_POST variables - how to match variables to strings?

I am testing a system and I am at the point where I've made the (test) purchase and PayPal has sent me back to my return page with a long string of variables in the following format :


Now I've taken this and assigned it to a variable:

$req = 'cmd=_notify-validate';

foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";

So far so good... now I tried to split the string so I could get 2 key/value pairs isolated. I want the payer_email and the payment_status separated from the rest, so I started with the following:

$postarray = explode("&", $req);

Now the problem is, how do I split it again and do a test for $postarray['payment_status']?

I can try and isolate the pairs using $postarray[14] but I'd like to specify by name in case the order of variables changes at some point in the future...

Can anyone help?


  • 2
1 Solution
DionysusAuthor Commented:
Woops..I got it backwards... but my end question is the same.

I received a POST from PayPal, and using that code, created that long string.  Now I need to know how to break it down further as I said previously.

Not sure I understand you correctly. but here is a try:

$totalstring = "cmd=_notify-validate&payment_date=18%3A20%3A11+Mar+21%2C+2006+PST&txn_type=web_accept"

$pair_array = explode( "&", $totalstring );
for ( $i=0; $i<count($pair_array; $i++ ) {
    $pair_array[$i] = explode( "=", $pair_array[$i] );
    ${$pair_array[$i][0]} = urldecode( str_replace( '+', ' ', $pair_array[$i][1] ) );   // turn %NN codes to characters and '+' to ' '
// now each field in the parameter string can be adressed by it name:
echo ">'$payment_status'<";

regards JakobA
DionysusAuthor Commented:
Thanks man.. the only thing is that you had missed a closing bracket.. but apart from that.. you did exactly what I wanted.

Take care!
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: Ruby Fundamentals

This course will introduce you to Ruby, as well as teach you about classes, methods, variables, data structures, loops, enumerable methods, and finishing touches.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now