php中未使用CURL传递会话数据


session data not passing using CURL in php

下面是我在php文件中使用的CURL调用

$url=$path."l2pharmaserviceclassfile.php?action=PENDINGDRUGORDERS&session_id1=".$_SESSION['sessionid']."&pop_id=".$_SESSION['popId']."&user_id=".$_SESSION['userId'];   
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);          
    $result = curl_exec($ch); 
    curl_close($ch);    
echo "<pre>";
print_r($result);

这是我在l2pharmaseserviceclassfile.php 中所写的内容

else if($_REQUEST['action']=='PENDINGDRUGORDERS')
{   
    echo $_REQUEST['session_id1'];
}

但是我无法获取会话id值。当我尝试echo $_REQUEST['pop_id'];时,我得到了值。

会话id可能包含需要编码才能在查询字符串中发送的特殊字符。这类东西最好依赖PHP核心函数:

$parameters = array(
  'action'      => 'PENDINGDRUGORDERS',
  'session_id1' => $_SESSION['sessionid'],
  'pop_id'      => $_SESSION['popId'],
  'user_id'     => $_SESSION['userId']
);
$url = sprintf(
  "%s?%s",
  $path."l2pharmaserviceclassfile.php",
  http_build_query($parameters)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);          
$result = curl_exec($ch); 
curl_close($ch);
echo "<pre>";
print_r($result);