نیما حبیب خدا

آموزش نوشتن اسکریپت از پایه ( کانفیگ ، مدیریت ، ایندکس و طراحی یک موتور قالب مبتدی )

9 پست در این موضوع

ارسال شده در (ویرایش شده)

با سلام دوستان .. قصد دارم توی این تاپیک ( هر چند که با مخالفت خیلی ها رو به رو میشم ) آموزش نوشتن اسکریپت php رو آموزش بدم .

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

برای آموزش بهتر و یادگیری سریع تر میتونید به کلاس های php آموزشگاه مراجعه کنید و استادید حرفه ای بهره ببرید .

در این سری از آموزش ها من سر فصل های زیر رو آموزش خواهم داد :

1- تعریف الگوریتم اسکریپت

2- نوشتن دیتابیس مورد نظر ( آموزش پایه Mysql در php )

3- نوشتن فایل کانفیگ و دیتابیس ها + دیفاین ها

4- نوشتن ایندکس سایت

5- تعریف ایندکس با توجه به موتور قالب مانند patTemplate و smarty

6- تعریف جامع session ها و جلسه کردن + کوکی ها

7- نوشتن مدیریت اسکریپت با استفاده از session ها .

8 - اتصال مدیریت به دیتابیس و اعمال تغییرات

9- دریافت اطلاعات در مدیریت .

این 9 مبحث رو سعی میکنم در 9 جلسه توضیح بدم و فقط با یک مثال کلی و ساده .

قطعا نوشتن اسکریپت به این کار ها ختم نمیشه و مبحث مفصل تری هست . اما همیشه باید از یک جایی شروع کرد و دست به کار شد .

امیدوارم دوستان از آموزش ها لذت ببرند ..

به زودی آموزش ها شروع میشوند ..

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

ویرایش شده در توسط نیما حبیب خدا
1 کاربر پسند دیده است

Share this post


Link to post
Share on other sites
آموزش ووکامرس قالب جوملا قالب وردپرس قالب رایگان وردپرس قالب رایگان جوملا هاست نامحدود هاست جوملا هاست لاراول هاست وردپرس هاست ارزان هاست ربات تلگرام خرید دامنه آموزش ساخت ربات تلگرام با php آموزش لاراول آموزش cPanel آموزش php آموزش فرم ساز RSform آموزش ساخت ربات جذب ممبر آموزش ساخت ربات دوستیابی آموزش ساخت ربات فروشگاهی برای ووکامرس آموزش طراحی سایت داینامیک با php آموزش بخش پشتیبانی با rsticket

مبحث اول : تعریف الگوریتم ( 27 / 05 / 1391 )

برای نوشتن اسکریپت های php باید سیستم را بررسی کنید . منظور از سیستم اسکریپتی است که قصد دارید بنویسید .

برای مثال با یک الگوریتم ساده طراحی میکنیم که متنی را به مدیریت ارسال کند و مدیریت هم متنی ارسال کند که در صفحه سایت نمایش دهد . ( برای مثال نام سایت )

در این قسمت ما نیاز به دو قسمت داریم

1- backend

2 - frontend

در قسمت اول چند مرحله طی میشود :

1- login و استفاده از جلسه + امکان تغییر پسوورد

2- صفحه ایندکس مدیریت برای راهنمایی به قسمت های دیگر مدیریت ( Control panel page Or navigation Page )

3- صفحه دریافت اطلاعات از کاربر

4- صفحه ارسال اطلاعات به سایت

5 - قبل از همه داشتن فایل کانفیگ برای اتصال مدیریت به دیتابیس

در مرحله دوم که نمایش سایت است جنیدن مرحله نیز داریم :

1- فایل کانفیگ

2- صفحه ایندکس که عمدتا صفحه اول اسکریپت است

3- صفحهات دیگر سایت که شامل اپلیکیشن ها و برنامه های نوشته شده میباشد ( مانند ارسال اطلاعات به مدیر )

4- نوشتن قالب دلخواه

5- نوشتن اپلیکیشن های ارسال و دریافت اطلاعات

این 5 مرحله از هر دو مرحله ( در مجموع 10 مرحله برای ساده ترین اسکریپت موجود ) پایه و اساس کار ما میشود . این روند ساده ترین الگوریتم است

