Jump to content
xt:Commerce Community Forum

Mit Sessionid Warenkorb auslesen


rezwiebel

Recommended Posts

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

  • 3 months later...

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

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

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

  • 1 year later...

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?

;):rolleyes:

Link to comment
Share on other sites

  • 3 months later...

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

  • 2 months later...

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

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...