آموزش PHP (قسمت6-5-4) - Developer Center
Developer Center

بازگشت   Developer Center > زبانهای برنامه نویسی > PHP
ثبت نام راهنما فهرست کاربران تقویم جستجو ارسالهاي امروز نشانه گذاري انجمن ها به عنوان خوانده شده

پاسخ
 
ابزارهای موضوع نحوه نمایش
قدیمی Saturday 22 April 2006, 04:18 PM   #1
Bztajik
مدير بخش
 
Bztajik آواتار ها
 
تاریخ عضویت: Monday 2 January 2006
نوشته ها: 608
با تشکر: 0
تشکر شده 206 بار 74 پست
Bztajik کاربر معروفBztajik کاربر معروفBztajik کاربر معروفBztajik کاربر معروفBztajik کاربر معروفBztajik کاربر معروفBztajik کاربر معروف
پیش فرض آموزش PHP (قسمت6-5-4)

آموزش PHP (قسمت چهارم )

چون برنامه هايي كه ما مي نويسيم روي سرور هستند و به درخواست كاربر اجرا مي شوند در اين قسمت به فرم ها (كه يك نوع در خواست هستند) مي پردازيم.

فرم چيه ؟ يه صفحه كه يك (چند) تا دكمه و يا جايي براي ورود اطلاعات داره مثل جايي كه نام كاربري و كلمه عبور رو وارد مي كنيم و يا مثل صفحه اول گوگل كه يه دكمه و يه محل ورود داره ...

با فرم ها به دو صورت اطلاعات رو به سمت سرور مي فرستيم (يا اصطلاحا در خواست ميدهيم)

1- Get
2- Post


ساخت فرم :
براي ساختن فرم بايستي از كد Html استفاده كنيم ربطي به php نداره
يك مثال از يك فرم:




كد:
<form method="POST" action="Page.php" name="MyForm" target="_self">


<input type="text" name="T1" size="20">

<input type="submit" value="Submit" name="B1">

<input type="reset" value="Reset" name="B2">

</form>





همون طور كه مي بينيد چند تا تگ ساده هستند كه يك تگ <form> </form> هست و چند تا تگ ديگه وسط اونا ...
اون وسطي ها مربوط به اشياي فرم هستند.

بررسي تگ <form> :
اين تگ هم مثل بقيه تگ هاي html يك سري خاصيت داره و از يه جا شروع مي شه و به يه جا ختم مي شه.

method : نوع درخواست را مشخص مي كند كه مي تواند POST و يا GET باشد در صورتي كه اصلا اين را ننويسيم به صورت پيشفرض Get در نظر گرفته مي شود.

action : صفحه مقصد را مشخص مي كند يعني اين كه پس از پر كردن فرم براي ارسال اون به سمت سرور به كدوم صفحه ارسال بشه ... در ادامه مي بينيم كه كد هاي مربوط به فرم رو بايد توي صفحه مقصد بنويسيم. در صورتي كه اين را ننويسيم صفحه جاري صفحه مقصد در نظر گرفته مي شود.

name : نام فرم است كه براي php‏ نيازي به اون نداريم ولي اگه بخواهيم از جاوا اسكريپت استفاده كنيم نياز مي شه ... مثل چك كردن صحت ايميل قبل از ارسال اون تا يه وقت يكي شيطوني نكنه

target : نوع باز شدن صفحه مقصد كه شامل صفحه جاري ، صفحه جديد ، صفحه پدر ، يك فريم خاص و ... است . ممكنه تا به حال به صفحاتي بر خورده باشيد كه پس از فشردن دكمه مربوط به ارسال فرم نتيجه رو توي يه صفحه جديد مشاهده كرديد.

خوب تا اينجاش html بود كه خودتون با FrontPage يا برنامه هاي مربوطه مي تونيد بسازيد. و مربوط به ارسال اطلاعات بود.

خوب براي اين كه با دريافت هم آشنا بشويم يه مثال كوچولو مي زنيم :
فرض كنيم مي خواهيم برنامه اي بنويسيم كه يك رشته را دريافت كرده و اونو 5 بار چاپ كنه؟

اول فرم اون رو مي سازيم (كه html هست) :




كد:
<form method="POST" action="print.php">

<p><input type="text" name="T1" size="20"></p>
<p><input type="submit" value="Submit" name="B1"></p>
</form>






