webForumDet fria alternativet

Enbart en produkt i kundkorgen.

PHP

8 svar · 224 visningar · startad av Hesslow

Medlem sedan aug. 200121 inlägg
Frågan#1

Kunderna kan bara lägga till en produkt i kundkorgen, varför? Lägger man till fler, försvinner alla utom den senaste=(

Jag är "bara" designern, kan egentligen ingenting om PHP. Därför behöver jag veta vad som är fel, helst en fullfjädrad lösning.

Vet inte vilken fil som problemet ligger i, gissar att det är denna.

<?
if ($HTTP_COOKIE_VARS["_webhallen"] != '') {
?>

<tr>
<td background="bilder/menybottom.gif"><img src="bilder/prick.gif" height="1" width="1"></td>
</tr>
<tr>
<td height="2" bgcolor="#FFFFFF"><img src="bilder/prick.gif" height="2" width="1"></td>
</tr>
<tr>
<td height="15" background="bilder/menytop.gif"><img src="bilder/varukorg.gif" height="6" width="52" hspace="10"></td>
</tr>
<tr>
<td background="bilder/menymiddle.gif" align="right">

<table cellpadding="0" cellspacing="5" border="0" width="132">
<tr>
<td>
<font face="verdana" size="1">

<?
$_products = explode ("&#0124;", $HTTP_COOKIE_VARS["_webhallen"]);
$_summa = 0;
foreach ($_products as $_product) {
  list ($_id2, $_beg, $_antal) = explode (":", $_product);
  if ($_beg == 1) {
    $_pris = ", beg";
  } elseif ($_beg == 2) {
    $_pris = ", nb";
  } else {
    $_pris = ", price";
  }
  $_SQLresult = mysql_query ("SELECT name, konsol, genre $_pris from spel WHERE id = '$_id2'"); 
  if (mysql_num_rows ($_SQLresult) > 0) {
    $_row = mysql_fetch_row($_SQLresult);
    $_summa = $_summa + $_row[3] * $_antal;
    echo "<a href='page.php?_id=$_id2'>$_row[0]</a> ";
    if ($_antal > 1) {
      echo $_antal . " st<br>";
    } else {
      echo "<br>";
    }
  }  
}

echo "<b>Summa: $_summa kr</b><br><br><a href='change_kundkorg.php?_konsol=$_konsol'>Ändra</a> &#0124; <b><a href='kassa.php?_konsol=$_konsol'>Gå till kassan</a>";
?>

</td>
</tr>
</table>

</td>
</tr>

<?
}
?>

Adress till sidan är www.webhallen.se

Snabbt svar är önskvärt.

------------------
/Martin

Medlem sedan feb. 20001 050 inlägg
#2

Min cookie efter 2 "köp" är:
2565%3A0%3A1
vilket för mig ser ut som endast en produkt. Jag gissar därför att det är fel på den kod som sätter dina cookies.

/nicclas - www.nyhetsrubriker.com

[Redigerat av nicclas den 06 aug 2001]

Medlem sedan aug. 200121 inlägg
#3

Ska se om jag kan hitta den filen...

[Redigerat av Hesslow den 06 aug 2001]

Medlem sedan feb. 20001 050 inlägg
#4

Nej, det tror inte jag ;)

Var läggas produkt-id och beg/inte beg in? Var sätts cookien "_webbhallen"?

[Redigerat av nicclas den 06 aug 2001]

Medlem sedan aug. 200121 inlägg
#5
<?
include ("database.php");

$_SQLresult = mysql_query ("SELECT longname, shortname from konsol WHERE id = '$_konsol'");

if (mysql_num_rows ($_SQLresult) > 0) {
  $_row = mysql_fetch_row($_SQLresult);
  $_konsol_longname = $_row[0];
  $_konsol_shortname = $_row[1];
}

if ($_type == '') {
  $_type = 2;
}

$_SQLresult = mysql_query ("SELECT longname, shortname from type WHERE id = '$_type'");

if (mysql_num_rows ($_SQLresult) > 0) {
  $_row = mysql_fetch_row($_SQLresult);
  $_type_longname = $_row[0];
  $_type_shortname = $_row[1];
}

include ("head.php");
?>

<table cellpadding="0" cellspacing="0" border="0" width="722">
<tr>
<td width="142" valign="top">

<table cellpadding="0" cellspacing="0" border="0" width="142">

<?
include ("meny_produkt.php");
include ("meny_sok.php");
include ("meny_kundkorg.php");
include ("meny_user.php");
?>

</table>

</td>
<td width="30"><img src="bilder/prick.gif" height="1" width="30"></td>
<td width="551" valign="top">

<table cellpadding="0" cellspacing="0" border="0" width="550">
<tr>
<td height="12" colspan="3"><img src="bilder/prick.gif" height="12" width="1"></td>
</tr>
<tr>
<td width="399" valign="top">

<table cellpadding="0" cellspacing="0" border="0" width="399">
<tr>
<td height="1" width="399"><img src='bilder/prick.gif' width='399' height='1'></td>
</tr>
<tr>
<td background="bilder/middletop_s.gif" height="13" width="399"><img src='bilder/prick.gif' height='1' width='10'><img src='bilder/andrakundkorg.gif' height='5' width='53'></td>
</tr>
<tr>
<td background='bilder/middlebg.gif' width='399' align='center'><form method="post" action="change_kundkorg2.php"><table cellpadding='5' cellspacing='0' border='0' width='397' background='bilder/prick.gif'>

