You are just one time able to get the signed_request. That is exactly when Facebook loads your App in an iframe. Then you must have to save the signed_request for further usage (subpages). There you have to check for the data via $_REQUEST or fall back to your stored signed_request values.
Here is an small example of the fbHelper component. I hope this might give you some ideas how to handle the issue:
资料来源:http://www.facebook.com/HelperComponentlcomunity/ap_41292314202609' rel=“nofollow”>http://www.facebook.com/HelperComponentlCommunity/ap_41292314202609。
if(array_key_exists( signed_request , $_REQUEST))
$signed_request = $_REQUEST[ signed_request ];
elseif(array_key_exists( signed_request . $this->pageId, $_SESSION))
$signed_request = $_SESSION[ signed_request . $this->pageId];
else
return false;
$facebook_data= $this->parse_signed_request($signed_request);