با سلام به تمام علاقه مندان عزیز، ما در قسمت قبل مقدمات لازم را برای پنل مدیریت سایت ایجاد کردیم. اگر به تصویر زیر نگاه کنید، متوجه می شوید که ما در سایدبار سمت راست، گزینه های متعددی داریم که هر کدام یک امکان مجزا در اختیار مدیریت سایت قرار می دهند.
این امکانات باعث می شوند که مدیر سایت بدون کدنویسی و درگیر شدن با پایگاه داده، اطلاعات مورد نیازش را به دست آورد و آنها را در صورت لزوم، تغییر دهد.
امروز قرار است به سراغ دو گزینه (یا option) از سایدبار سمت راست، به نام "مشاهده سایت" و "وارد کردن محصول جدید" برویم.
برای اینکار ابتدا باید این را بدانید که منظور از این گزینه چه می باشد. انتظاری که یک مدیر سایت از این گزینه دارد این است که زمانی که بر روی آن ، کلیک می کند، باید صفحه ی اصلی سایت در پنجره جدیدی از مرورگر برایش باز شود.
خب برای انجام اینکار باید در ابتدا به آدرس C:\wamp\www\ecommerce\admin_area مراجعه نمایید و فایل Right_Sidebar.php را با استفاده از Notepad++ باز کنید.
به تصویر زیر نگاه کنید.
بعد از باز کردن فایل Right_Sidebar.php، حالا کد زیر را در آن پیدا کنید.
<li><a href="../index.php" target="_blank"><h4>مشاهده سایت</h4></a></li>
با کلیک کردن بر روی گزینه ی" مشاهده سایت" در واقع یک تگ a را فعال خواهیم کرد که، دارای ویژگی href برابر با "../index.php" است که باعث می شود، مدیر سایت به سمت صفحه اصلی سایت هدایت شود.
البته برای اینکه صفحه ی اصلی در یک تب جدید ایجاد شود، ما یک ویژگی تحت عنوان target="_blank" را نیز به تگ a اضافه کرده ایم.
به تصاویر زیر نگاه کنید.
هنگامی که مدیر سایت بر روی گزینه ی "مشاهده سایت" کلیک می کند، در یک تب جدید تصویر زیر به نمایش در می آید (این تصویر، همان صفحه ی اصلی سایت می باشد.)
حالا نوبت به تعیین نقش برای گزینه ی "وارد کردن محصول جدید" رسیده است.
دقت نمایید در اینجا نیز ما با بهره گیری از متغییر سراسری $_GET، مسیر برنامه را تعیین کرده و آن را به سمت مورد نظر خودمان، هدایت می کنیم. به همین منظور، در ابتدا توجه شما را به فایل Right_Sidebar.php، جلب می کنم.
<li><a href="index.php?insert_pro"><h4>وارد کردن محصول جدید</h4></a></li>
در کد بالا مشاهده می نمایید که هنگام لینک دادن، ما به گونه ایی لینک مورد نظر خودمان را داده ایم (href="index.php?insert_pro") که در ادامه بتوانیم با استفاده از متغییر سراسری $_GET[' insert_pro'] از آن برای جهت دادن به برنامه استفاده کنیم.
حالا که این موضوع را به خوبی درک کردید به آدرس C:\wamp\www\ecommerce\admin_area بروید و فایل index.php را با استفاده از Notepad++ باز کنید و کدهای زیر را در آن پیدا کنید.
<!-- start of ocntent left --> <div id="templatemo_content_left"> <div class="cleaner_with_height"> </div> </div> <!-- end of ocntent left -->
سپس آنها را حذف کنید و کدهای زیر را به جای آنها قرار دهید.
<!-- start of ocntent left --> <div id="templatemo_content_left"> <?php if(isset($_GET['insert_pro'])) { include('insert_product.php'); } ?> <div class="cleaner_with_height"> </div> </div> <!-- end of ocntent left -->
و این تغییرات را save کنید.
ما با استفاده از دستور شرطی if(isset($_GET['insert_pro'])) از متغییر سراسری $_GET['insert_pro'] استفاده کردیم و گفته ایم که اگر در url سایت پارامتر insert_pro قرار داشت برای ما فایل insert_product.php را include کن.
دقت نمایید که ما فایل insert_product.phpرا در همان جلسات ابتدایی و در قسمت " طراحی فرم افزودن محصولات به فروشگاه اینترنتی با PHP " با هم ساختیم.
حالا تنها کاری که باید انجام دهیم این است که، به صفحه اصلی پنل مدیریت سایت باز گردیم و این بار بر روی گزینه "وارد کردن محصول جدید" از سایدبار سمت راست، کلیک کنیم. به تصویر زیر نگاه کنید.
با انجام این کار تصویر زیر برای ما به نمایش در می آید.
قبل از گرفتن تست عملی، یک کار دیگر نیز باقی مانده است و آن تغییر در کدهای فایل insert_product.php می باشد. به همین خاطر، باید در فایل insert_product.php و در آدرس برگشت تغییر ایجاد کنیم؛ لذا باید ابتدا به آدرس C:\wamp\www\ecommerce\admin_area برگردید و فایل insert_product.php را با استفاده از Notepad++ باز کنید و کدهای موجود در آن را حذف کنید و به جای آنها، کدهای زیر را در آن قرار دهید.
<form action="" method="post" enctype="multipart/form-data"> <table width="650" align="center"> <caption ><b>اطلاعات مربوط به محصول را در این جدول اضافه کنید</b></caption > <tr> <th ><b>ویژگی های محصول</b></th > <th ><b>مقدار ورودی برای هر کدام از ویژگی ها</b></th > </tr> <tr> <td><b>نام محصول</b></td > <td><input type="text" name="product_title" size="70" required></td > </tr> <tr> <td><b>دسته بندی محصول</b></td> <td> <select name="product_cat" required> <option>دسته ی مورد نظر خود را انتخاب کنید</option> <?php $get_cat="select * from categories"; $run_cat=@mysqli_query($con,"SET NAME utf8"); $run_cat=@mysqli_query($con,"SET CHARACTER SET utf8"); $run_cat=mysqli_query($con,$get_cat); while($row_cat=mysqli_fetch_array($run_cat)) { $cat_id=$row_cat['cat_id']; $cat_title=$row_cat['cat_title']; echo"<option value='$cat_id'>$cat_title</option>"; } ?> </select> </td > </tr> <tr> <td><b>برند محصول</b></td > <td> <select name="product_brand" required> <option>برند مورد نظر خود را انتخاب کنید</option> <?php $get_brand="select * from brands"; $run_brand = @mysqli_query($con,"SET NAMES utf8"); $run_brand = @mysqli_query($con,"SET CHARACTER SET utf8"); $run_brand=mysqli_query($con,$get_brand); while($row_brand=mysqli_fetch_array($run_brand)) { $brand_id=$row_brand['brand_id']; $brand_title=$row_brand['brand_title']; echo"<option value='$brand_id'>$brand_title</option>"; } ?> </select> </td> </tr> <tr> <td><b>قیمت محصول</b></td > <td><input type="text" name="product_price" required></td> </tr> <tr> <td><b>توصیف محصول </b></td> <td><textarea name="product_desc" ></textarea></td> </tr> <tr> <td><b>عکس محصول</b></td > <td><input type="file" name="product_image" required></td > </tr> <tr> <td><b>کلمات کلیدی</b> </td > <td><input type="text" name="product_keywords" size="70" required></td > </tr> <tr> <td align="center"><input type="submit" name="submit" value="بارگذاری"> </td> <td align="center"><input type="reset" name="reset" value="ریست کردن"></td> </tr> </table> </form> <?php // define variables and set to empty values if(isset($_POST['submit'])) { $product_title = $_POST["product_title"]; $product_cat = $_POST["product_cat"]; $product_brand = $_POST["product_brand"]; $product_price = $_POST["product_price"]; $product_desc = $_POST["product_desc"]; $product_keywords = $_POST["product_keywords"]; //getting the image form the image fields $product_image_name =$_FILES['product_image']['name']; $product_image_tmp =$_FILES['product_image']['tmp_name']; $address_images='product_images/'.$product_image_name; move_uploaded_file($product_image_tmp,$address_images); $insert_product = "INSERT INTO products (product_title ,product_cat , product_brand , product_price , product_desc , product_image , product_keywords) VALUES (N'$product_title' , $product_cat , $product_brand , $product_price , N'$product_desc' , N'$address_images' , N'$product_keywords' )"; $insert_pro=mysqli_query($con,$insert_product); //display message to user if($insert_pro) { echo"<script>alert('تبریک...داده های مربوط به محصول شما به درستی وارد شد.')</script>"; echo"<script>window.open('index.php','_self')</script>"; } } ?>
در واقع ما آدرس برگشت را تغییر داده ایم. تصویر زیر این موضوع را به درستی نشان می دهد.
حالا وقت آن رسیده است که یک بار به صورت عملی، صفحه "وارد کردن محصول جدید" را تست کنیم. به همین خاطر، ابتدا لازم است که به پایگاه داده ecommerce برویم و رکوردهای موجود در جدول داده ای products را، با دقت نگاه کنید.
به عنوان مثال من در جدول داده ایی products، رکورد های (دقت کنید که هر رکورد نشان دهنده یک محصول می باشد) زیر را دارم.
حالا یک محصول جدید را مانند تصویر زیر، این بار از طریق گزینه "وارد کردن محصول جدید"، اضافه نماییم.
همانطور که در تصویر بالا مشاهده می کنید، بعد از اینکه اطلاعات محصول را به درستی وارد کردیم؛ باید بر روی دکمه بارگذاری کلیک کنید. با انجام اینکار، تصویر زیر برای ما نمایان می شود.
پیام موفقیت آمیز " تبریک ... داده های مربوط به محصول شما به درستی وارد شد." برای ما نمایان شده است، حالا باید به پایگاه داده ecommerce و جدول products مراجعه نماییم. به تصویر زیر نگاه کنید.
خب دوستان عزیز، به پایان این قسمت از آموزش ساخت فروشگاه اینترنتی با استفاده از php رسیدیم. در قسمت آینده به سراغ سایر گزینه های سایدبار سمت راست خواهیم رفت. در پایان این قسمت، برای شما عزیزان فایلهای نهایی را که در این قسمت آنها را تغییر دادیم قرار داده ام.
فایل نهایی index.php که در آدرس C:\wamp\www\ecommerce\admin_area قرار دارد.
<!-- start of Header --> <?php include('include/Header.php'); ?> <!-- end of Header --> <div id="templatemo_content"> <!-- start of ocntent left --> <div id="templatemo_content_left"> <?php if(isset($_GET['insert_pro'])) { include('insert_product.php'); } ?> <div class="cleaner_with_height"> </div> </div> <!-- end of ocntent left --> <!-- start of right content --> <?php include('include/Right_Sidebar.php'); ?> <!-- end of right content --> <div class="cleaner"> </div> </div> <!-- start of footer --> <?php include('include/Footer.php'); ?> <!-- end of footer -->
فایل نهایی insert_product.php که در آدرس C:\wamp\www\ecommerce\admin_area قرار دارد.
<form action="" method="post" enctype="multipart/form-data"> <table width="650" align="center"> <caption ><b>اطلاعات مربوط به محصول را در این جدول اضافه کنید</b></caption > <tr> <th ><b>ویژگی های محصول</b></th > <th ><b>مقدار ورودی برای هر کدام از ویژگی ها</b></th > </tr> <tr> <td><b>نام محصول</b></td > <td><input type="text" name="product_title" size="70" required></td > </tr> <tr> <td><b>دسته بندی محصول</b></td> <td> <select name="product_cat" required> <option>دسته ی مورد نظر خود را انتخاب کنید</option> <?php $get_cat="select * from categories"; $run_cat=@mysqli_query($con,"SET NAME utf8"); $run_cat=@mysqli_query($con,"SET CHARACTER SET utf8"); $run_cat=mysqli_query($con,$get_cat); while($row_cat=mysqli_fetch_array($run_cat)) { $cat_id=$row_cat['cat_id']; $cat_title=$row_cat['cat_title']; echo"<option value='$cat_id'>$cat_title</option>"; } ?> </select> </td > </tr> <tr> <td><b>برند محصول</b></td > <td> <select name="product_brand" required> <option>برند مورد نظر خود را انتخاب کنید</option> <?php $get_brand="select * from brands"; $run_brand = @mysqli_query($con,"SET NAMES utf8"); $run_brand = @mysqli_query($con,"SET CHARACTER SET utf8"); $run_brand=mysqli_query($con,$get_brand); while($row_brand=mysqli_fetch_array($run_brand)) { $brand_id=$row_brand['brand_id']; $brand_title=$row_brand['brand_title']; echo"<option value='$brand_id'>$brand_title</option>"; } ?> </select> </td> </tr> <tr> <td><b>قیمت محصول</b></td > <td><input type="text" name="product_price" required></td> </tr> <tr> <td><b>توصیف محصول </b></td> <td><textarea name="product_desc" ></textarea></td> </tr> <tr> <td><b>عکس محصول</b></td > <td><input type="file" name="product_image" required></td > </tr> <tr> <td><b>کلمات کلیدی</b> </td > <td><input type="text" name="product_keywords" size="70" required></td > </tr> <tr> <td align="center"><input type="submit" name="submit" value="بارگذاری"> </td> <td align="center"><input type="reset" name="reset" value="ریست کردن"></td> </tr> </table> </form> <?php // define variables and set to empty values if(isset($_POST['submit'])) { $product_title = $_POST["product_title"]; $product_cat = $_POST["product_cat"]; $product_brand = $_POST["product_brand"]; $product_price = $_POST["product_price"]; $product_desc = $_POST["product_desc"]; $product_keywords = $_POST["product_keywords"]; //getting the image form the image fields $product_image_name =$_FILES['product_image']['name']; $product_image_tmp =$_FILES['product_image']['tmp_name']; $address_images='product_images/'.$product_image_name; move_uploaded_file($product_image_tmp,$address_images); $insert_product = "INSERT INTO products (product_title ,product_cat , product_brand , product_price , product_desc , product_image , product_keywords) VALUES (N'$product_title' , $product_cat , $product_brand , $product_price , N'$product_desc' , N'$address_images' , N'$product_keywords' )"; $insert_pro=mysqli_query($con,$insert_product); //display message to user if($insert_pro) { echo"<script>alert('تبریک...داده های مربوط به محصول شما به درستی وارد شد.')</script>"; echo"<script>window.open('index.php','_self')</script>"; } } ?>
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.