ОБНОВЛЕНИЕ: ЭТО РЕШЕН И РАБОЧИЙ КОД ПРОХОДИТ В НИЖНЕЙ СТОЛЕТЕ. Я СОХРАНИЛ ОРИГИНАЛЬНУЮ ПОЧТУ, ЧТО ДРУГИЕ МОГУТ ЧИТАТЬ И ПОСЛЕДУЮТ.
У меня возникла большая проблема с Live PayPal, но думаю, что я нашел проблему.
Посмотрите на этом скриншоте, это от pdt.php, где клиенты перенаправлены после покупки, и это реальный, сделали с реальной визой: http://snag.gy/5XCvA.jpg
я печатал весь TX-идентификатор в верхняя часть для отладки и здесь я вижу, что item_number1 = 54, quantity1 = 1 и item_name1 = Introductionktionsföreläsning.
Проблема заключается в том, что они не отображаются под Produkt, ID и Antal (Product, Id и Quantity), которые используются для представления клиенту. Это потому, что у меня есть набор переменных, как это:
$item_number = $response[item_number];
$item_name = $response[item_name];
$qty = $response[quantity];
и они никогда не получают больше, чем просто ITEM_NUMBER, когда они должны получить «++: изд» в item_number1, item_number2 и т.д. для каждого продукта.
Я попытался сделать много изменений, например:
for($idx = 1; $idx < $count; $idx ++)
{
//$item_name .=$idx ++;
//$item_name = $item_name++;
echo ("<div class='abouttext'>Produkt: ".$item_name."</div>\n");
echo ("<div class='abouttext'>ID: ".$item_number."</div>\n");
echo ("<div class='abouttext'>Antal: ".$qty."</div>\n");
echo ("<br />");
}
где outcommented линии, где я пытаюсь добавить номер к ITEM_NAME, но я просто получить «1» или вообще ничего, как ответ, когда мне нужно это item_name1 и так далее.
Вот мой PDT сценарий: Но им вполне уверен, что это может быть исправлено в этой области кода: http://pastebin.com/L2nyT9q7
$array_keys = array_keys($response);
$count = 1;
foreach($array_keys as $element)
{
if (!strncmp('item_number', $element, strlen('item_number')))
$count++;
}
for($idx = 1; $idx < $count; $idx ++)
{
if (isset($string1) && 'item_name' != null)
{
//$item_name .=$idx ++;
//$item_name = $item_name++;
echo ("<div class='abouttext'>Produkt: ".$item_name."</div>\n");
echo ("<div class='abouttext'>ID: ".$item_number."</div>\n");
echo ("<div class='abouttext'>Antal: ".$qty."</div>\n");
echo ("<br />");
}
}
также: Я читал на некоторых форумах с людьми с подобными проблемами, и они получили отвечает на использование item_nameX как имя переменной, и я тоже пробовал это, без каких-либо других результатов. Если я hardcode $item_number = $response[item_number1];
< - где я укажу 1, я получу правильные данные. Я проверил это.
РАБОТА КОД:
$array_keys = array_keys($response);
$count = 1;
$i = 1;
foreach($array_keys as $element)
{
if (!strncmp('item_number', $element, strlen('item_number')))
$count++;
}
for($idx = 1; $idx < $count; $idx ++ & $i++)
{
$item_number = $response[item_number . $i];
$item_name = $response[item_name . $i];
$qty = $response[quantity . $i];
echo ("<div class='abouttext'>Produkt: ".$item_name."</div>\n");
echo ("<div class='abouttext'>ID: ".$item_number."</div>\n");
echo ("<div class='abouttext'>Antal: ".$qty."</div>\n");
echo ("<br />");
}
(отредактировано) У вас есть что-то плохое с логикой: «item_name» - это строка, поэтому она никогда не имеет значения null. И код в целом чрезвычайно трудно читать из-за стиля. –
Да, это правда, спасибо. Но я не думаю, что он даже выполнял функцию, я удалил ее, и у меня такой же результат. Отображается только имя, но это указывает на то, что оно все равно может найти имя, но все же item_name - это просто item_name, а не item_name1, например. Ill обновить код. –