-1

セッションの内容をphpで読む必要があります。セッションは、easybasket というショッピング カート スクリプトによって作成されます。セッションに保存されているデータを抽出する必要があるため、MySql テーブルに保存できます。データはXML形式で保存されているようです。私のセッションの内容は次のとおりです。

array (size=3)
'username' => string 'test@gmail.com' (length=21)
'nombre' => string 'Joe Smith' (length=16)
'basket' => string '<basket version="1.0" timestamp="2013-05-04T12:58:37+00:00">
<items count="2" quantity="4" subtotal="1460" postage="0" total="1460" paypal="yes"     google="no">
<item unit-price="380.00" quantity="2" subtotal="760" postage="0" total="760">
  <title>DANCER CATAMARAN ADULTS</title>
  <price>380.00</price>
</item>
<item unit-price="350.00" quantity="2" subtotal="700" postage="0" total="700">
  <title>DANCER CATAMARAN CHILDREN</title>
  <price>350.00</price>
</item>

4

2 に答える 2

1

$_SESSION['basket'] のコンテンツを参照するには、simpleXMLを使用します。

$xml = simplexml_load_string($_SESSION['basket']);

例 :

$xml = simplexml_load_string($_SESSION['basket']);
foreach( $xml->items->item as $item) {
    echo $item['quantity'] . ' - ' . $item->title . '<br>';
}

出力:

2 - DANCER CATAMARAN ADULTS
2 - DANCER CATAMARAN CHILDREN
于 2013-05-04T13:55:10.667 に答える
0

そのようなセッション配列を信用しないでください...

Webhoster がすべてのユーザーに対して同じセッション ディレクトリを使用しているときに、攻撃者がセッションにデータを挿入することに成功すると、xml インジェクションまたは xml エントリ インジェクションが可能になります。

simpelXml の前にlibxml_disable_entity_loader ( http://www.php.net/manual/en/function.libxml-disable-entity-loader.phpを参照) を使用して、xml エントリ インジェクションに対して安全にします。

于 2013-05-04T17:19:47.027 に答える