الگوریتم های دیگر مانند MVC وجود دارد که همان الگوریتم مدیریت محتوای جوملا میباشد .

به این شکل که اطلاعات در ابتدا از دیتابیس دریافت میشوند و درستی و سالم بودن آن ها توسط اپلیکیشن ها چک میشوند و در قسمت نمایش نتیجه مطلوب نمایش داده میشود . سپس اطلاعات و دیتاها در فرم و یا اپلیکیش مربوطه وارد میشود و با استفاده از کنترلر ها تست میشود تا باز از سالم بودن آن اطمینان حاصل شود و نتیجه برای مدیر یا فرد مربوطه ارسال میشود . به این الگوریتم MVC یا Model View Control گویند .

ما در مثال های این دوره از الگوریتم ساده که در ابدا گفته شد استفاده میکنیم .

Share this post


Link to post
Share on other sites

ارسال شده در (ویرایش شده)

قسمت دوم ( نوشتن دیتابیس مربوط )

در این مرحله قصد داریم که دیتابیس را بسازیم و متناسب با الگوریتمی که بررسی کردیم ، دیتابیس مورد نظر را بنویسیم ...

در نوشتن دیتابیس یک مسئله خیلی مهم است ، اینکه تا جایی که امکان دارد ، باید مقادیر را حداقل بگیریم تا حجم کمتری را دربر بگیرد .. برای مثال برای نام خانوادگی میتوانید از char استفاده کنید اما بهتر این است که آن را محدود به 15 کنیم و از varchar استفاده کنیم ... این تغییرات باعث کم شدن حجم دیتابیس میشود .

خوب برای این که متوجه بشیم چونه باید جداول دیتابیس را ایجاد کنیم باید به الگوریتم دقت کنیم .

در قسمت اول الگوریتم ما قصد ارسال یک رشته از مدیریت را داریم که به سایت برود و نمایش داده شود و ارسال یک رشته از سایت داریم که به مدیریت میرو و نمایش داده میشود .

از طرفی در ادمین امکان لاگین و تغییر پسوورد مدیر وجود دارد . پس دو دستور هم برای لاگین و ( نیم کاربری و پسوورد ) داریم .

در نتیجه در جدول admin سه مقدار خواهیم داشت و در جدول site یک مقدار تا به اینجا .

دیتابیس را به شکل زیر مینویسیم .


