tubadc 0 Denunciar post Postado Novembro 9, 2006 Olá galera... estou usando um script que a algum tempo vinha usando para fazer um carrinho de compras no entanto agora preciso de acrescentar mais dois campos na Sessão e não estou conseguindo acertar isso. Antes tinha a sessão apenas com a id do produto e a quantidade dele... funcionava tranquilo... agora alem disso preciso de por na sessao a cor e o tam ... as variáveis passam tranquilo porem não estou conseguindo: - add item na mesma sessão, e caso o item já tenha sido selecionado ele acrescenta 1 ao item; - add item com mesmo id porem com cores ou tamanhos diferente em outra array da sessão; Onde estou errando ????? phpCart_manage.php <?ob_start();?><?$id_pro=$_REQUEST['act'];$cor_pro=$_REQUEST['cor_pro'];$tam=$_REQUEST['tam'];$act=$_REQUEST['act'];require "functions_cart.php";?><?// UPDATE BASKET QUANTITYif (isset($_REQUEST["UpdateChg"])) { session_start(); $i = 0; $size = count($_REQUEST["eid"]); for ($i = 0; $i <= $size-1; $i++) { $badsymbols = array(" ","-","+","*","/","."); $_REQUEST["newquan"][$i] = str_replace($badsymbols,"", $_REQUEST["newquan"][$i]); if (is_numeric($_REQUEST["newquan"][$i])) { if ($_REQUEST["newquan"][$i] == 0) { unset($_SESSION["cart"][$_REQUEST["eid"][$i]]); } if (array_key_exists($_REQUEST["eid"][$i], $_SESSION["cart"])) { add_item_to_cart($_REQUEST["eid"][$i], $_REQUEST["newquan"][$i],$_SESSION["cart"][$cor],$_SESSION["cart"][$tam]); } } } header ("location:".$_SERVER['HTTP_REFERER']); } if (isset($_REQUEST["act"])) { if ($_REQUEST["act"] == $act) { session_start(); if (!isset($_SESSION["cart"])) { add_item_to_cart($_REQUEST["id_pro"],1,$_REQUEST["cor_pro"],$_REQUEST["tam"]); } else if (array_key_exists($_GET["id_pro"],$_SESSION["cart"])) { add_item_to_cart($_GET["id_pro"],++$_SESSION["cart"][$_GET["id_pro"]][1],$_REQUEST["cor_pro"],$_REQUEST["tam"]); } else { add_item_to_cart($_REQUEST["id_pro"],1, $_REQUEST["cor_pro"],$_REQUEST["tam"]); } } if ($_REQUEST["act"] == "del") { del_item($_REQUEST["id_pro"]); } } ?><?ob_end_flush();?> functions_cart.php <?$mysql_server = "localhost";$mysql_username = "*";$mysql_pwd = "*";$mysql_dbname = "*";$mysql_tablename = "produtos";$cur_symbol = "R$ ";function db_connect () { global $mysql_server, $mysql_username, $mysql_pwd, $mysql_dbname; $db = mysql_connect($mysql_server, $mysql_username, $mysql_pwd, false, 128) or die("Problem connecting"); mysql_select_db($mysql_dbname,$db) or die("Problem selecting database"); } function setstp () { settype($str,"string"); for ($i=0;$i<20;$i++) { $str .= chr (rand (1, 255)); } $sha = sha1 ($str); setcookie ("SESSSEC", $sha, NULL); $_SESSION["CookieChk"]['SESSSEC'] = $sha; }function add_item_to_cart($id_pro, $quantity, $cor_pro, $tam) { setstp(); db_connect(); $passou = "$id_pro , $cor_pro"; $sel_products = mysql_query("SELECT produtos.*, atributos_produto.* FROM produtos, atributos_produto WHERE produtos.id_pro='$id_pro' and atributos_produto.id_pro='$id_pro' and atributos_produto.cor_pro = '$cor_pro'")or die ("$passou ".mysql_error()); $item = mysql_fetch_array($sel_products); $num_rows = mysql_num_rows($sel_products); $cor_pro=$item["cor_pro"]; $id_pro = $item["id_pro"]; if ($num_rows >= 1) { $_SESSION["cart"][$id_pro][0]=$id_pro; $_SESSION["cart"][$id_pro][1]=$quantity; $_SESSION["cart"][$id_pro][2]=$cor_pro; $_SESSION["cart"][$id_pro][3]=$tam; header ("location:".$_SERVER['HTTP_REFERER']); } }function validate() { if (!isset($_COOKIE['SESSSEC'])) { $valid = FALSE; } elseif (!isset($_SESSION["CookieChk"]['SESSSEC'])) { $valid = FALSE; } elseif ($_COOKIE["SESSSEC"] == $_SESSION["CookieChk"]['SESSSEC']) { $valid = TRUE; setstp(); } else { $valid = FALSE; } return $valid; }function del_item($id_pro) { db_connect(); global $mysql_tablename; $sel_products = mysql_query("SELECT * FROM $mysql_tablename WHERE id_pro=".$id_pro.""); $item = mysql_fetch_array($sel_products); session_start(); session_regenerate_id(); unset($_SESSION["cart"][$id_pro]); header ("location:".$_SERVER['HTTP_REFERER']); } ?> mostra_carrinho.php <form name="update" method="post" action="phpCart_manage.php"> <table width="100%" border="0" cellspacing="0" cellpadding="5"> <tr bgcolor="#EEEEEE"> <td width="9%" class="bottomline"> </td> <td width="13%" class="bottomline"><strong class="font6">Quantidade</strong></td> <td width="42%" class="bottomline"><strong class="font6">Produto</strong></td> <td width="21%" class="bottomline"><strong class="font6">Preço</strong></td> <td width="15%" class="bottomline"><strong class="font5"> Total </strong></td> </tr><?include "functions_cart.php";$totalvalue = 0;session_start();if (!isset($_SESSION["cart"])) { $_SESSION["cart"] = NULL;}if (validate() == TRUE && $_SESSION["cart"] != NULL) { foreach ($_SESSION["cart"] as $key => $session_data) { list($ses_id, $ses_quan, $ses_cor, $ses_tam) = $session_data; db_connect(); $sel_products = mysql_query("SELECT produtos.*, atributos_produto.* FROM produtos, atributos_produto WHERE produtos.id_pro='$ses_id' and atributos_produto.id_pro='$ses_id' and atributos_produto.cor_pro ='$ses_cor'"); $item = mysql_fetch_array($sel_products); $totalvalue = $totalvalue + ($item["pre_liq"]*$ses_quan); $subtotal = ($item["pre_liq"]*$ses_quan); ?> <tr> <td class="border_bt"><a href="<? echo "phpCart_manage.php?act=del&id_pro=".$ses_id; ?>"><img src="imgs/icon_del.gif" width="13" height="13" border="0"></a></td> <td class="border_bt" align="center"><input name="newquan[]" type="text" id="newquan[]3" value="<? echo $ses_quan; ?>" size="3" maxlength="4" class='campoForm' onfocus="this.className='campoFormOver'" onblur="this.className='campoForm'"/> <input name="eid[]" type="hidden" id="eid[]" value="<? echo $ses_id; ?>"></td> <td class="border_bt"><span class="font2"><? echo $item["nom_pro"]." ".$ses_cor." ".$ses_tam; ?></span></td> <td class="border_bt"><span class="font2"><? echo $cur_symbol."".number_format($item["pre_liq"], 2, '.', ''); ?></span></td> <td class="border_bt"><span class="font2"><? echo $cur_symbol."".number_format($subtotal, 2, '.', ''); ?></span></td> </tr> <? } } elseif ($_SESSION["cart"] == NULL) { echo "<td colspan=\"5\"><center><p>Seu carrinho está vazio.</p></center></td>"; } else { echo "<td colspan=\"5\"><center><p>Estamos em manutenção.</p></center></td>";} ?> <tr><td> </td> <td align="center"><? if ($_SESSION["cart"] != NULL) { echo "<input name=\"UpdateChg\" type=\"submit\" id=\"UpdateChg\" value=\"Atualizar\" class='campoForm4'>"; } ?></td> <td></td> <td><strong class="font6">Total<span class="font4"> (frete não incluso) </span></strong></td> <td><span class="font5"><? echo $cur_symbol."".number_format($totalvalue, 2, '.', ''); ?></span></td></tr></table> </form> Obrigado a todos pela força mais uma vez.... Compartilhar este post Link para o post Compartilhar em outros sites
tubadc 0 Denunciar post Postado Novembro 9, 2006 plzzz..... alguem me ajuda....tkx Compartilhar este post Link para o post Compartilhar em outros sites
tubadc 0 Denunciar post Postado Novembro 10, 2006 plzzz..... alguem me ajuda....tkxGalera dei uma diminuida no código..... plz.... só me digam onde estou errando pois estou testando de tudo quanto é jeito e não consigo add mesmo itens com mesmo atributos... ou add itens com mesmo id porem atributos diferentes em outro array....plz... helpe..... Compartilhar este post Link para o post Compartilhar em outros sites
tubadc 0 Denunciar post Postado Novembro 10, 2006 Obrigado pela ajuda Thiago, no entanto jah tinha tentado isso e não cosegui resultado tb.... acontece o seguinte: id | produto | cor | tamanhoQuando add o produto 1| Vestido | vermelho | t36pp na sessao e tento adcionar outro ele não soma... e quanto seleciono o mesmo produto soh que com a cor ou tamanho diferente ele não adciona outro e sim troca o produto que possui a mesma id.....Não sei oq ocorre to ficando doido já não sei mais oq testar.... então qualquer ajuda é sempre muito bem vinda....Obrigado mais uma x Compartilhar este post Link para o post Compartilhar em outros sites