rezwiebel Posted October 20, 2010 Report Share Posted October 20, 2010 Hi, ich möchte von einer externen Seite den veyton Warenkorb auslesen. Ich hab also die folgende Sessionid ausgelesen: 7ceb7340c8773b4f6c8f169944edb71d Wie kann ich jetzt mit der Sessionid fortfahren und auslesen, was gerade im Warenkorb drin ist? In welcher DB-Tabelle steht das? Gruß René Link to comment Share on other sites More sharing options...
rezwiebel Posted October 20, 2010 Author Report Share Posted October 20, 2010 OK, hatte übersehen, dass es ein Feld "sessdata" gibt. Allerdings ist die Codewurst darin sehr schwer zu verstehen. Kann mir jemand sagen wie ich das entschlüsseln kann? Link to comment Share on other sites More sharing options...
mzanier Posted October 20, 2010 Report Share Posted October 20, 2010 das ist ein serialisiertes array. Link to comment Share on other sites More sharing options...
rezwiebel Posted February 2, 2011 Author Report Share Posted February 2, 2011 Hallo nochmal zu dem Thema. Ich wollte das Array jetzt de-serialisieren...aber leider bekomme ich gar keine Ausgabe. Kann mir nochmal einer sagen was ich falsch mache? $SQLString = "SELECT sessdata FROM xt_sessions2 where sesskey='".$shopsess."'"; $result = mysql_query($SQLString); if($result) { while($row = mysql_fetch_array($result)) { $data=$row[0]; } } $array = unserialize ( $data ); print_r ( $array ); Ach ja und noch eine Frage: ich möchte von Joomla aus den Warenkorb im Shop beeinflussen. Ich kann ja über shop?action=add_product&product=84&qty=1 Waren über einen Link in den Warenkorb schmeissen. Das Problem ist aber, dass ich dafür ja in den Warenkorb umgeleitet werde. Gibt es auch eine Möglichkeit den Artikel in den Warenkorb zu legen, aber auf der Joomla Seite zu verbleiben? Hintergrund ist der: Jemand klickt auf bestellen in Joomla -> Ware wird in Veyton in den Warenkorb geworfen, der User bleibt aber auf der Joomla Seite (wegen mir auch eine andere Joomla Seite) -> er sieht in Joomla einen kurzen Shoppingcart. Will der Kunde bezahlen, klickt er auf den Shoppingcart in Joomla und kommt auf den Veyton Checkout Prozess... Link to comment Share on other sites More sharing options...
rezwiebel Posted February 3, 2011 Author Report Share Posted February 3, 2011 Hat keiner einen Tipp? Link to comment Share on other sites More sharing options...
mzanier Posted February 3, 2011 Report Share Posted February 3, 2011 adodb_unserialize() ist ein tipp, siehe veyton session handler in adodb. Link to comment Share on other sites More sharing options...
rezwiebel Posted February 4, 2011 Author Report Share Posted February 4, 2011 Hab mir jetzt die adodb_session.php eingebunden und so aufgerufen: $array=adodb_unserialize($data); print_r($array); Da kommt genauso kryptisches raus... Array ( [agent_check%7CO%3A11%3A%22agent_check%22%3A0%3A%7B%7Dcustomer%7CO%3A8%3A%22customer%22%3A12%3A%7Bs%3A12%3A%22customers_id%22%3Bi%3A0%3Bs%3A16%3A%22customers_status%22%3Bs%3A1%3A%221%22%3Bs%3A13%3A%22customer_info%22%3Ba%3A1%3A%7Bs%3A12%3A%22account_type%22%3Bi%3A0%3B%7Ds%3A24%3A%22customer_default_address%22%3Ba%3A0%3A%7B%7Ds%3A25%3A%22customer_shipping_address%22%3Ba%3A0%3A%7B%7Ds%3A24%3A%22customer_payment_address%22%3Ba%3A0%3A%7B%7Ds%3A5%3A%22error%22%3Bb%3A0%3Bs%3A11%3A%22_master_key%22%3Bs%3A12%3A%22customers_id%22%3Bs%3A15%3A%22_master_key_add%22%3Bs%3A15%3A%22address_book_id%22%3Bs%3A6%3A%22_table%22%3Bs%3A12%3A%22xt_customers%22%3Bs%3A10%3A%22_table_add%22%3Bs%3A22%3A%22xt_customers_addresses%22%3Bs%3A9%3A%22master_id%22%3Bs%3A12%3A%22customers_id%22%3B%7Dcart%7CO%3A4%3A%22cart%22%3A23%3A%7Bs%3A7%3A%22content%22%3Ba%3A1%3A%7Bs%3A5 Wie kann ich jetzt weitermachen? Wäre nett, wenn Sie noch einen Tipp für mich hätten... Link to comment Share on other sites More sharing options...
oldbear Posted February 4, 2011 Report Share Posted February 4, 2011 danke für den Tipp ! Link to comment Share on other sites More sharing options...
oldbear Posted February 4, 2011 Report Share Posted February 4, 2011 urldecode ! Grüsse Link to comment Share on other sites More sharing options...
rezwiebel Posted February 4, 2011 Author Report Share Posted February 4, 2011 urldecode? Was macht das und wie kann ich es einsetzen? Lass mich von an deinem Wissen teilhaben... Link to comment Share on other sites More sharing options...
oldbear Posted February 4, 2011 Report Share Posted February 4, 2011 Augenklappe auf ? ganz normales php: $xy = urldecode($sessiondata) und dann erst den unserialize .... Grüsse Link to comment Share on other sites More sharing options...
rezwiebel Posted February 4, 2011 Author Report Share Posted February 4, 2011 OK, ich komme der Sache näher: So hab ich aufgerufen: $data = urldecode($data); $arraytest=adodb_unserialize($data); echo $arraytest["customer"]["customers_id"];[/PHP] Ergebnis ist eine leere Seite mit  als Ausgabe. Dabei war die Quellcodeausgabe des Arrays schon [HTML]Array ( [agent_check] => __PHP_Incomplete_Class Object ( [__PHP_Incomplete_Class_Name] => agent_check ) [customer] => __PHP_Incomplete_Class Object ( [__PHP_Incomplete_Class_Name] => customer [customers_id] => 0 ...[/HTML] Noch jemand eine Idee? Link to comment Share on other sites More sharing options...
2Break Posted February 5, 2011 Report Share Posted February 5, 2011 In der Quellcodeausgabe des Arrays steht als Lösungshinweis: Class Object Link to comment Share on other sites More sharing options...
rezwiebel Posted February 7, 2011 Author Report Share Posted February 7, 2011 Sorry, verstehe nur Bahnhof...nochmal bitte für Nichtversteher. Link to comment Share on other sites More sharing options...
schoorli Posted August 24, 2012 Report Share Posted August 24, 2012 ...aber schade dass es hier endet, ist doch ein interessantes Thema! Will hier nochmal jemand helfen? Link to comment Share on other sites More sharing options...
Sentor77 Posted August 24, 2012 Report Share Posted August 24, 2012 Moin, Was gemeint war, war, dass sich ein Object nicht durch echo ausgeben lässt. Probier mal folgendes: echo $arraytest['customer']->customer_id; [/PHP] Das könnte dich einen Schritt näher bringen. LG Link to comment Share on other sites More sharing options...
schoorli Posted August 27, 2012 Report Share Posted August 27, 2012 hallo danke für die Antwort! hat mich auch ein kleines stück näher gebracht, allerdings kam ich bald drauf dass man hiermit eine undefinierte Klasse aufruft und diese man aber nicht auslesen kann. Also hab ich Klassen definiert, etwa so: class customer{ var $customers_id;... und bin wieder einen Schritt näher... gibts dazu noch vorschläge? Link to comment Share on other sites More sharing options...
danny2901 Posted December 18, 2012 Report Share Posted December 18, 2012 Hallo zusammen, ich muss dieses Thema hier noch einmal aufgreifen. Array auslesen und bearbeiten bekomme ich soweit hin. Aber wie bekomme ich das Array anschliessend wieder vernünftig serialisert? Link to comment Share on other sites More sharing options...
schoorli Posted December 18, 2012 Report Share Posted December 18, 2012 Hab aus der Sache ein einfaches Script gemacht. Bei mir momentan zum dierekt Aufrufen. Mit den 5 Anpassungen sollte es überall laufen. Oder Schnippsel rausholen - wenns hilft...;-) <?php include('xtFramework/library/adodb/session/adodb-session2.php'); //Anpassen $con = mysql_connect("localhost","benutzer","passwort")or die('Keine Verbindung zur Datenbank!'); //Anpassen if (!$con){die('Could not connect: ' . mysql_error());} mysql_select_db("datenbank"); //Anpassen $db_selected = mysql_select_db($db,$con); $productImagePfadThumb = 'media/images/thumb/'; //Anpassen $preview = 'http://www.shop.at'; //Anpassen $img_open = '<img height="150" src="'; $href_open = '<a href="'; $href_close = '</a>'; $tag_close = '">'; class customer{ var $customers_id; } class cart{ var $content = array(); } class img{ var $p_img; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Warenkorb und Sessions</title> <style type="text/css"> .wrap{border:2px solid #555; width:500px; float:none; margin-bottom:20px; font-family:arial, verdana, sans-serif;} .row{margin-top:5px; background-color:#ccc; padding-left:10px;} </style> </head> <body> <!-- -------------------------- --> <!-- Aktuelle Sessions anzeigen --> <!-- -------------------------- --> <div class="wrap"> <?php $sql = "SELECT * FROM xt_sessions2"; $result = mysql_query($sql,$con); ///// $out ='<div class="title"><h3>Aktuelle Sessions</h3></div>'; while($data = mysql_fetch_object($result)) { $result1 = urldecode($data->sessdata); $result_decode = adodb_unserialize($result1); $content = ''; foreach($result_decode['cart']->content as $key => $value){ if(substr($key,-2,2) != XT){ $key = substr($key,3); $content .= '<a href="'.$preview.$key.'" target="_blank">'.$img_open.$preview.$key.$tag_close.'</a><br />';}} foreach($result_decode['cart']->show_content as $show => $value){ if(substr($show,-2,2) == XT){ $content .= '<a href="'.$value[products_link].'" target="_blank">'.$value[products_name].'</a><br />';}} if($result_decode['econda_add_cart_qty']>=1){ $out .= '<div class="row">'; if($result_decode['customer']->customers_id!=''){ $out .= '<div class="order">Kunden-ID: '.$result_decode['customer']->customers_id.'</div>'; $out .= '<div class="order">Name: '.$result_decode['customer']->customer_default_address[customers_firstname].' '.$result_decode['customer']->customer_default_address[customers_lastname].'</div>';} $out .= '<div class="cartcontent">Inhalt:<br />'.$content/*$result_decode['p_img']*/.'</div>'; $out .= '<div class="date">Ablauf: '.substr($data->expiry,10,6).'</div>'; $out .= '<div class="date">sesskey: '.$data->sesskey.'</div>'; $out .= '</div>'; } } echo $out; ?> </div> <!-- ------------------------- --> <!-- Kundenwarenkörbe anzeigen --> <!-- ------------------------- --> <div class="wrap"> <?php $sql2 = "SELECT A.basket_id, A.customers_id, A.products_key, A.products_id, A.date_added, B.products_id, B.products_image, C.customers_id, C.customers_email_address, D.customers_id, D.customers_firstname, D.customers_lastname FROM xt_customers_basket AS A JOIN xt_products AS B ON A.products_id = B.products_id JOIN xt_customers AS C ON A.customers_id = C.customers_id JOIN xt_customers_addresses AS D ON C.customers_id = D.customers_id ORDER BY A.basket_id DESC"; $result = mysql_query($sql2,$con); ///// $out ='<div class="title"><h3>Offene Warenkörbe</h3></div>'; while($data2 = mysql_fetch_object($result)) { if(substr($data2->products_key,-2,2) != XT){ $url = $preview.substr($data2->products_key,3);} else{ $url = $productImagePfadThumb.$data2->products_image;} $content = $href_open.$url.$tag_close.$img_open.$url.$tag_close.$href_close; $out .= '<div class="row">'; $out .= '<div class="order">'.$data2->customers_firstname.' '.$data2->customers_lastname.'</div>'; $out .= '<div class="date">'.$data2->customers_email_address.'</div>'; $out .= '<div class="order">Datum: '.date("d.m.y",strtotime($data2->date_added)).'</div>'; $out .= '<div class="cartcontent">'.$content.'</div>'; $out .= '<div class="date">basket_id: '.$data2->basket_id.'</div>'; $out .= '</div>'; } echo $out; ?> </div> </body> </html> Link to comment Share on other sites More sharing options...
danny2901 Posted December 18, 2012 Report Share Posted December 18, 2012 Super Sache soweit. Wie gesagt bearbeiten kann ich es soweit auch. Nur wie bekomme ich das bearbeitete Array dann wieder vernünftig serialisiert in die DB? Link to comment Share on other sites More sharing options...
schoorli Posted December 18, 2012 Report Share Posted December 18, 2012 okay - sorry, falsch verstanden. du willst den Umkehrschluss - also eine Session bearbeiten? Link to comment Share on other sites More sharing options...
danny2901 Posted December 18, 2012 Report Share Posted December 18, 2012 Genau. Also ich lese den Warenkorb bearbeite die Session(best. Artikel entfernen nach Zeitablauf Reservierungsfunktion) und dann soll das ganze wieder serialisiert werden und zurück in die DB. Nur wie serialisiere ich das Array wieder mit adodb? Link to comment Share on other sites More sharing options...
danny2901 Posted December 19, 2012 Report Share Posted December 19, 2012 Hat denn niemand einen Lösungsansatz? Link to comment Share on other sites More sharing options...
nobodz Posted March 13, 2013 Report Share Posted March 13, 2013 Die Session-Data scheint in der aktuellen Installation verschlüsselt zu sein. Versuche von extern (PHP) auf die MySQL Datenbank zuzugreifen und verwende die Session/User aus xt-commerce. Steht in Session-data die User ID? Vielleicht weiß da ja wer mehr. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.