$ _POST的索引似乎随机排空

时间:2010-08-30 03:01:12

标签: php curl

好的,这让我疯了!我有一个脚本编写,从前一页获取用户提交的产品信息,并通过Facebook php sdk发送到用户的Facebook业务页面。

这是php代码:

$app_id = "1234567890"; 
$app_secret = "1234567890";
$page_id = "1234567890";
$page_token = "1034921234567890"; 
$store_name = "MyStore.com"; 
$store_url = 'http://www.mystore.com'; 
$cur = '$'; 
$new_message = "New Product!"; 

    $prod_image = $store_url . "/images/" . $_POST['products_image'];
    $price = $products_price;
    $prod_url = $store_url . '/index.php?main_page=product_info&cPath=' . $current_category_id . '&products_id=' . $products_id;
    $prod_name = $_POST['products_name'][1];
    $prod_description = $_POST['products_description'][1];

include_once 'facebook/facebook.php';

$facebook = new Facebook(array(
      'appId'  => $app_id,
      'secret' => $app_secret,
      'cookie' => true, ));

$attachment = array(
'access_token'      =>  $page_token,
'message'           =>  $new_message,
'name'              =>  $prod_name,
'link'              =>  $prod_url,
'caption'           =>  'Price: '.$cur . $price,
'description'       =>  $prod_description,
'picture'           =>  $prod_image
);

除了某些服务器外,所有内容都发送到Facebook正常$ prod_description aka $ _POST ['products_description'] [1]最终为空。当var_dump($_POST['products_description']);放在同一行时,它会返回:

  

array(1){[1] => string(35)“这是一个   测试产品说明。“}

所以我知道信息是存在的并且没有被覆盖它只是出于任何原因发送到Facebook(来自include_once文件的cURL)它没有发布。

我还应该说这是一个Zen Cart mod可供下载,我自己也无法重现错误(在4个不同的服务器上测试)我有多个用户添加了var_dump并发送给我结果。

我想我的问题是;是否存在某些内容(如ini设置,cURL选项等),这些内容可能因服务器而异,当通过cURL发送时会导致随机索引为空,是否可以执行某些修复操作?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我认为问题在于传递数据的方式。描述中有空格,可能会导致问题......

尝试将表单的enctype显式设置为“application / x-www-form-urlencoded”

<form enctype="application/x-www-form-urlencoded" .... >

您还可以尝试对产品说明进行url_encode,然后再将其传递给Facebook。

$prod_description = urlencode($_POST['products_description'][1]);