اين فرم يه فرم خيلي ساده است كه صفحه مقصد اون print.php هست و چون آدرسي داده نشده پس صفحه اي كه فرم توي اونه و صفحه اي كه كد هاي php توي اون نوشته شده (print.php) بايستي توي يه فولدر باشند.
اين فرم يه فيلد (جايي كه اطلاعات رو توي اون مي نويسيم) و يه دكمه داره.

خوب حالا كد php‏ اون (صفحه print.php):




كد:


<?

$my_str = $_POST['T1'];

for($i = 0 ; $i < 5 ; $i++)
{

print($my_str);

}

?>






در خط اول به يه متغير به نام my_str مقدار
كد: $_POST['T1']
رو انتصاب داديم . اين مقدار براي دسترسي به اشياي فرم هست و T1 نام اون فيلد ما است كه محتواي اون رو توي يه متغير ريختيم و توي حلقه اون رو 5 بار چاپ كرديم.

براي دسترسي به اشياي فرم در صورتي كه با Get ارسال شده باشند از
كد: $_GET['FieldName'] استفاده مي كنيم.
Bztajik آنلاین نیست.   پاسخ با نقل قول

.......
قدیمی Saturday 22 April 2006, 04:34 PM   #2
Bztajik
مدير بخش
 
Bztajik آواتار ها
 
تاریخ عضویت: Monday 2 January 2006
نوشته ها: 608
با تشکر: 0
تشکر شده 206 بار 74 پست
Bztajik کاربر معروفBztajik کاربر معروفBztajik کاربر معروفBztajik کاربر معروفBztajik کاربر معروفBztajik کاربر معروفBztajik کاربر معروف
پیش فرض

آموزش php قسمت پنجم (توابع)

تابع چيست...؟
فرض كنيد كه ما يه كارخونه خودرو سازي داريم كه توي اون يه دستگاه هست كه از يه طرف مواد اوليه رو بهش ميدهيم و از طرف ديگر خدا بيامرز پيكان ميآد بيرون ... حالا اومديم و يه نقص كوچولو پيدا كرد مثلا چراغ هاي جلو روشن نمي شوند ...اينجاس كه دردسر ها شروع ميشه يعني ما بايد اون دستگاه بسيار بزرگ كه پيكان رو ميسازه رو از اول اين كه مواد اوليه كه بهش ميديم تا زماني كه پيكان ساخته شده را به ما تحويل ميده زير نظر بگيريم تا ببينيم كجاي كار مي لنگه... واقعا كار سخت و زمان گيري است .

حال فرض كنيد كارخونه ما به جاي يه دستگاه بزرگ چند تا دستگاه كوچولو داره كه هر دستگاه قطعه توليد شده خودش رو به يه دستگاه ديگه ميده تا بالاخره خودروي ما سرهم بشه . اگه مشكلي مثل مشكل بالا صورت گرفت ما فقط يه دستگاه كوچولو رو مي خواهيم رفع عيب كنيم، و اين خيلي راحتتره ...

توي برنامه هامون هم ما بهتره كه برنامه رو بر اساس كارهاي مختلف تكه تكه كنيم كه اگه يه قسمت برنامه ايراد به هم زد فقط اون قسمت رو بخواهيم ارور گيري كنيم . به هر كدوم از اين تكه برنامه ها يه فانكشن(تابع) ميگيم كه اين طوري نوشته مي شه.




كد:
function salam()

{
print("Salam");
}



اين يه فانكشن ساده است كه كلمه سلام رو چاپ ميكنه ...
ما قبلا هم از فانكشن ها استفاده ميكرديم بدون اين كه اونو بلد باشيم
مثلا فانكشن

كد: print();
كه با اون آشنا هستيد و از اين قبيل. كه البته اين يك فانكشن داخلي خود php‏ هست.

اصطلاحات مربوط به توابع :

فراخواني : يعني اين كه تابع را صدا بزنيم توي مثال بالا براي صدا زدن تابعي كه نوشتيم فقط كافيه كه هر جا كه لازم داشتيم نام تابع رو بنويسيم:

كد: salam();


يعني كامپايلر php وقتي به اين عبارت برسد روند اجراي برنامه رو متوقف ميكنه و به سراغ تابع ميرود و خط به خط تابع را اجرا ميكند تا تابع تمام شود ، بعد دوباره بر ميگردد و ادامه ميدهد.