DROP TABLE IF EXISTS `site`;
CREATE TABLE IF NOT EXISTS `site` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` text NOT NULL,
 `food` text NOT NULL,
 PRIMARY KEY (`id`)
) TYPE=MyISAM  AUTO_INCREMENT=26 ;

DROP TABLE IF EXISTS `admin`;
CREATE TABLE IF NOT EXISTS `admin` (
 `userName` varchar(20) NOT NULL DEFAULT '',
 `password` varchar(50) DEFAULT NULL,
 `logIn_ip` varchar(20) DEFAULT NULL,
 `LogIn_date` datetime DEFAULT NULL,

 PRIMARY KEY (`userName`)
) TYPE=MyISAM;

INSERT INTO `admin` (`userName`, `password`, `logIn_ip`, `LogIn_date`) VALUES
('admin', 'admin', '', '2012-01-18 05:02:56');



الان مرحله بالا شامل دو جدول یکی برای مدیر و دیگری برای سایت شد . دو مقدار Login_ip و Login_date ساختم برای جلسه کردن ورود مدیر.

کدهای بالا را در ویرایشگر خود ( دریم ویور و یا نت پد ) نوشته و با پسوند sql ذخیره میکنیم در پوشه مبوط به اسکریپت .

در قسمت مدیریت هم یک سری اطلاعات را به صورت پیشفرض ذخیره کردیم چون برای ورود به مدیریت به آن ها نیاز داریم .

نکته : الان دیتابیس به شکل utf-8 نیست . اما اشکالی نداره . برای ایجاد یک دیتابیس sql در قسمت کانفیگ با کدهای php این مشکل را حل میکنیم ..

ویرایش شده در توسط نیما حبیب خدا

Share this post


Link to post
Share on other sites

در فایل کانفیگ چند مورد نوشته میشود :

1- نوشتن اتصال به دیتابیس ( اصلی و اجباری )

2 - تعریف مقادیر ثابت

3- در مواقع مورد نیاز تعریف منطقه زمانی .

موارد یک و دو در مثال ما کاربرد دارد . البته مسائل دیگر در فایل کانفیگمطرح میشوند که مانند جوملا میتوان به اف تی پی ، پورت ها ، اس ام تی پی ، و .... اشاره کرد .

مورد 1 -

در کد زیر اتصال به دیتابیس را مینویسیم :


<?php
//for hosting hostname , user, db sarver password

$hostname="localhost";  // esme host ( osoolan localhost)
$db_login="database user"; // user name data base
$db_pass="database password"; // passworde data base

// new database name
$database ="databasename"; // esme data base

// Initial UserName and Password
  $ad_login = "Admin"; // username va passworde admin 
   $ad_pass = "Admin";

// connects to host
$con = mysql_connect($hostname, $db_login, $db_pass) or die("Could not connect");    // etesal be data base bala 
mysql_select_db($database, $con) or die('Could notT select Database');

  ?>

در این مثال ما به دیتابیسی که تعریف کردیم متصل شدیم ... دستور mysql_connect مقادیر را با هم چک میکند تا از درستی اتصال به phpmyadmin اطمینان حاصل شود .

این فایل را با نام config.php ذخیره میکنیم .

در مرحله بعد نحوه استفاده از این فایل را توضیح میدم .

اگر به مثال های دیگر د مورد فایل کانفیگ نیاز داشتید بگید تا در صورت مقدرو بودن قرا بدم .

Share this post


Link to post
Share on other sites

قسمت چهارم ( نوشتن ایندکس سایت)بخش اول

در این قسمت خیلی کارها میشه کرد . اما اصل کار رو قرار میدیم روی ظاهر و هر کد دیگر رو در جاهای دیگه مینویسیم .. برای مثال : ما میخوایم یک سری اطلاعات بفرستیم به دیتابیس و یک سری اطلاعات از دیتابیس بگیریم ... پس این قسمت از آموزش سه بخش داره که اولین بخش یعنی نوشتن ایندکس رو در این پست توضیح میدم :

اول از همه فایل index.php چیست : این فایل اصلی ترین فایل سایت هست که زمانی که سایت شما ران میشه ، این فایل اجرا میشه و سرور به صورت خودکار این فایل رو به علت نامگذاری فعال میکنه . منظور این هست که اگر شما page.php قرار بدید ، سرور فایل رو به صورت خودکار نمیخونه .

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

پس فایلی که مینویسیم باید شامل خصوصیات بالا باشد .

برای نوشتن فایل ایندکس مثال خودمون به این صورت عمل میکنیم :


<?php

include('receive.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>
<link rel="stylesheet" href="css/style.css"/>


<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>آموزش نوشتن اسکریپت </title>
</head>

<body>
<form style="font-family:tahoma; text-align:right; direction:rtl" id="sendform" action="send.php" method="post"> 
افزودن نام غذا :  <input type="text" id="name" size="8" name="name"  />
افزودن قیمت  :  <input type="text" id="food" size="8" name="food"  />
<input type="submit" value="تایید" name="submit" id="submit" />
</form>
</body>
</html>


در این مثال در ابتدا قبل باز کردن هر نوع تگ ، یک فایل به اسم receive.php رو include کردیم که شامل اطلاعاتیست که ادمین تکمیل کرده است تا بتوانیم در سایت نمایش دهیم .

در قسمت form هم یک فایل به نام send.php را Action قرار دادیم تا بعد از تایید فرم این فایل خوانده شود . در واقع این فایل اطلاعاتی را که کاربر تکمیل میکند برای ادمین ارسال میکند که در اینجا فقط نام و نام خانوادگی تکمیل میشه .

این ساده ترین ایندکس میتونه باشه .. در قسمت بعدی دو فایل send و receive رو توضیح میدم ...

ویرایش شده در توسط نیما حبیب خدا

Share this post


Link to post
Share on other sites

قسمت چهارم ( نوشتن ایندکس سایت)بخش دوم :: نوشتن send

نکته : فایل کانفیگ + فایل دیتابیس ویرایش شد .

در این قسمت قصد داریم که یک فایل بنویسیم تا اطلاعات را بگیرد و به دیتابیس انتقال دهد . برای این کار نیاز داریم تا با دستور $_POST['name'] مقادیر را که در فرم قرار دادیم گرفته و به فایل send ارسال کنیم تا متن را برای ما به ایمیل یا دیتابیس یا هردو ارسال کند .

فایل به این صورت نوشته میشود :


<?php
session_start();
$id=$_POST['id'];
$name=$_POST['name'];
$food=$_POST['food'];
include_once("config.php");

//Create table

$sql="INSERT INTO site(name, id, food) VALUES ('$name','$id','$food')";
if (!mysql_query($sql,$db_link ))
 {
 die('Error: ' . mysql_error());  // peyghame eror namayesh dade mishavad
 }
 header("location: ok.html");

?>


در کد بالا با دستوری که پیش از این گفتم مقادیر رو از فرم دریافت کردیم .. اگر دقت کنید در فرم برای input dک name juریف کردم که مقدار آن ها با مقدار وارد شده در POST یکسان است .. به این معنی است که برای ارسال اطلاعات باید مقادیر name را در $_POST وارد کنید .

در قسمت بعد با استفاده از INSERT مقدار $sql را ایجاد کردیم . این تابع اس کیو ال به سیستم اعلام میکنه که در داخل مقادیر name , id , food که جزیی از جداول تیبل site هستند ( رجوع کنید به فایل اس کیو ال ) مقادیر $food , $name , $id را بریز... که در ابتدای فایل مشخص کردیم .

در خط بعد شرط قرار دادیم که اگر دیتابیس نا آشنا بود و مقادیر نمیتواند وارد شود یک ارور نمایش داده شود در غیر این صورت به فایل ok.html برو .. این فایل یک فایل ساده هست و هیچگونه دستور داینامیک ندارد .. یک صفحه معمولیست که نمایش تایید ارسال را میدهد ...

در بخش بعد نحوه نوشتن فایل receive.php را آموزش خواهم داد .

امیدوارم از این سری آموزش ها راضی باشید .

ویرایش شده در توسط نیما حبیب خدا

Share this post


Link to post
Share on other sites

یک پیام از طرف نویسنده آموزش :

دوستان این آموزش ها که مینویسم فقط برای پر شدن محتوا نمینویسم ... شاید برای هر تاپیک یک زمان 30 دقیقه گرفته بشه .. چون از پیش آماده نکردم و از ابتدا همه تاپیک ها رو میخونم وادیت میکنم و بعد مینویسم و قرار میدم که اشتباهی در برنامه صورت نگیره...

چیزی که مد نظرم بود در این کار این هست که دوستان علاقه مند به php که میشه همه افراد این انجمن، بتونن یک اسکریپت بنویسن تا ایران بتونه پیشرفت کنه و پایه خیلی کارا باشه .. تا به حال در هیچ سایتی آموزش نوشتن اسکریپت php را ندیده ام ... برای همین اینکار رو رایگان انجام دادم . خیلی از این آموزش ها در کلاس های خودم گفته میشه .. اما ترجیح دادم خودم ضرر کنم تا شاید باعث پیشرفت دوستان با استعداد بشه .

ممنون از همه .

Share this post


Link to post
Share on other sites

ارسال شده در (ویرایش شده)

سلام آقای نیما

البته که به زحمات شما واقفیم

من که به شخصه ازتون تشکر میکنم

امیدوارم باز هم از شما مطالب مفید و کاربردی بخونم. :did2:

ویرایش شده در توسط saber
لینک تبلیغاتی

Share this post


Link to post
Share on other sites
سلام آقای نیما

البته که به زحمات شما واقفیم

من که به شخصه ازتون تشکر میکنم

امیدوارم باز هم از شما مطالب مفید و کاربردی بخونم. :did2:

دوست گرامی تبلیغات فقط در امضا مجاز هست لینکهای تبلیغاتی شما ویرایش شد در صورت تکرار طبق قوانین انجمن شامل اخراج خواهید شد.

موفق باشید

Share this post


Link to post
Share on other sites

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری