الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تطبيق shopping cart

بدأه naz25 في 29 نوفمبر 2011 · 2 رد · 5,063 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عملت تطبيق لدرس shopping cart بس يطلع error غيرت اشياء وبعض الاخطاء راحت فضل اشياء بسيطه

products.php

<!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" />
<meta name="description" content="PHP Shopping Cart Using Sessions" /> 
<meta name="keywords" content="shopping cart tutorial, shopping cart, php, sessions" />
<link rel="stylesheet" media="all" href="/style/style.css" type="text/css" />
<title>Products</title>

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

</head>

<body>


<table border="1">

	<?php

		$sql = "SELECT pid, pname, pimage, pdescription, pprice FROM products;";

		$result = mysql_query($sql);

		while(list($pid, $pname, $pimage, $pdescription, $pprice) = mysql_fetch_row($result)) {

			echo "<tr>";

				echo "<td>$pname</td>";
			    echo "<td>$pimage</td>";
				echo "<td>$pdescription</td>";
				echo "<td>$pprice</td>";
				echo "<td><a href=\"cart.php?action=add&id=$pid\">Add To Cart</a></td>";

			echo "</tr>";
		}

	?>
</table>


<a href="cart.php">View Cart</a>

</body>
</html>

ودي صفحه cart.php

?php session_start(); ?>
<!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 name="description" content="PHP Shopping Cart Using Sessions" /> 
<meta name="keywords" content="shopping cart tutorial, shopping cart, php, sessions" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" media="all" href="/style/style.css" type="text/css" />
<title>Cart</title>


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


</head>
<body>


<?php

	$id = $_GET['id'];	                              //the product id from the URL 
	$action = $_GET['action'];                           //the action from the URL 

	//if there is an product_id and that product_id doesn't exist display an error message
	if($id && !productExists($id)) {
		die("Error. Product Doesn't Exist");
	}

	switch($action) {	//decide what to do	

		case "add":
			$_SESSION['cart'][$id]++; //add one to the quantity of the product with id $product_id 
		break;

		case "remove":
			$_SESSION['cart'][$id]--; //remove one from the quantity of the product with id $product_id 
			if($_SESSION['cart'][$id] == 0) unset($_SESSION['cart'][$id]); //if the quantity is zero, remove it completely (using the 'unset' function) - otherwise is will show zero, then -1, -2 etc when the user keeps removing items. 
		break;

		case "empty":
			unset($_SESSION['cart']); //unset the whole cart, i.e. empty the cart. 
		break;

	}

?>


<?php	

	if($_SESSION['cart']) {	//if the cart isn't empty
		//show the cart

		echo "<table border=\"1\" padding=\"3\" width=\"40%\">";	//format the cart using a HTML table

			//iterate through the cart, the $product_id is the key and $quantity is the value
			foreach($_SESSION['cart'] as $pid => $quantity) {	

				//get the name, description and price from the database - this will depend on your database implementation.
				//use sprintf to make sure that $product_id is inserted into the query as a number - to prevent SQL injection
				$sql = sprintf("SELECT pname, pimage, pdescription, pprice FROM products WHERE pid = %d;",
								$pid); 

				$result = mysql_query($sql);

				//Only display the row if there is a product (though there should always be as we have already checked)
				if(mysql_num_rows($result) > 0) {

					list($pname, $pimage, $pdescription, $pprice) = mysql_fetch_row($result);

					$line_cost = $pprice * $quantity;		//work out the line cost
					$total = $total + $line_cost;			//add to the total cost

					echo "<tr>";
						//show this information in table cells
						echo "<td align=\"center\">$pname</td>";
						//along with a 'remove' link next to the quantity - which links to this page, but with an action of remove, and the id of the current product
						echo "<td align=\"center\">$quantity <a href=\"$_SERVER[PHP_SELF]?action=remove&id=$pid\">X</a></td>";
						echo "<td align=\"center\">$line_cost</td>";

					echo "</tr>";

				}

			}

			//show the total
			echo "<tr>";
				echo "<td colspan=\"2\" align=\"right\">Total</td>";
				echo "<td align=\"right\">$total</td>";
			echo "</tr>";

			//show the empty cart link - which links to this page, but with an action of empty. A simple bit of javascript in the onlick event of the link asks the user for confirmation
			echo "<tr>";
				echo "<td colspan=\"3\" align=\"right\"><a href=\"$_SERVER[PHP_SELF]?action=empty\" onclick=\"return confirm('Are you sure?');\">Empty Cart</a></td>";
			echo "</tr>";		
		echo "</table>";



	}else{
		//otherwise tell the user they have no items in their cart
		echo "You have no items in your shopping cart.";

	}

	//function to check if a product exists
	function productExists($pid) {
			//use sprintf to make sure that $product_id is inserted into the query as a number - to prevent SQL injection
			$sql = sprintf("SELECT * FROM products WHERE pid = %d;",
							$pid); 

			return mysql_num_rows(mysql_query($sql)) > 0;
	}
?>

<a href="shopingcart.php">Continue Shopping</a>


<?php

?>

الخطئين الاولين عند اضغط Add to cart يظهر كذا

( ! ) Notice: Undefined index: cart in C:\wamp\www\all_php\cart.php on line 34

Call Stack

# Time Memory Function Location

1 0.0036 389864 {main}( ) ..\cart.php:0

( ! ) Notice: Undefined index: 1 in C:\wamp\www\all_php\cart.php on line 34

Call Stack

# Time Memory Function Location

w9u0y9.png

ومن الملاحظ المجموع غلط لان في السله فقط one product

والخط الثاني عند تفريغ السله

( ! ) Notice: Undefined index: id in C:\wamp\www\all_php\cart.php on line 23

Call Stack

# Time Memory Function Location

1 0.0019 389576 {main}( ) ..\cart.php:0

( ! ) Notice: Undefined index: cart in C:\wamp\www\all_php\cart.php on line 53

Call Stack

# Time Memory Function Location

1 0.0019 389576 {main}( ) ..\cart.php:0

You have no items in your shopping cart. Continue Shopping

#2

جرب إضافة التالي بعد استرجاع ال id

if (!isset($_SESSION['cart'][$id])) { $_SESSION['cart'][$id] = 0; }

تم تعديل هذه المشاركة بواسطة herch في 29 نوفمبر 2011 في 20:24

1
#3

شكرررررررررررررا اخي تم الجمع بنجاح

مواضيع مشابهة