<?
if ($_webhallen == '') {
  echo "<tr><td><font face='verdana' size='1'><b>Din kundkorg är tom</td></tr>";
} else {
  $_products = explode ("&#0124;", $_webhallen);
  $_summa = 0;
  $_nr = 0;
  $_nr2 = 0;
  foreach ($_products as $_product) {
    if ($_nr2 == 0) {
      echo "<tr>";
      $_nr2 = 1;
    } else {
      echo "<tr bgcolor='#FFFFFF'>";
      $_nr2 = 0;
    }
    list ($_id2, $_type2, $_antal) = explode (":", $_product);
    if ($_type2 == 1) {
      $_pris = ", beg";
    } elseif ($_type2 == 2){
      $_pris = ", nb";
    } else {
      $_pris = ", price";
    }
    $_SQLresult = mysql_query ("SELECT name, konsol, genre $_pris from spel WHERE id = '$_id2'"); 
    if (mysql_num_rows ($_SQLresult) > 0) {
      $_row = mysql_fetch_row($_SQLresult);
      $_summa = $_summa + $_row[3] * $_antal;
      echo "<td width='50'><font face='verdana' size='1'><input type='textbox' name='_pris[$_nr]' value='$_antal' size='3'></td><td><font face='verdana' size='1'><a href='page.php?_konsol=$_row[1]&_type=$_type2&_genre=$_row[2]&_id=$_id2'>$_row[0]</a>";
      if ($_type2 == 1) {
        echo " - BEG";
      }
      echo "</td><td><font face='verdana' size='1'><b>$_row[3] kr/st</td><td width='50'><font face='verdana' size='1'><a href='change_kundkorg2.php?_id=$_nr'><img src='bilder/tabort.gif' height='16' width='45' border='0'></a></td></tr>";
    }  
    $_nr = $_nr + 1;
  }
}
?>

</table></td></tr>
<?
if ($_webhallen != '') {
?>
<tr><td background='bilder/menybottom.gif' height='1'><img src='bilder/prick.gif' height='1' width='1'></td></tr>
<tr><td height="4"><img src="bilder/prick.gif" height="4" width="1"></td></tr>
<tr><td background='bilder/menybottom.gif' height='1'><img src='bilder/prick.gif' height='1' width='1'></td></tr>
<td background='bilder/middlebg.gif' width='399' align='center'><table cellpadding='5' cellspacing='0' border='0' width='397' background='bilder/prick.gif'><tr><td width="50%"><font face='verdana' size='1'><input type='image' src="bilder/andra2.gif" height="16" width="45" border="0"> <a href='change_kundkorg2.php?_empty=true'><img src="bilder/tom.gif" height="16" width="45" border="0"></a></td><td align="right" width="50%"><font face='verdana' size='1'><b>Summa: <font size='2'><? echo $_summa; ?> kr</td></tr></table></td></tr>
<?
}
?>

<tr><td background='bilder/menybottom.gif' height='1'><img src='bilder/prick.gif' height='1' width='1'></td></tr>
<tr>
<td height="4"><img src="bilder/prick.gif" height="4" width="1"></td>
</tr>
</form>
</table>

</td>
<td width="30"><img src="bilder/prick.gif" height="1" width="30"></td>
<td width="120">

<?
include ("annons.php");
?>

</td>
</tr>
</table>

</td>
</tr>
</table>

</body>
</html>

------------------
/Martin

[Redigerat av Hesslow den 06 aug 2001]

Medlem sedan feb. 20001 050 inlägg
#6

Tror felet ligger i addproduct.php eller forward.php (troligen den första). Hur ser den ut?

Då du lagrar "alla" köp i en cookie, så verkar det ha bivit fel när du skall "appenda" data till den cookie som sattes för första "köpet". Denna kod ligger antagligen i addproduct.php. Kolla efter i den...

Medlem sedan aug. 200121 inlägg
#7
<?
require ("database.php");

$_url = $HTTP_REFERER;

if ($_beg == '') {
  $_beg = 0;
} 

switch ($_beg) {
  case 0:
    $_price = "price";
    break;
  case 1:
    $_price = "beg";
    break;
  case 2:
    $_price = "nb";
    break;
}

$_SQLresult = mysql_query ("SELECT $_price from spel WHERE id = '$_id' LIMIT 1") or die (mysql_error());
if (mysql_num_rows ($_SQLresult)) {
  $_row = mysql_fetch_row ($_SQLresult);
}

if ($_id == '' or $_row[0] == 0) {
  header ("Location: forward.php?_add=1&_url=$_url&". SID);
  exit;
}

if ($webhallen == "") {
  //echo "fel";
  setcookie ("_webhallen", "$_id:$_beg:1", time()+3600);
} else {
  //echo "rätt";
  $_products = explode ("&#0124;", $webhallen);
  $_found = "false";
  foreach ($_products as $_product) {
    $_id2 = explode (":", $_product);
    if ($_id2[0] == $_id and $_beg == $_id2[1]) {
      $_id2[2] = $_id2[2] + 1;
      $_found = "true";
    }
    $_product = implode(":", $_id2);
    if ($_info == '') {
      $_info = $_product;
    } else {
      $_info = "$_info&#0124;$_product";
    }
  }
  if ($_found == "false") {
    $_info = "$_info&#0124;$_id:$_beg:1";  
  }

  setcookie ("_webhallen", $_info, time()+86400);
}

if ($_url == '') {
  $_url = str_replace ("&", "%%", $_url);
} else {
  $_url = str_replace ("&", "%%", $_url);
}

header ("Location: forward.php?_id=$_id&_url=$_url&". SID);
?>

------------------
/Martin

Medlem sedan feb. 20001 050 inlägg
#8

Snabb gissning:
Skall inte $webhallen vara $_webbhallen på raden före // echo "fel";

*gissar*

Medlem sedan aug. 200121 inlägg
#9

TACK, JAG ÄLSKAR DIG!

------------------
/Martin

257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)