Нужна помощь с кодом XML отчета

maxsus

Новичок
Всем привет, кто может помочь решить проблему.
Нужен работающий код XML отчета для подтверждения заказа

Вот есть код, но он не хочет работать. Что в нем необходимо подправить. Подскажите, очень нужна помощь.
PHP:
<?PHP
$pass="poiu1234";

// Пароль для доступа к XML генератору, который указан в настройках кампании

if ($_POST['pass'] != md5($pass) )
    die('<?xml version="1.0"?><error>no confirm pass</error>');

$res = '';
preg_match_all("/<item>(.*)<\/item>/Uis", $_POST['xml'], $items);

foreach($items[1] as $oid)
{
    // вместо getOrderById вам нужно прописать
    // свою функцию, которая получает данные из БД
    $order = getOrderById($oid);

    $res .= '<item>';
    $res .= '<id>' . $oid . '</id>';
    $res .= '<status>' . $order['status'] . '</status>';
    $res .= '<price>' . $order['price'] . '</price>';
    $res .= '</item>';
}

$res = '<?xml version="1.0"?><items>' . $res . '</items>';
echo $res;

// пример функции получения данных из БД
function getOrderById($oid)
{
    $status = 2;
    $price = 0;

    // тут предполагается что конект к базе уже есть
    $res = mysql_query('SELECT * FROM `table_order` WHERE `id`= ' . $oid . ' LIMIT 1');
    $row = mysql_fetch_assoc($res);

    $status = $row['status'];
    // состояние запрошенного заказа
    // status:
    //  done (или 1) - подтвержден
    //  wait (или 2) - в ожидании (в процессе обработки)
    //  cancel (или 3) - отклонён

    $price = $row['cost'];
    // стоимость товара/услуги.
    // нужно при типе цели "Процент с продаж",
    // в цели "Фиксированная оплата" можно в отправлять 0 или не отправлять это поле вовсе

    return array(
        'status' => $status,
        'price' => $price);
}
?>
пишет no confirm pass
а должен формировать отчет на подобии такого

HTML:
<?xml version="1.0">
<items>
   <item>
      <id>12345</id>
      <status>1</status>
      <price>57.50</price>
   </item>
   <item>
      <id>2345678</id>
      <status>wait</status>
   </item>
   <item>
      <id>88088</id>
      <status>done</status>
      <price>200</price>
   </item>
   <item>
      <id>333999</id>
      <status>cancel</status>
      <price>0</price>
   </item>
</items>
 

WMix

герр M:)ller
Партнер клуба
PHP:
if ($_POST['pass'] != md5($pass) )
die('<?xml version="1.0"?><error>no confirm pass</error>');
внимательно поглядеть подумать!
 

WMix

герр M:)ller
Партнер клуба
там нет ошибки, там логика того что нужно сделать!
 

maxsus

Новичок
сделай чтоб совпадали!
сделал кодировку в md5 все равно выводится надпись "пароли не совпадают"
если убрать != md5($pass) из строки и оставить if ($_POST['pass'])
надпись пропадает и теперь просто пустая страница выводиться. Отчет нужного формата не хочет формироваться
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
тут нельзя пытаться угадать, тут нужно понимание того что происходит. если сам не умеешь, поищи специалиста
 
Сверху