ورودي تابع: تابع ما ميتونه يك يا چند تا ورودي هم داشته باشه مثلا يه تابع كه نام كاربري و كلمه عبور رو بگيره و ببينه كه كاربر معتبر هست يا نه و ... براي نمونه به تابع زير نگاه كنيد كه يه ورودي ميگيره و اون رو 5 بار زير هم چاپ ميكنه :


كد: function my_prn($mystr)
{
for(i = 0 ; i < 5 ;i++)
print($mystr."<br>");
}

و اونو اين طوري صدا ميزنيم :

كد: my_prn("My Name");

البته به جاي "My Name" ميتونستيم يه متغير قرار بديم :



كد:
$my_name = "Mojtaba";

my_prn($my_name);





خروجي تابع : بعضي از توابع هستند كه چيزي را چاپ نميكنند بلكه يك مقدار را براي ما بر ميگردانند مثلا تابعي كه كلمه عبور يك كاربر را بگيرد و آن را به رمز خاصي تبديل كند و بعد از آن ما اين رمز را با رمزي كه خودمان داريم مقايسه كنيم (يعني اين كه نميخواهيم چيزي چاپ شود) يك مثال ساده‏:



كد:
function sum($a,$b)

{
$c = $a +$b ;
return $c ;
}





تابع فوق دو عدد را مي گيرد و مجموع آنها را بر مي گرداند ، با استفاده از كلمه كليدي return چيزي را بر مي گردانيم.

چگونه به مقدار برگشتي دستيابي داشته باشيم ؟
براي تابع فوق مي توانيم اين چنين بنويسيم :

كد: $s = sum(2,5);

كد بالا مقدار برگشتي تابع sum را به ازاي ورودي هاي 2 و 5 كه ميشود 7 را در متغير s مي ريزد .چون s يه متغير مثل بقيه است پس ما مي توانيم خود
كد: sum(2,5)
را در شرط ها ، حلقه ها ، دستور چاپ و ... به كار ببريم.

مثلا :



كد:
if(sum(2,5) > 7)

{
print ("Grater");

}
else
{

print ("Less or Equal");

}





نكات مهم :
1- كلمه كليدي function , return حتما بايستي كوچك نوشته شوند.
2- قوانين نام گذاري توابع مثل نام گذاري متغير ها است.
3- متغير هايي كه درون بدنه تابع به كار مي روند هيچ ربطي به متغير هاي برنامه ندارند.(يعني اختلالي ايجاد نمي كنند).
4- در تابع هر جا كه به دستور return‏ برسيم تابع تمام شده است و دستورات بعدي كه در بدنه تابع نوشته شده اند اجرا نمي شوند.
5- ...
Bztajik آنلاین نیست.   پاسخ با نقل قول
قدیمی Saturday 22 April 2006, 04:48 PM   #3
Bztajik
مدير بخش
 
Bztajik آواتار ها
 
تاریخ عضویت: Monday 2 January 2006
نوشته ها: 608
با تشکر: 0
تشکر شده 206 بار 74 پست
Bztajik کاربر معروفBztajik کاربر معروفBztajik کاربر معروفBztajik کاربر معروفBztajik کاربر معروفBztajik کاربر معروفBztajik کاربر معروف
پیش فرض

آموزش PHP (قسمت ششم )

امروز آموزش ارتباط با ديتابيس MySql رو آموزش ميدم.

اصلا ديتابيس چيه ؟
ديتابيس يه جايي هست كه داده هامون رو اونجا ذخيره مي كنيم داده هايي مثل نام كاربران، كلمه عبور آنها ، ايميل آنها و ... مثل همين جا كه تمامي تاپيك ها و پست ها رو توي ديتا بيس نگهداري مي كنه.

براي اين كه داده ها سازماندهي بهتري داشته باشند خود ديتابيس هم به قسمت هايي تقسيم مي شه كه به اونا جدول (Table) ميگيم. براي درك بهتر ميتونيد ديتا بيس رو يه فولدر در نظر بگيريد و Table ها رو فايل هاي درون آن البته خود Table تقسيم بندي هاي خاص خودش رو داره.

هر Table از يك سري فيلد (ستون) و ركورد (سطر) تشكيل شده است مثلا Table دانشجويان از فيلد هاي شماره دانشجويي،نام،نام خانوادگي،سال ورود،رشته،مقطع و ... تشكيل شده كه به هر كدام از اين مشخصات يه فيلد مي گيم.
خوب حالا فرض كنيد يه سري داده توي اين جدول وارد كرديم مثلا مشخصات دانشجوياني با مشخصات زير :

