Jump to content
  • 0

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


maxsus
 Share

Question

Всем привет, кто может помочь решить проблему.

Нужен работающий код XML отчета для подтверждения заказа

 

Вот есть код, но он не хочет работать. Что в нем необходимо подправить. Подскажите, очень нужна помощь.

 



<?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

я так понимаю что-то не так с этой строкой



if ($_POST['pass'] != md5($pass) )


 

При правильной работе, код должен формировать отчет на подобии такого 

 


<?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>

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Я закодировал пароль, но все равно пишет "пароли не совпадают"

 <?PHP$pass="4ce2157b9dbc3623ebadd450ceac9f0d"; // Пароль для доступа к XML генератору, который указан в настройках кампании if ($_POST['pass'] != md5($pass) )    die('<?xml version="1.0"?><error>no confirm pass</error>'); 
Link to comment
Share on other sites

  • 0

Вы значала вводите хеш:

$pass="4ce2157b9dbc3623ebadd450ceac9f0d";
А потом его же ещё раз кодируете:

md5($pass) // берём хеш от хеша
Естественно они не совпадают :)

Вот так наглядней будет: 

if ($_POST['pass'] != md5($pass) )    die('<?xml version="1.0"?><error>' . var_dump($_POST['pass']) . ' != ' . var_dump(md5($pass)) . '</error>');
Link to comment
Share on other sites

  • 0

Вы значала вводите хеш:

$pass="4ce2157b9dbc3623ebadd450ceac9f0d";
А потом его же ещё раз кодируете:

md5($pass) // берём хеш от хеша
Естественно они не совпадают :)

Вот так наглядней будет: 

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

делал как написали - теперь выводит вот так

NULL string(32) "4ce2157b9dbc3623ebadd450ceac9f0d" !=

Link to comment
Share on other sites

  • 0

Варианты:

if (md5($_POST['pass']) != md5($pass) ) // но зачем так? х.з...

if ($_POST['pass'] != $pass ) // более логично

мне необходимо написать небольшой файл XML - подтверждения заказа. 

 

Пример и принцип отчета написан вот здесь - https://visitweb.com...php#xml_confirm

Посмотрите, может подскажите, что я не так делаю?

Link to comment
Share on other sites

  • 0

мне необходимо написать небольшой файл XML - подтверждения заказа

XML тут вообще не при чем. Вы сначала разберитесь с хешированием. Сейчас вообще непонятно откуда у вас пароль берётся, то-ли он в коде записан жестко (тогда непонятно нафига там вообще if стоит), то-ли вы его из формы получаете.
Link to comment
Share on other sites

  • 0

 

мне необходимо написать небольшой файл XML - подтверждения заказа

XML тут вообще не при чем. Вы сначала разберитесь с хешированием. Сейчас вообще непонятно откуда у вас пароль берётся, то-ли он в коде записан жестко (тогда непонятно нафига там вообще if стоит), то-ли вы его из формы получаете.

 

 

может поможете с написанием, а то сам не разберусь. Готов заплатить за работу

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy