modell-box
18.07.2009, 16:18
Wer Sessions in MySql schreibt braucht das nicht zu machen!
Fehlerbeschreibung:
User die keine Artikel im Warenkorb haben bekommen den grünen Button (Active/Incart), das ist falsch der Button muss rot sein(Active/Nocart), ebenso bei Inakticen Users.
Aus zeitlichen gründen schicke ich euch nur den Code der einen funktion, wer Lust und Zeit hat darf das gerne in ein Packet schnürren. Ansonsten mit Winmerge oder so...
Datei /admin/who_is_online.php
function xtc_check_cart($which)
{
****if (STORE_SESSIONS == 'mysql')
****{
********$session_data = xtc_db_query("select sesskey, value from " . TABLE_SESSIONS . " WHERE sesskey = '" . $which . "'");
********$session_data = xtc_db_fetch_array($session_data);
****} else
****{
********if ((file_exists(xtc_session_save_path() . '/sess_' . $which)) && (filesize(xtc_session_save_path() . '/sess_' . $which) > 0))
********{
************$session_data = file(xtc_session_save_path() . '/sess_' . $which);
************$session_data_noMysql = unserialize_session_data($session_data[0]);****
************$session_data = trim(implode('', $session_data));
********}
****}
****if($session_data_noMysql)
****{
********$which_query = $session_data_noMysql;
********if(count($which_query['cart']->contents)>0)
************$IsCart = true;
********else
************$IsCart = false;
********$NoCart = !$IsCart;
****}
****else
****{
********$which_query = $session_data;
********$NoCart = strstr($which_query['value'], '"contents";a:0:');
********$IsCart = !$NoCart;
****}
****
****
****$who_data = xtc_db_query(("select session_id, time_entry, time_last_click
******************************** from " . TABLE_WHOS_ONLINE . "
******************************** where session_id='" . $which . "'"));
****$who_query = xtc_db_fetch_array($who_data);
****$xx_mins_ago_long = (time() - 180);
****switch (true)
****{
********case ($NoCart):
************if ($who_query['time_last_click'] < $xx_mins_ago_long)
************{
****************return xtc_image(DIR_WS_IMAGES . 'icon_status_red.gif', TEXT_STATUS_INACTIVE_NOCART);
************} else
************{
****************return xtc_image(DIR_WS_IMAGES . 'icon_status_blue.gif', TEXT_STATUS_ACTIVE_NOCART);
************}
********case ($IsCart):
************if ($who_query['time_last_click'] < $xx_mins_ago_long)
************{
****************return xtc_image(DIR_WS_IMAGES . 'icon_status_yellow.gif', TEXT_STATUS_INACTIVE_CART);
************} else
************{
****************return xtc_image(DIR_WS_IMAGES . 'icon_status_green.gif', TEXT_STATUS_ACTIVE_CART);
************}
****}
}
grüsse
Fehlerbeschreibung:
User die keine Artikel im Warenkorb haben bekommen den grünen Button (Active/Incart), das ist falsch der Button muss rot sein(Active/Nocart), ebenso bei Inakticen Users.
Aus zeitlichen gründen schicke ich euch nur den Code der einen funktion, wer Lust und Zeit hat darf das gerne in ein Packet schnürren. Ansonsten mit Winmerge oder so...
Datei /admin/who_is_online.php
function xtc_check_cart($which)
{
****if (STORE_SESSIONS == 'mysql')
****{
********$session_data = xtc_db_query("select sesskey, value from " . TABLE_SESSIONS . " WHERE sesskey = '" . $which . "'");
********$session_data = xtc_db_fetch_array($session_data);
****} else
****{
********if ((file_exists(xtc_session_save_path() . '/sess_' . $which)) && (filesize(xtc_session_save_path() . '/sess_' . $which) > 0))
********{
************$session_data = file(xtc_session_save_path() . '/sess_' . $which);
************$session_data_noMysql = unserialize_session_data($session_data[0]);****
************$session_data = trim(implode('', $session_data));
********}
****}
****if($session_data_noMysql)
****{
********$which_query = $session_data_noMysql;
********if(count($which_query['cart']->contents)>0)
************$IsCart = true;
********else
************$IsCart = false;
********$NoCart = !$IsCart;
****}
****else
****{
********$which_query = $session_data;
********$NoCart = strstr($which_query['value'], '"contents";a:0:');
********$IsCart = !$NoCart;
****}
****
****
****$who_data = xtc_db_query(("select session_id, time_entry, time_last_click
******************************** from " . TABLE_WHOS_ONLINE . "
******************************** where session_id='" . $which . "'"));
****$who_query = xtc_db_fetch_array($who_data);
****$xx_mins_ago_long = (time() - 180);
****switch (true)
****{
********case ($NoCart):
************if ($who_query['time_last_click'] < $xx_mins_ago_long)
************{
****************return xtc_image(DIR_WS_IMAGES . 'icon_status_red.gif', TEXT_STATUS_INACTIVE_NOCART);
************} else
************{
****************return xtc_image(DIR_WS_IMAGES . 'icon_status_blue.gif', TEXT_STATUS_ACTIVE_NOCART);
************}
********case ($IsCart):
************if ($who_query['time_last_click'] < $xx_mins_ago_long)
************{
****************return xtc_image(DIR_WS_IMAGES . 'icon_status_yellow.gif', TEXT_STATUS_INACTIVE_CART);
************} else
************{
****************return xtc_image(DIR_WS_IMAGES . 'icon_status_green.gif', TEXT_STATUS_ACTIVE_CART);
************}
****}
}
grüsse