ایجاد صفحه نمایش محصولات موجود در سبد خرید – قسمت سوم

php-ecommerce-shopping-cart-part-3

در این قسمت مفاهیم زیر پوشش داده می شوند:

  • تعیین تعداد محصولات توسط کاربر و نحوه ی کار کردن و اثر گذاری آن
  • متغییر سراسری $_SESSION و معرفی تابع session_start().
  • کار با کوئری update
  • تعیین تعداد خریدها

حذف کادر سبد خرید از cart.php

قبل از اینکه شروع به کار کنیم، به نظر من، قرار گرفتن کادر سبد خرید در بالا سمت چپ صفحه ی cart.php یک کار اشتباه است، چرا که در این صفحه (cart.php) همه اطلاعات در مورد محصولات آورده شده است.

بنابراین این کادر را از صفحه cart.php پاک می کنیم. برای انجام اینکار فایل cart.php را باز و کدهای زیر را در آن پیدا کنید.

<!---- Start Online Shopping Cart ----> 
<?php	include('includes/Shopping_Cart.php');	?>
<!---- end Online Shopping Cart ---->

حالا این کدها را حذف کنید. نتایج را در تصاویر زیر مشاهده می نمایید.

صفحه ی cart قبل از حذف کادر سبد خرید

صفحه ی cart بعد از حذف کادر سبد خرید

ورودی دریافت تعداد محصولات توسط مشتری

برای اینکه بتوانیم تعداد موردنیاز محصول را از مشتری دریافت کنیم و آنها را در نتیجه کلی (مبلغ مجموع) تاثیر دهیم. اولین کار این است که تگ ورودی مربوط به تعداد محصولات را به دست آوریم. به همین خاطر فایل cart.php را باز کرده و کدهای زیر را در آن بیابید:

<td style="padding: 15px;">
    <input type='text' size='4' name='qty'>
</td>

سپس آنها را پاک کنید و کدهای زیر را به جای آنها قرار دهید.

			<td style="padding: 15px;">
		
<?php
	//enter qty user in table cart
	
	if(isset($_POST['update_cart']))
	
	{
	
		$str_ip = str_replace(".", "", "$ip");
		
		$qty = $_POST["$str_ip$product_id"];
		
		$update_qty = "update cart set qty='$qty' where p_id='$product_id' ";
		
		$run_qty=@mysqli_query($con,$update_qty);
		
		$_SESSION["$str_ip"]["$product_id"]=$qty;
	
	}	
	
 

		$str_ip = str_replace(".", "", "$ip");

		if(isset($_SESSION["$str_ip"]["$product_id"]))

		{

			echo "<input type='text' size='4' name='$str_ip$product_id' value='". $_SESSION["$str_ip"]["$product_id"]."'>";
			
			$quantity = $_SESSION["$str_ip"]["$product_id"];
			
			$total +=($single_price*$quantity);
			
			
		
		}else
		
		{
		
			echo "<input type='text' size='4' name='$str_ip$product_id' value='$pro_qty'>";
			
			$total+=($single_price*$pro_qty);
			
	
		}

?>  
			</td>

حالا به شرح خط به خط کد بالا می پردازیم. کدهای php را، قبل از تگ input که به تعداد محصولات اشاره می کند، قرار دادیم. چرا که اگر بعد از تگ input کدها را قرار می دادیم، دید درستی از پایگاه داده به ما نمی داد (برای درک بهتر یک بار خودتان آزمایش کنید تا اثر آن را به خوبی متوجه شوید.)

البته برای اینکه به درستی کد های بالا اجرا شوند، باید خط کدی که در تصویر زیر آورده ام را به cart.php اضافه نمایید.

بیرون کشیدن متغییر $pro_qty

دقت کنید که کد را در همان مکانی که در تصویر بالا مشاهده می کنید، قرار دهید. همچنین باید یک اصلاح دیگر نیز انجام دهیم و کدهایی که در تصویر زیر مشخص شده است را حذف نماییم.

