Blackthorneppc Posted November 28, 2007 Share Posted November 28, 2007 Hi, I ran into a problem installing Product Attributes - Option Type Feature for Oscommerce. Im not sure what I did wrong. Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /****/includes/classes/shopping_cart.php:1) in /****/includes/functions/sessions.php on line 97 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /****/includes/classes/shopping_cart.php:1) in /****/includes/functions/sessions.php on line 97 shopping_cart.php <?php /* $Id: shopping_cart.php,v 1.73 2003/06/09 23:03:56 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2003 osCommerce Released under the GNU General Public License */ require("includes/application_top.php"); require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_SHOPPING_CART); $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_SHOPPING_CART)); ?> <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html <?php echo HTML_PARAMS; ?>> <head> <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>"> <title><?php echo TITLE; ?></title> <base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>"> <link rel="stylesheet" type="text/css" href="stylesheet.css"> </head> <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0"> <!-- header //--> <?php require(DIR_WS_INCLUDES . 'header.php'); ?> <!-- header_eof //--> <!-- body //--> <table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td valign="top"> <!-- left_navigation //--> <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?> <!-- left_navigation_eof //--> </td> <!-- body_text //--> <td width="100%" valign="top"><?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_SHOPPING_CART, 'action=update_product')); ?><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td> <?php tep_draw_heading_top();?> <? new contentBoxHeading_ProdNew($info_box_contents);?> <?php tep_draw_heading_top_1();?> <?php if ($cart->count_contents() > 0) { ?> <?php $info_box_contents = array(); $info_box_contents[0][] = array('align' => 'center', 'params' => 'class="shop_card_txt" style="width:15%"', 'text' => ''.TABLE_HEADING_REMOVE.''); $info_box_contents[0][] = array('params' => 'class="shop_card_txt" style="width:50%""', 'text' => ''.TABLE_HEADING_PRODUCTS.''); $info_box_contents[0][] = array('align' => 'center', 'params' => 'class="shop_card_txt" style="width:15%""', 'text' => ''.TABLE_HEADING_QUANTITY.''); $info_box_contents[0][] = array('align' => 'center', 'params' => 'class="shop_card_txt " style="width:20%""', 'text' => ''.TABLE_HEADING_TOTAL.''); $any_out_of_stock = 0; $products = $cart->get_products(); for ($i=0, $n=sizeof($products); $i<$n; $i++) { // Push all attributes information in an array if (isset($products[$i]['attributes']) && is_array($products[$i]['attributes'])) { while (list($option, $value) = each($products[$i]['attributes'])) { // OTF contrib begins //echo tep_draw_hidden_field('id[' . $products[$i]['id'] . '][' . $option . ']', $value); // OTF contrib ends $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . (int)$products[$i]['id'] . "' and pa.options_id = '" . (int)$option . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . (int)$value . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . (int)$languages_id . "' and poval.language_id = '" . (int)$languages_id . "'"); $attributes_values = tep_db_fetch_array($attributes); // OTF contrib begins if ($value == PRODUCTS_OPTIONS_VALUE_TEXT_ID) { $attr_value = $products[$i]['attributes_values'][$option] . tep_draw_hidden_field('id[' . $products[$i]['id'] . '+++' . $i . '][' . TEXT_PREFIX . $option . ']', $products[$i]['attributes_values'][$option]); $attr_name_sql_raw = 'SELECT po.products_options_name FROM ' . TABLE_PRODUCTS_OPTIONS . ' po, ' . TABLE_PRODUCTS_ATTRIBUTES . ' pa WHERE ' . ' pa.products_id="' . tep_get_prid($products[$i]['id']) . '" AND ' . ' pa.options_id="' . $option . '" AND ' . ' pa.options_id=po.products_options_id AND ' . ' po.language_id="' . $languages_id . '" '; $attr_name_sql = tep_db_query($attr_name_sql_raw); if ($arr = tep_db_fetch_array($attr_name_sql)) { $attr_name = $arr['products_options_name']; } } else { $attr_value = $attributes_values['products_options_values_name'] . tep_draw_hidden_field('id[' . $products[$i]['id'] . '+++' . $i. '][' . $option . ']', $value); $attr_name = $attributes_values['products_options_name']; } // OTF contrib ends // OTF contrib begins //$products[$i][$option]['products_options_name'] = $attributes_values['products_options_name']; $products[$i][$option]['products_options_name'] = $attr_name; // OTF contrib ends $products[$i][$option]['options_values_id'] = $value; // OTF contrib begins //$products[$i][$option]['products_options_values_name'] = $attributes_values['products_options_values_name']; $products[$i][$option]['products_options_values_name'] = $attr_value; // OTF contrib ends $products[$i][$option]['options_values_price'] = $attributes_values['options_values_price']; $products[$i][$option]['price_prefix'] = $attributes_values['price_prefix']; } } } for ($i=0, $n=sizeof($products); $i<$n; $i++) { if (($i/2) == floor($i/2)) { $info_box_contents[] = array('params' => 'class=""'); } else { $info_box_contents[] = array('params' => 'class=""'); } $cur_row = sizeof($info_box_contents) - 1; $info_box_contents[$cur_row][] = array('align' => 'center', 'params' => 'class="" valign="top"', 'text' => '<br style="line-height:1px;"><br style="line-height:44px;">' .tep_draw_checkbox_field('cart_delete[]', $products[$i]['id'])); $products_name = ' <table cellpadding="0" cellspacing="0" border="0" style=" width:290px;"> <tr> <td height="168"><img src="images/spacer.gif" width="7" height="1" alt=""></td> <td class="pic"><br style="line-height:11px"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']) . '">' . tep_image(DIR_WS_IMAGES . $products[$i]['image'], $products[$i]['name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br></td> <td><img src="images/spacer.gif" width="7" height="1" alt=""></td> <td width="100%" ><br style="line-height:13px"> <a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']) . '">' . substr($products[$i]['name'],0,MAX_DESCR_NAME_SHOPPCART) . '</a>'; if (STOCK_CHECK == 'true') { $stock_check = tep_check_stock($products[$i]['id'], $products[$i]['quantity']); if (tep_not_null($stock_check)) { $any_out_of_stock = 1; $products_name .= $stock_check; } } if (isset($products[$i]['attributes']) && is_array($products[$i]['attributes'])) { reset($products[$i]['attributes']); while (list($option, $value) = each($products[$i]['attributes'])) { $products_name .= '<br><small><i> - ' . $products[$i][$option]['products_options_name'] . ' ' . $products[$i][$option]['products_options_values_name'] . '</i></small>'; } } $products_name .= '</td> </tr> </table> '; $info_box_contents[$cur_row][] = array('params' => 'class=""', 'text' => '<br style="line-height:1px">'.$products_name); $info_box_contents[$cur_row][] = array('align' => 'center', 'params' => ' class="form_1" valign="top"', 'text' => '<br style="line-height:1px;"><br style="line-height:44px">'.tep_draw_input_field('cart_quantity[]', $products[$i]['quantity'], 'size="4" id="input3"') . tep_draw_hidden_field('products_id[]', $products[$i]['id'])); $info_box_contents[$cur_row][] = array('align' => 'center', 'params' => 'class="" valign="top"', 'text' => '<br style="line-height:1px;"><br style="line-height:44px"><span>' . $currencies->display_price($products[$i]['final_price'], tep_get_tax_rate($products[$i]['tax_class_id']), $products[$i]['quantity']) . '</span>'); } new productListingBox($info_box_contents); ?> <?php if ($any_out_of_stock == 1) { if (STOCK_ALLOW_CHECKOUT == 'true') { ?> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr> <td class="stockWarning" align="center"><br><?php echo OUT_OF_STOCK_CAN_CHECKOUT; ?></td> </tr> </table> <?php } else { ?> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr> <td class="stockWarning" align="center"><br><?php echo OUT_OF_STOCK_CANT_CHECKOUT; ?></td> </tr> </table> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '1'); ?></td> </tr> </table> <?php } } ?> <table cellspacing="0" cellpadding="0" border="0" class="product"> <tr><td class="bg16" colspan="2"></td></tr> <tr> <td width="82%" align="right" height="45" style=" vertical-align:middle;"><?php echo tep_draw_separator('pixel_trans.gif', '97', '1'); ?><br><strong><?php echo SUB_TITLE_SUB_TOTAL; ?></strong> <br> </td> <td width="18%" height="45" align="center" style=" vertical-align:middle;"> <span><?php echo $currencies->format($cart->show_total()); ?></span> </td> </tr> </table> <table cellspacing="0" cellpadding="0" border="0" > <tr> <td width="499" height="22"> <?php echo tep_draw_separator('pixel_trans.gif', '13', '1'); ?><?php echo tep_image_submit('button_update_cart.gif', IMAGE_BUTTON_UPDATE_CART); ?><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?><?php $back = sizeof($navigation->path)-2; if (isset($navigation->path[$back])) { echo '<a href="' . tep_href_link($navigation->path[$back]['page'], tep_array_to_string($navigation->path[$back]['get'], array('action')), $navigation->path[$back]['mode']) . '">' . tep_image_button('button_continue_shopping1.gif', IMAGE_BUTTON_CONTINUE_SHOPPING) . '</a>'; } ?><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?><?php echo '<a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL') . '">' . tep_image_button('button_checkout.gif', IMAGE_BUTTON_CHECKOUT) . '</a>'; ?><br> </td> </tr> </table> <?php } else { ?> <br style="line-height:1px;"><br style="line-height:5px;"> <table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td></td> <td align="center" class="main"><br><?php new infoBox_77(array(array('text' => TEXT_CART_EMPTY))); ?></td> <td></td> </tr> <tr> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> <td align="right" class="main"><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?><br><br></td> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> </tr> <tr><td colspan="3" height="5"></td></tr> </table> <?php } ?> <?php tep_draw_heading_bottom_1();?> <?php tep_draw_heading_bottom();?> </table> </form></td> <!-- body_text_eof //--> <td valign="top"> <!-- right_navigation //--> <?php require(DIR_WS_INCLUDES . 'column_right.php'); ?> <!-- right_navigation_eof //--> </td> </tr> </table> <!-- body_eof //--> <!-- footer //--> <?php require(DIR_WS_INCLUDES . 'footer.php'); ?> <!-- footer_eof //--> <br> </body> </html> <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> sessions.php <?php /* $Id: sessions.php,v 1.19 2003/07/02 22:10:34 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2003 osCommerce Released under the GNU General Public License */ if (STORE_SESSIONS == 'mysql') { if (!$SESS_LIFE = get_cfg_var('session.gc_maxlifetime')) { $SESS_LIFE = 1440; } function _sess_open($save_path, $session_name) { return true; } function _sess_close() { return true; } function _sess_read($key) { $value_query = tep_db_query("select value from " . TABLE_SESSIONS . " where sesskey = '" . tep_db_input($key) . "' and expiry > '" . time() . "'"); $value = tep_db_fetch_array($value_query); if (isset($value['value'])) { return $value['value']; } return false; } function _sess_write($key, $val) { global $SESS_LIFE; $expiry = time() + $SESS_LIFE; $value = $val; $check_query = tep_db_query("select count(*) as total from " . TABLE_SESSIONS . " where sesskey = '" . tep_db_input($key) . "'"); $check = tep_db_fetch_array($check_query); if ($check['total'] > 0) { return tep_db_query("update " . TABLE_SESSIONS . " set expiry = '" . tep_db_input($expiry) . "', value = '" . tep_db_input($value) . "' where sesskey = '" . tep_db_input($key) . "'"); } else { return tep_db_query("insert into " . TABLE_SESSIONS . " values ('" . tep_db_input($key) . "', '" . tep_db_input($expiry) . "', '" . tep_db_input($value) . "')"); } } function _sess_destroy($key) { return tep_db_query("delete from " . TABLE_SESSIONS . " where sesskey = '" . tep_db_input($key) . "'"); } function _sess_gc($maxlifetime) { tep_db_query("delete from " . TABLE_SESSIONS . " where expiry < '" . time() . "'"); return true; } session_set_save_handler('_sess_open', '_sess_close', '_sess_read', '_sess_write', '_sess_destroy', '_sess_gc'); } function tep_session_start() { global $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS; $sane_session_id = true; if (isset($HTTP_GET_VARS[tep_session_name()])) { if (preg_match('/^[a-zA-Z0-9]+$/', $HTTP_GET_VARS[tep_session_name()]) == false) { unset($HTTP_GET_VARS[tep_session_name()]); $sane_session_id = false; } } elseif (isset($HTTP_POST_VARS[tep_session_name()])) { if (preg_match('/^[a-zA-Z0-9]+$/', $HTTP_POST_VARS[tep_session_name()]) == false) { unset($HTTP_POST_VARS[tep_session_name()]); $sane_session_id = false; } } elseif (isset($HTTP_COOKIE_VARS[tep_session_name()])) { if (preg_match('/^[a-zA-Z0-9]+$/', $HTTP_COOKIE_VARS[tep_session_name()]) == false) { $session_data = session_get_cookie_params(); setcookie(tep_session_name(), '', time()-42000, $session_data['path'], $session_data['domain']); $sane_session_id = false; } } if ($sane_session_id == false) { tep_redirect(tep_href_link(FILENAME_DEFAULT, '', 'NONSSL', false)); } return session_start(); } function tep_session_register($variable) { global $session_started; if ($session_started == true) { return session_register($variable); } else { return false; } } function tep_session_is_registered($variable) { return session_is_registered($variable); } function tep_session_unregister($variable) { return session_unregister($variable); } function tep_session_id($sessid = '') { if (!empty($sessid)) { return session_id($sessid); } else { return session_id(); } } function tep_session_name($name = '') { if (!empty($name)) { return session_name($name); } else { return session_name(); } } function tep_session_close() { if (PHP_VERSION >= '4.0.4') { return session_write_close(); } elseif (function_exists('session_close')) { return session_close(); } } function tep_session_destroy() { return session_destroy(); } function tep_session_save_path($path = '') { if (!empty($path)) { return session_save_path($path); } else { return session_save_path(); } } function tep_session_recreate() { if (PHP_VERSION >= 4.1) { $session_backup = $_SESSION; unset($_COOKIE[tep_session_name()]); tep_session_destroy(); if (STORE_SESSIONS == 'mysql') { session_set_save_handler('_sess_open', '_sess_close', '_sess_read', '_sess_write', '_sess_destroy', '_sess_gc'); } tep_session_start(); $_SESSION = $session_backup; unset($session_backup); } } ?> Quote Link to comment https://forums.phpfreaks.com/topic/79182-solved-cannot-send-session-cookie-headers-already-sent-by/ Share on other sites More sharing options...
quasiman Posted November 28, 2007 Share Posted November 28, 2007 Is "Product Attributes" some kind of addition to Oscommerce? Have you asked the developer? Quote Link to comment https://forums.phpfreaks.com/topic/79182-solved-cannot-send-session-cookie-headers-already-sent-by/#findComment-400831 Share on other sites More sharing options...
Blackthorneppc Posted November 28, 2007 Author Share Posted November 28, 2007 I have yet to get a response from him. The weird part is that im the only one with this particular problem. Quote Link to comment https://forums.phpfreaks.com/topic/79182-solved-cannot-send-session-cookie-headers-already-sent-by/#findComment-400840 Share on other sites More sharing options...
quasiman Posted November 28, 2007 Share Posted November 28, 2007 Except for this mod, is it a clean OScommerce install? Are there any modifications to the system needed? Have you tried reinstalling the whole thing? Quote Link to comment https://forums.phpfreaks.com/topic/79182-solved-cannot-send-session-cookie-headers-already-sent-by/#findComment-401329 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.