Итак, у меня есть приложение C ++, которое получает значение из ключа в файле settings.INI, использует libcurl для обращения к странице PHP, публикации этих данных, и оно должно возвращать некоторые другие данные.
И это на самом деле работает, кроме получения данных из INI-файла. Если я явно введу опцию POSTFIELDS для libcurl (например, «Serial = 454534», вместо переменной, хранящей данные, полученные из моего файла).
Вот код ...
PHP:
<?
include("DBHeader.inc.php");
$Serial= $_POST['Serial'];
$sql = "SELECT * FROM `LockCodes` WHERE `sLockCode`=\"$Serial\"";
$RS=mysql_query($sql, $SQLConn);
$num_rows=mysql_num_rows($RS);
if ($num_rows>0)
{
while ($row = mysql_fetch_array($RS))
{
echo $row['iLockCodeID'];
}
}
else
{
echo "...";
}
?>
Фрагмент кода C ++:
TCHAR szKeyValue[36];
GetPrivateProfileString(_T("Test"), _T("LockCode"), _T(""), szKeyValue, 36, _T("C:\\Test\\Settings.INI"));
CString sLockCode = szKeyValue;
CURL *curl;
CURLcode res;
CString Serial = _T("Serial=") + sLockCode;
string LCID;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if (curl)
{
curl_easy_setopt(curl, CURLOPT_URL, "http://regserver2.nyksys.com/GetLCID.php");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, Serial);
res = curl_easy_perform(curl);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &writeCallback);
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
res = curl_easy_perform(curl);
if (data == _T("..."))
{
data = "0";
AfxMessageBox("Invalid Serial Number");
exit(0);
}
Мои настройки. INI в стандартном формате ..
[Test]
LockCode=1D4553C7E7228E462DBAAE267977B7CDED8A
Что происходит, когда я использую переменную «Serial» вместо ее ввода, страница PHP возвращает «...» вместо желаемого результата.
Я чувствую, что упускаю что-то очевидное. Любая помощь будет высоко оценена.