我有一个旧的symfony 1.4应用程序,现在我想为其实现远程登录以及通过PHP和cURL进行一些操作调用。问题是,用户似乎没有登录其他操作,并且我总是从这些操作中获得响应(登录操作除外),用户名和/或密码错误,类似于“未登录”。两个cURL请求都来自同一域(用于测试),彼此来自相同的独立php脚本。 与邮递员一个接一个地调用这两个动作非常正常。
如果您能帮助我,我将不胜感激。这是我的登录代码:
$strCookieFilePath = __DIR__."/cookie.txt";
$curlHandle = curl_init();
$strBodyJson = json_encode(array('login_token' => '...'));
$arrOptions = array(
CURLOPT_URL => 'https://url_to_web.app/my_login_app/login/index',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $strBodyJson,
CURLOPT_VERBOSE => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Content-Length: ' . strlen($strBodyJson)
)
);
curl_setopt_array(
$curlHandle,
$arrOptions
);
$strResponse = curl_exec($curlHandle);
echo $response . '<br />';
$strError = null;
if (curl_errno($curlHandle)) {
echo = curl_error($curlHandle) . '<br />';
}
curl_close($curlHandle);
这是我的代码,用于通过后cURL请求添加数据:
$strCookieFilePath2 = __DIR__."/cookie2.txt";
$url="https://url_to_web.app/my_web_app/add_data/index";
$postinfo = "value1=...&value2=...&value3=...";
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_COOKIEJAR, $strCookieFilePath2);
curl_setopt($ch, CURLOPT_COOKIE, "symfony=".$_COOKIE['symfony']);
curl_setopt($ch, CURLOPT_USERAGENT,
"Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, $_SERVER['REQUEST_URI']);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postinfo);
$response = curl_exec($ch);
echo $response.'<br />';
$strError = null;
if (curl_errno($curlHandle)) {
$strError = curl_error($curlHandle);
echo $strError . '<br />';
}
curl_close($curlHandle);
谢谢和亲切的问候!