834421 ، مجتبي ، اسكندري ، 83 ، كامپيوتر ، كارشناسي
842135 ، حسن ، محمدي ، 84 ، زراعت ، كارسناسي
820012 ، حسين ، مرادي ، 82 ، فيزيك ، كارشناسي
.
.
.

خوب به هر كدام از سري اين مشخصات ( هر سطر) يه ركورد مي گوييم. در ادامه مبحث بيشتر آشنا مي شويد.

براي كار با ديتابيس MySql بايد از يه سري دستورات استفاده كنيم كه به Query معروفند و با زبان SQL نوشته مي شوند ياد گيري SQL خيلي راحته و بسيار سريع اون رو ياد ميگيريد.

اما يه برنامه بسيار قدرتمند (تحت وب) براي مديريت MySql نوشته شده كه به PhpMyAdmin معروفه.
خوب برنامه PhpMyAdmin رو باز كنيد . (راهنمايي : اگه از Easy PHP استتفاده مي كنيد به آدرس زير توي مرورگرتون برويد :

خوب در سمت چپ يه ليست كشويي هيت كه ديتابيس هاي شما رو نشون ميده . و توي قسمت سمت راست يه قسمت هست با عنوان Create new database كه ميتونيد ديتابيس جديد ايجاد كنيد . مثلا نام : MyDB رو وارد كنيد و روي Create كليك كنيد . خوب وارد يه صفحه ديگه مي شويم كه يه پيغام ميده كه ديتابيس شما ساخته شد . و در قسمت زيرين اون يه قسمت هست كه نوشته :
كد:
SQL query:
CREATE DATABASE `MyDB` ;



اينجا برنامه PhpMyAdmin اون Query كه اجرا كرده تا عمليات درخواستي ما ( در اينجا ساختن ديتابيس) رو انجام بده رو مينويسه و اين به ياد گيري ما كمك ميكنه.

خوب در قسمت Create new table on database MyDB نام Table ي كه ميخواهيم بسازيم رو وارد ميكنيم مثلا : users
و در قسمت Number of fields اون تعداد فيلد هايي كه براي جدول نياز هست رو مينويسيم مثلا 2 (منظور username,password) هست .

در صفحه بعد بسته به اون عددي كه توي مرحله قبل وارد كرده ايد از شما نام فيلد و نوع آن و ديگر مشخصات را ميخواهد . حالا يكي يكي توضيح ميدم.

Field : در اين قسمت اسم فيلد را مينويسيد مثلا username

Type : در اين قسمت نوع فيلد را مشخص ميكنيد مثلا كاراكتري ، رشته ، عدد صحيح ، عدد اعشاري و ... براي نام كاربري شما از همون VARCHAR (رشته حد اكثر 255 كاراكتري) استفاده كنيد.

Length/Values* : در اين قسمت براي نوع هايي كه نياز به طول دارند طول فيلد را ميدهيم مثلا VARCHAR نياز دارد كه حتما طول آن را بنويسيم شما بايد با توجه به مورد استفاده خود طولي رو در نظر بگيريد كه نه كم بياد و نه زياد باشه. مثلا براي نام كاربري (در اين مثال) 20 عدد خوبيه.

Attributes : يه سري خاصيت هاي مربوط به فيلد است كه اكثر موارد استفاده نمي شود . شما هم آن را تغيير ندين.

Null : مشخص مي كند كه اين فيلد ميتونه خالي باشه يا نه .(توي برنامه نويسي توضيح بيشتر ميدم)

Default** : مقدار پيشفرض فيلد شما است.

Extra : در اين قسمت يه سري امكانات اضافي براي فيلد وجود داره كه من تا حالا بيشتر از يكي نديدم و همون هم توضيح مي دم . اسم اون هست auto_increment اگر اين امكان رو به فيلدي بدهيد (بايد نوع آن INT باشه) اون فيلد با اضافه كردن هر ركورد اين فيلد رو يكي اضافه ميكنه (از 1 شروع مي كنه).

Primary : اين قسمت نوشته نشده فقط يه عكس كشيده كه با رفتن ماوس روي اون اين متن رو نشون ميده . اگه اين قسمت رو براي يه فيلد علامت بزنيد اون فيلد به اصلاح كليد اصلي جدول ميشه و معمولا براي فيلد هايي كه نبايد تكراري باشه استفاده مي شه مثل فيلد شماره دانشجويي كه نبايد دو دانشجو يه شماره داشته باشند.

براي قسمت هاي ديگه مثل Index , Unique بعد توضيح ميدم.

خوب فيلد بعدي كه password هست رو هم طبق راهنمايي هاي بالا درست ميكنيم. بعد بر روي دكمه Save كليك ميكنيم.
جدول ما ساخته ميشه بايد Query شما يه چيزي توي اين مايه ها باشه .


كد:
SQL query:
CREATE TABLE `users` (
`username` VARCHAR( 20 ) NOT NULL ,
`password` VARCHAR( 32 ) NOT NULL ,
PRIMARY KEY ( `username` )
) TYPE = MYISAM ;



خوب حالا اون بالا بر روي Insert كليك كنيد و يه username , password بنويسيد و بر روي Go كليك كنيد.

PhpMyAdmin امكانات زيادي داره كه با كاركردن همه اونا رو ياد مي گيريد. اما ما نمي خواهيم اين طوري با ديتا بيس كار كنيم ، ما مي خواهيم اين كارها رو با برنامه نويسي انجام بديم. مثلا يه فرم قشنگ داشته باشيم و اطلاعات رو از كاربر بگيريم و اونا رو توي جدول وارد كنيم يا يه جستجو توي جدول انجام بديم.

براي اين كه توي php با MySql كار كنيم يه سري مراحل داره كه بايد اونا رو به ترتيب انجام بديم .

1- اتصال به هاست : منظور از هاست اون كامپيوتري هست كه MySql روي اون نصبه و همه داده ها اونجا ذخيره ميشن. توي برنامه هايي كه ما مي نويسيم معمولا همون localhost است . براي اتصال به هاست نياز به يه username , password داريم . با استفاده از دستور زير به هاست متصل مي شويم.

كد: mysql_connect( HostName , HostUserName , HostPassword);


اگه روي كامپيوتر خودتون داريد كار مي كنيد براي مثال از اين دستور اين طوري استفاده كنيد :

كد:
$myconn = mysql_connect( "localhost" , "root" , "");
if($myconn)
print ("Connection Sucsessful!");
else
print("Connection Failed!");



البته myconn يه متغيره كه من دوست داشتم اسمش اين باشه شما هر چي دوشت داشتيد بگذاريد.

خوب حالا كه به هاست كانكت شديم بايد ديتا بيسمون رو انتخاب كنيم . با دستور زير

كد: mysql_select_db(MySqlDataBaseName,ConnectionID);

براي مثال خورمون اين طوري مي شه :


كد: mysql_select_db("MyDB",$myconn);


خوب حالا ديتا بيس خودمون رو هم انتخاب كرديم حال هر كاري كه خواستيم انجام بدهيم بايد براش Query بنويسيم همون چيزايي كه توي PhpMyAdmin هم بهمون نشون مي داد.

*اجراي يك Query :
دستور اجراي يك Query اينه :

كد: mysql_query(QueryString , ConnectionID);


مثال :

كد: mysql_query("SELECT * FROM users" , $myconn);


براي اين كه يه نتيجه از كار امروز رو ديده باشيد. كد زير رو اجرا كنيد :


كد:
<?
$myconn = mysql_connect( "localhost" , "root" , "");
if($myconn)
print ("Connection Sucsessful!<br><br>");
else
die("<font color=#ff0000>Connection Failed!</font><br><br>");

mysql_select_db("MyDB",$myconn);
$result = mysql_query("SELECT * FROM users" , $myconn);

for($i = 0 ; $i != mysql_num_rows($result) ; $i++)
{
print(@mysql_result($result,$i,0)." ".@mysql_result($result,$i,1)."<br><br>");

}

?>



Bztajik آنلاین نیست.   پاسخ با نقل قول
پاسخ

ابزارهای موضوع
نحوه نمایش

قوانین ارسال
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is فعال
شکلک ها فعال است
کد [IMG] فعال است
کدهای HTML غیر فعال است
انتخاب سریع یک انجمن


اکنون ساعت 02:06 AM برپایه ساعت جهانی (GMT - گرینویچ) +3.5 می باشد.





Powered by vBulletin Version 3.7.3
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.

Persian Language By Persian Forum Ver 1.0