حذف کردن 3 خط کد از cart

سپس به کد زیر دقت کنید:

<?php
	//enter qty user in table cart
	
	if(isset($_POST['update_cart']))
	
	{

در اینجا ما یک شرط را قرار داده ایم. این شرط به این شکل است :

"اگر مشتری بر روی دکمه (به روز رسانی خریدهای شما) فشار داده است آنگاه".

بعد کد زیر را داریم.

$str_ip = str_replace(".", "", "$ip");

تابع str_replace در PHP

در اینجا یک متغییر تحت عنوان $str_ip را قرار داده ایم که با استفاده از تابع str_replace، نقطه ها را از آدرس ip حذف می کند. اینکه چرا اینکار را انجام می دهیم، در ادامه توضیح داده شده است. به تصویر زیر دقت کنید.

تابع str_replace در PHP

در واقع ما ip را اصلاح کردیم ، زیرا قصد داریم از آن برای یکتاسازی تعداد خریدهای یک مشتری خاص، استفاده کنیم. به همین منظور کد زیر را آوردیم.

$qty = $_POST["$str_ip$product_id"];

همانطور که در کد بالا مشاهده می نمایید، ما ip کاربر را اصلاح کردیم (نقطه های موجود در آن را حذف کردیم) و آن را با کد محصولی که کاربر خریده است، ترکیب کردیم و سپس به عنوان یک نام منحصر به فرد به تگ input ی که مشتری تعداد دلخواه را درون آن قرار می دهد، ذخیره می کنیم . آنگاه هر وقت آن را نیاز داشتیم کافی است با دستور زیر به آن دسترسی داشته باشیم:

$_POST["$str_ip$product_id"]

به تصویر زیر نگاه کنید:

تعریف کارهایی که در input انجام می شود

ما در هر بار تکرار حلقه، مقدار $_POST["$str_ip$product_id"]  را در متغییر $qty ذخیره می کنیم.

حالا به کد زیر می پردازیم:

$update_qty = "update cart set qty='$qty' where p_id='$product_id' ";

دستور update در PHP

برای ویرایش رکوردهای یک جدول داده از دستور update به صورت زیر استفاده می شود.

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

در دستور بالا table_name نام جدول، column نام ستون یا ستونهایی ست که ویرایش می شوند و condition شرط ویرایش اطلاعات است.

متغییر $update_qty یک دستور SQL است که فیلد qty از جدول cart را بروزرسانی می کند. معنی آن به این شکل است که qty را برای محصولی که شناسه آن $product_id است، بروز رسانی کن".

اگر دقت کنید به قابلیت تابع str_replace پی خواهید برد (str_replace تابعی است که توسط آن علامت های دات یا نقطه را از ip حذف کردیم). اگر نقطه های موجود در ip را حذف نکنیم، دستور SQL بالا اجرا نمی شود.

سپس به کدهای زیر می رسیم:

$run_qty=@mysqli_query($con,$update_qty);		
$_SESSION["$str_ip"]["$product_id"]=$qty;

خط اول در واقع اجرای دستور SQL هست که گفته شد. اما خط دوم بسیار مهم است.

Session چیست؟

به صورت خیلی خیلی خلاصه Session به ما اجازه می دهد که در سمت سرور مقادیری را ذخیره کنیم و از آنها در صفحات مختلف استفاده کنیم. این کار توسط یک آرایه فوق سراسری به نام $_session انجام می شود.

دوستان عزیز در قسمت آینده Session را به طور کامل برای شما شرح می دهم.

بنابراین ما مقداری که مشتری وارد کرده را در آرایه فوق سراسری  $_session ذخیره می کنیم. چرا که بعدا وقتی کاربر به همین صفحه cart.php بازگشت بتواند تعداد خریدهایش را به درستی مشاهده نماید.

برای اینکه session به درستی کار کند، به آدرس C:\wamp\www\ecommerce\includes بروید و فایل Header.php را با Notepad++ باز کنید و کد زیر را در آن بیابید.

<?php
include('functions/functions.php');
?>

و آن را پاک کنید و کد زیر را به جای آن قرار دهید.

<?php

session_start();

include('functions/functions.php');
?>

حال به ادامه شرح کدهای فایل cart.php می پردازیم. در این بین ابتدا کد زیر را مشاهده می کنید:

if(isset($_SESSION["$str_ip"]["$product_id"]))
{

یک شرط که کاملا مشخص می باشد. سپس کدهای زیر درون آن وجود دارند:

echo "<input type='text' size='4' name='$str_ip$product_id' value='". $_SESSION["$str_ip"]["$product_id"]."'>";
$quantity = $_SESSION["$str_ip"]["$product_id"];

من در مورد خط اول کد قبلا به صورت کامل توضیح دادم. اما خط دوم در واقع تعداد جدیدی را که مشتری وارده کرده در متغییر $quantity ذخیره می کند. سپس کد زیر را داریم:

$total +=($single_price*$quantity);

در اینجا ما متغییر $total را در اختیار داریم که قیمت تکی محصول را، در تعداد درخواست شده توسط کاربر ضرب می کند و با مقدار قبلی متغیر $total جمع می کند. سپس می پردازیم به کدهای موجود در بلاک else:

else{
echo "<input type='text' size='4' name='$str_ip$product_id' value='$pro_qty'>";
$total+=($single_price*$pro_qty);
}

این else برای زمانی است که کاربر تعداد جدیدی را در تگ input ورودی، وارد نکرده باشد. در آن صورت تعدادی که در پایگاه داده موجود هست را نمایش می دهد.

خب برای اینکه شما دچار سردگمی نشوید، من فایل کامل cart.php را در زیر برای شما قرار می دهم. شما می توانید به آدرس C:\wamp\www\ecommerce بروید و cart.php با استفاده از Notepad++ باز کرده و محتوییات موجود در آن را پاک کنید و کد های زیر را به جای آنها قرار دهید.

<!-- start of Header -->
	<?php	include('includes/Header.php');	?>
<!-- end of Header -->
	
<!-- start of content -->   
    <div id="templatemo_content">

	<!-- start of left ocntent -->
				<div id="templatemo_content_left">
					<h1>به سایت جهانگیر پچکم دات کام خوش آمدید </h1>
					<p>امروزه با افزایش روز افزون تولیدکنندگان مطرح داخلی و خارجی  انواع لوازم، قدرت انتخاب مشتری به شدت بالا رفته است. اما با توجه به اینکه هیچ فروشگاهی به طور فیزیکی، گنجایش تمامی این محصولات را نداشته و نیز هیچ فروشنده‌ای اطلاعات کاملی از تمامی محصولات موجود در فروشگاه خود ندارد و حتی در صورت داشتن تمامی اطلاعات، توضیح تک تک آنها، نیازمند صرف انرژی و زمان بسیار زیادی خواهد بود، جهانگیر پچکم دات کام بر آن شد تا یک مرجع جامع و کامل تخصصی ارزیابی، مشاوره و فروش محصولات  تولید داخل و خارج کشور را بصورت یک فروشگاه اینترنتی در اختیار عموم مردم ایران قرار دهد.</p>
<div class="cleaner_with_height">&nbsp;</div>

<?php

	//operator button chekout ,continue , update_cart

	<span style="background-color: #ff0000;" data-mce-style="background-color: #ff0000;">//creating or using cookie 
	if(isset($_COOKIE["ipUserEcommerce"]))
		{
			$ip	= $_COOKIE["ipUserEcommerce"];
		}else{
			$ip=getIp();
			setcookie('ipUserEcommerce',$ip,time()+1206900);
		}
</span>		
		
		if(isset($_POST['update_cart']))
		
		{
			if(isset($_POST['remove']))

			{
			
			foreach($_POST['remove'] as $remove_id)
				
				{
				
					$delete_product = "delete from cart where ip_add='$ip' AND p_id='$remove_id'";
				
					$run_delet =@mysqli_query($con,$delete_product);
					
					if ($run_delet){
						
						echo "<script>window.open('cart.php','_self')</script>";							
						
					}
					
				}
			
			}
			
		}


		if(isset($_POST['continue']))
		
		{
		
			echo "<script>window.open('index.php','_self')</script>";
		
		}	

?>

	<form action="cart.php" method="post" enctype="multipart/form-data">
		
		<table align="center" width="100%" bgcolor="#be457c" style="border-collapse: collapse;">
		
			<tr align="center" style="border: 1px solid black;" >
			
				<td colspan="5" style="border: 1px solid black;text-align:center;background:#440522;" >
					<h2>**** محصولاتی که تا اکنون شما خریده اید ****</h2>
				</td>
			
			</tr>

		
			<tr  style="border: 1px solid black;" >
				<th colspan="2" style="border: 1px solid black;padding: 15px;text-align:right;">محصول</th>			
				<th style="border: 1px solid black;padding: 15px;text-align:right;">تعداد</th>			
				<th style="border: 1px solid black;padding: 15px;text-align:right;">قیمت</th>			
				<th style="border: 1px solid black;padding: 15px;text-align:right;">حذف</th>
			</tr>
			
			<?php
				$total	=	0;
				
				global $con;
				<span style="background-color: #ff0000;" data-mce-style="background-color: #ff0000;">
				//creating or using cookie 
	            if(isset($_COOKIE["ipUserEcommerce"]))
					{
						$ip	= $_COOKIE["ipUserEcommerce"];
					}else{
						$ip=getIp();
						setcookie('ipUserEcommerce',$ip,time()+1206900);
					}
		</span>
				
				$sel_price	=	"select * from cart where ip_add='$ip'";
				
				$run_price	=	@mysqli_query($con,"SET NAMES SET utf8");
				
				$run_price	=	@mysqli_query($con,"SET CHARACTER SET utf8");
				
				$run_price	=	@mysqli_query($con,$sel_price);
				
				while($p_price 	=	@mysqli_fetch_array($run_price))
				
				{
				    
					$pro_qty = $p_price['qty'];
				
					$pro_id	=	$p_price['p_id'];
					
					$pro_price	=	"select * from products where product_id='$pro_id'";
					
					$run_pro_price	=	@mysqli_query($con,$pro_price);
					
					while($pp_price	=	@mysqli_fetch_array($run_pro_price))
					
					{
					
						$product_title	=	$pp_price['product_title'];
						
						$product_image	=	$pp_price['product_image'];
						
						$single_price	=	$pp_price['product_price'];
						
						$product_id	=	$pp_price['product_id'];

			       ?>

			<tr align="center" style="border: 1px solid black;" >
				
				<td style="padding: 15px;">
					<?php echo $product_title ?>
				</td>
				
				<td style="padding: 15px;">
					<img src="Admin_area/<?php echo $product_image ?>" width="60" height="45" >
				</td>
				
			<td style="padding: 15px;">
		
<?php
	//enter qty user in table cart
	
	if(isset($_POST['update_cart']))
	
	{
	
		$str_ip = str_replace(".", "", "$ip");
		
		$qty = $_POST["$str_ip$product_id"];
		
		$update_qty = "update cart set qty='$qty' where p_id='$product_id' ";
		
		$run_qty=@mysqli_query($con,$update_qty);
		
		$_SESSION["$str_ip"]["$product_id"]=$qty;
	
	}	


		$str_ip = str_replace(".", "", "$ip");

		if(isset($_SESSION["$str_ip"]["$product_id"]))

		{

			echo "<input type='text' size='4' name='$str_ip$product_id' value='". $_SESSION["$str_ip"]["$product_id"]."'>";
			
			$quantity = $_SESSION["$str_ip"]["$product_id"];
			
			$total +=($single_price*$quantity);
			
			
		
		}else
		{
		
			echo "<input type='text' size='4' name='$str_ip$product_id' value='$pro_qty'>";
			
			$total+=($single_price*$pro_qty);
			
	
		}

?>  
			</td>

				<td style="padding: 15px;">
					<?php  echo $single_price ?>
				</td>
				
				<td style="padding: 15px;">
					<input type="checkbox" name="remove[]" value="<?php echo $product_id; ?>"/>
				</td>
			
			</tr>
			
			<?php
			
					}
			
				}
			
			?>
		<tr align="center" style="border:1px solid black;">

			<td style="padding:15px;">
				<input type="submit" name="continue" value="ادامه خرید"/>
			</td>
			
			<td></td>
			
			<td>
				<button name="checkout">
					تسویه حساب
				</button>
			</td>
			
			<td></td>
			
			<td>
				<input type="submit" name="update_cart" value="به روز رسانی خرید های شما"/>
			</td>
			
		</tr>
			
			
			<tr align="left" style="border:1px solid black;" >
			
				<td colspan="4" style="padding: 15px;">
					<b>جمع کل:</b>
				</td>
				
				<td style="padding: 15px;">
					<b><?php echo $total." تومان "; ?></b>
				</td>
			
			</tr>

		</table>

	</form>		
						
<div class="cleaner_with_height">&nbsp;</div>
				</div>
    <!-- end of left content  -->
        
<!-- start of right content -->
	<?php	include('includes/Right_Sidebar.php');	?>
<!-- end of right content -->
    <div class="cleaner">&nbsp;</div>
</div>
 <!-- end of content -->

<!-- start of footer -->
	<?php include('includes/Footer.php');	?>
<!-- end of footer -->

حالا به صورت تصویر هم به شما نشان می دهم که چه روندی را باید در پیش بگیرید. به تصاویر زیر به دقت نگاه کنید و طبق روند نشان داده شده جلو بروید.

اعمالی که باید به ترتیب بر روی تعداد خریدهای مشتری انجام شود

وقتی بر روی دکمه "بروزرسانی خریدهای شما " کلیک می کنید، تصویر زیر پدید می آید.

صفحه cart بعد از اعمال تغییر در تعداد محصولات خریداری شده

خب دوستان گلم به انتهای این قسمت از آموزش ساخت فروشگاه اینترنتی با php رسیدیم. میدونم که خیلی اذیت شدید ولی اگر چند بار مطالب بالا را بخوانید و کد زنی کنید از تلخی به شیرینی می رسید؛ دقیقا مثل "گر صبر کنی ز غوره حلوا سازی" اینجا صدق می کنه؛

ضمنا نگران نباشید هر کجاش رو متوجه نشدید، من در کنار شما پاسخگوی سوالات شما در قسمت نظردهی هستم.

اگر در مورد session  هم دچار مشکل بودید، همانطور که در حین آموزش عرض کردم، جلسه آینده منحصرا در مورد session برای شما صحبت می کنم.

تمام فصل‌های سری ترتیبی که روکسو برای مطالعه‌ی دروس سری فروشگاه اینترنتی با PHP توصیه می‌کند:
نویسنده شوید
دیدگاه‌های شما (10 دیدگاه)

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

حسین
24 اسفند 1399
سلام ممکنه به این سوالم پاسخ بدید؟ اگر اتریبیوت name رو در input type text برابر با product_id یا همون آیدی محصول،قرار بدیم،برنامه از لحاظ منطقی دچار ایراد میشه؟ چون ما فقط از هر product یک سطر ایجاد میکنیم تو جدول و خب موقع کوئری فرستادن به دیتابیس،آی پی رو جداگونه بفرستیم،یعنی کوئری یکم تغییر کنه تشکر ممنون میشم اگر پاسخ بدید

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

حسین
24 اسفند 1399
$_SESSION["$str_ip"]["$product_id"] قبل از چک کردن update_cart مقدارشو برابر null گذاشتم اینطوری کدم کار کرد

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

حسین
23 اسفند 1399
سلام در این دستور $_POST["$str_ip$product_id"] و همچنین در اتریبیوت name در تگ input ما نیاز نداریم که دوتا متغیر $str و $product_id رو با هم کانکت کنیم؟ یعنی یه دات بینشون بذاریم؟ اگر نه،چرا؟ تشکر

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

Malihe
25 بهمن 1399
سلام .یه سوال از خدمتتون داشتم .من وقتی مثلا دکمه ی هم اکنون می خرید 3 تا محصول رو می زنم وبعد دکمه تایید خرید از سبد خرید رو میزنم در لیست محصولاتم در صفحه cart .php فقط آخرین محصول رو میاره ودیگه هیچ مشکلی هم ظاهرا نداره حتی عکس و همه مشخصاتش رو هم تو جدول میاره .برای اینکه 2 تا محصول دیگه هم تو لیست بیاد باید چه کار کرد؟

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

حسین
23 اسفند 1399
سلام شاید توی صفحه ی cart.php شما حلقه foreach رو به درستی تنظیم نکردید ببینید کجا باز شده و کجا بسته میشود پایگاه داده را هم چک کنید

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

امیر نوری
22 دی 1399
دیدگاه شما در انتظار بررسی می‌باشد سلام استاد خسته نباشید واقعا زحمت میکشید برای تهیه این محتواهای مفید و جامع بنده روزی نیست که به سایت تون مراجعه نداشته باشم استاد یک سوال داشت درباره سیشنها این تکه کد رو متوجه نمیشم $_SESSION["$str_ip"]["$product_id"]=$qty; نمیدونم این تعریف کردنه صدا زدنه بی زحمت یه توضیحی بدید

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

امیر نوری
22 دی 1399
سلام استاد خسته نباشید واقعا زحمت میکشید برای تهیه این محتواهای مفید و جامع بنده روزی نیست که به سایت تون مراجعه نداشته باشم استاد یک سوال داشت درباره سیشنها این تکه کد رو متوجه نمیشم http://localhost/testondbeco/test3.php نمیدونم این تعریف کردنه صدا زدنه بی زحمت یه توضیحی بدید

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

داود
28 مرداد 1398
سلام مهندس . من برام یادگیری php خیلی سخته . شما چه روشی رو برا یادگیری توصیه میفرمایید

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

جهانگیر پچکم
30 مرداد 1398
سلام به شما آقا داود گل به نظر من شما باید برای یادگیری php یا هر زبان دلخواه دیگر، صبور باشید. یادگرفتن زبان برنامه نویسی و فهم نکات ریز و درشت اون باید به تدریج با کدنویسی صورت بگیره. من برای اینکه بهتر شما رو هدایت کنم، سه مرحله برای یادگیری رو خدمت شما بیان می کنم انشاالله بتوانید با اتکا به آنها به نتیجه مطلوب برسید. 1- مطالعه یک زبان برنامه نویسی از طریق یک کتاب آموزشی یا ویدیوی آموزشی ( توی این مرحله شما با انواع ظرفیت های یک زبان باید به طور کامل آشنا بشید منظور انواع متغییر، انواع حلقه، انواع دستورات شرطی و توابع ، کلاس ها و شی گرایی ، کار با پایگاه داده ها و خلاصه هر چیزی که به عنوان ظرفیت زبان مورد نظر مطرح هست رو یاد بگیرید). دقت کنید هرچه در این مرحله پخته تر عمل کنید و صبور باشید مراحل بعدی رو بهتر درک خواهید کرد. این مرحله تلخ هست (سخت و طاقت فرسا هست) ولی مثل دارو برای درمان عمل می کنه. این مرحله فوق العاده مهم هست. 2- مرحله دوم این هست که یک پروژه عملی مثل همین پروژه ایی که دارید مطالعه می کنید یا هر پروژه دیگر (فروشگاه اینترنتی و ....) رو بررسی و عملا کد نویسی کنید تا اون مطالبی رو که مرحله قبل مطالعه کردید عملا به کار بگیرید، این مرحله فوق العاده شیرین هست. 3- مرحله آخر هم این هست که ایده ایی که توی ذهن داری رو خودت عملا کد نویسی کنید. با آرزوی موفقیت برای شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

علی پناهی
01 اردیبهشت 1398
سلام خسته نباشید من هنگام اجرای دستورات این صفحه با این پیغام مواجه میشم: Notice: Undefined variable: product_id چرا این متغیر رو نمیشناسه؟

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

جهانگیر پچکم
05 اردیبهشت 1398
سلام آقای پناهی عزیز لطفا به 2 سوال من رو جواب بدید. اولین سوال این هست که آیا شما کدها رو تغییری داده اید یا خیر؟ و دومین سوال من این است که در کدام خط این پیام داده می شود؟ با تشکر ، جهانگیر پچکم

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

سارا
20 دی 1397
ممنون از آموزش بسیار پر بارتون.من یه مشکل داشتم.ip رو توی دیتا بیس به این صورت ذخیره میکنه ::1

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

جهانگیر پچکم
25 دی 1397
سلام، لطف دارید در مورد مشکل شما باید بگم چون توی حالت localhost قرار دارید به اینصورت IP نمایش داده میشه ولی توی فضای اینترنت به صورت یک IP با شماره های متفاوت به نمایش در میاد

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

Majid
22 آبان 1397
سلام استاد ضمن سپاس از زحماتتون و در اختیار گذاشتن مطالب مفیدتون در بعضی صفحات که تگ استفاده شده از این تگ ایراد میگیره که با حذف اون درست میشه. شاید بعضی دوستان متوجه نشن که ایراد از کدوم کلمه هست و سر در گم بشن. اگه صلاح دیدین بررسی کنید شاید سیستم من ایراد داره. با سپاس فراوان

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

جهانگیر پچکم
23 آبان 1397
سلام Majid جان عزیز باید خدمت شما عرض کنم که من کدهایی رو که برای شما عزیزان قرار می دم، خط به خط چک می کنم؛ تا خدایی نکرده مشکلی نداشته باشند و شما رو سردرگم کنند (تک تک شما ها برام مهم هستید و دوست دارم به نحو احسن مطالبی رو که ارائه می دم رو درک کنید.) و خود من به شخصه تا حالا اصلا توی کدهام ایرادی مشاهده نکردم، اما حالا شما می فرمایید که در تگ ایرادی مشاهده کردید، دقیقا بفرمایید کدام فایل و در کدام خط؟ موفق باشید

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

رسول
03 شهریور 1399
من تا اینجا همه آموزش ها رو دنبال کردم و خیلی عالی هم بود فقط یک نکته که اگر بشه ب حلش کرد خیلی عالی میشه وقتی بر روی یک محصول کلیک می کنیم به سبد خرید اضافه میشه و دوباره بر روی آن کلیک کنیم دیگه به تعداد ان محصول در سبد خرید اضافه نمیشه و حتما باید به cat.php بریم و از انجا این کار رو انجام بدیم چه طور میشه این کار رو انجام داد ( در تمام صفحات index و.... )تا با هر بار کلیک کردن بر روی گزینه " هم اکنون می خرید" اگر قبلا در سبد خرید بود بر تعداد آن نیز اضافه بشه و اگر نبود اضافه بشه و حتما به صفحه cat.php نرویم

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.