Download presentation
Presentation is loading. Please wait.
Published bySudomo Gunawan Modified over 6 years ago
1
N تعلیم و تعلم وتأدب عبادت است سخنی از رهبر معظم انقلاب اسلامی دانشمند محترم و فیلسوف گرامی حضرت آیت الله العظمی امام خامنه ای (مدظله العالی ) ( ادام اللهُ ظلَ الوارف )
2
Teaching PHP PHP آموزش زبان
3
Teaching www.aduelect.ir SOURCE:
Wrox Press - Professional PHP Programming Programmers Introduction To PHP4 Computer Programming & Scripting - PHP - PHP and MySQL Reza
4
جلسه اول www.aduelect.ir Php چیست؟ نوشتن کدهای php وترکیب phpو html
اضافه کردن توضیحات به برنامه انواع داده ها تعریف متغیرها و ثابت ها توابعی در مورد متغیر ها عملگرها در php رشته ها یا string ها
5
2. کدهای php در سرویس دهنده اجرا می شوند.
Php یک زبان با امکانات بالا و قدرتمند است که برای ساخت وب سایت های پویا (dynamic) بکار می رود. ویژگی های PHP: 1.این زبان قدرتمند به راحتی با HTML ادغام می شود و در فایل هایی که حاوی دستورات HTML هستند نوشته می شود. 2. کدهای php در سرویس دهنده اجرا می شوند. 3.برنامه های php به وسیله مرورگر وب اجرا می شوند که پس از اجرا شدن به وب سایتی که برنامه های php قرار دارند رجوع می کند و پس از اجرای برنامه نتیجه ان به مرورگر فرستاده می شود. 4.کدهای php را می توان بدون تغییرات در سیستم های عامل مختلف بکار برد.
6
www.aduelect.ir 5.ارتباط با بانکهای اطلاعاتی مختلف.
6.حاوی توابع زیادی برای اجرای کارهای مربوط به وب است. 7.هزینه ای ندارد و به صورت رایگان می توان از ان استفاده کرد. 8.اموزش و بکارگیری ان ساده است و شبیه به زبان برنامه نویسی C می باشد و کسانی که با زبان C,C++ اشنا باشند به راحتی می توانند انرا فرا بگیرند. 9.Php یک زبان loosely Typed است یعنی نیازی به تعریف متغیرها و تعیین نوع داده ها نمی باشد در این زبان نوع داده ها و تغییر نوع دادها بر حسب نیاز و به صورت خودکار انجام می شود.
7
3. <script language=“php’’> php کدهای </script>
برای نوشتن کد های php شما باید از تگ های مشخص شده php استفاده کنید در واقع دستورات php در این تگ ها نوشته می شوند و توسط این تگ های خاص کد های php شنا سایی می شوند. کدهای php به 3 روش نوشته می شوند: 1. <? php کدهای ?> 2. <?php php کدهای ?> 3. <script language=“php’’> php کدهای </script> نکته: پایان هر دستور را باید با سمی کولن مشخص کنیم.
8
www.aduelect.ir مثال: روش اول <?php
echo ‘ first programing with php '; ?> مثال: روش دوم <? echo ‘ first programing with php '; ?>
9
www.aduelect.ir مثال: روش سوم <script language=“php”>
echo ‘ first programing with php '; </script> مثال: ترکیب php و html <html> <head> <title>New website</title> </head> <body> <?php ?> </body> </html>
10
www.aduelect.ir اضافه کردن توضیحات به برنامه comment :
برای اضافه کردن توضیحات می توان از سه دستور مختلف // و # و*/ استفاده کرد: <?php echo ‘ first programing with php ';// comment /* comment comment comment*/ echo ‘ first programing with php ';#comment ?>
11
www.aduelect.ir انواع داده ها: عدد اعشاری ( double )
برای ذخیره اعداد اعشاری عدد صحیح (integer ) برای ذخیره اعداد صحیح رشته ای ( string ) برای ذخیره رشته ای شی ( object) برای ایجاد اشیا ارایه ( array) برای ذخیره مجموعه ای از مقادیر همنوع
12
تعریف متغیرها: مثال: www.aduelect.ir
برای تعریف متغیر در php باید از $ استفاده نمود به عبارتی نام متغیرها در php با علامت $ شروع می شود بقیه کارکترها هم می توانند از حروف و اعداد باشند. نکته 1: php به حروف بزرگ و کوچک حساس است یعنی متغیری با نام $Amir با متغیری به نام $amir متفاوت است و دو متغیر مجزا می باشند. نکته 2: اولین کارکتر بعد از $ نباید عدد باشد به طور مثال تعریف متغیری به صورت $2tal غلط می باشد. $varname=info; مثال: <?php $name = 'amir'; $fname = ' emadi'; echo $name; echo $fname; ?>
13
حذف متغیرها: www.aduelect.ir
برای حذف متغیرها از دستور unset استفاده می شود. مثال: در دستورات زیر ابتدا 2 متغیر با نام nameوfname تعریف شده همانطور که مشاهده می کنید دو دستور در خط 4 و 5 این دو متغیر را چاپ کرده اند سپس در خط 6 با دستور unset دو متغیر name وfname حذف شده اند . نکته:دستور echo در خط 7 متغیر name را نمایش نمی دهد زیرا در خط 6 این متغیر حذف شده. <?php $name = 'amir'; $fname = ' emadi'; echo $name; echo $fname; Unset ($name , $fname); Echo $name; ?>
14
www.aduelect.ir ثابت ها:
یک ثابت در واقع یک نام برای یک مقدار است به طوری که این مقدار ثابت در طول اجرای برنامه قابل تغییر نیست و همچنین این مقادیر در سراسر برنامه قابل دسترسی می باشند. برای تعریف ثابتها از تابع define استفاده می شود. Define('id', 14); define('name','ali '); توضیح:این دستور ثابتی با نام id با مقدار 14 و ثابتی با نام name و مقدار ali بوجود می اورد. نکته: در ثوابت مانند تعریف متغیر ها از $ استفاده نمی شود. مثال: <?php echo name; echo id; ?>
15
عملگر نام مثال + جمع $a + $B - تفریق $a - $B * ضرب $a * $B / تقسیم
عملگرها: عملگر در واقع نمادی می باشد که عمل خاصی را بر روی 2 عملوند انجام می دهد. عملگرهای محاسباتی عملگر نام مثال + جمع $a + $B - تفریق $a - $B * ضرب $a * $B / تقسیم $a / $B % باقیمانده تقسیم $a % $B ++ افزایش $a++ یا ++$a -- کاهش $a-- یا --$a
16
عملگر نام مثال == تساوی $a == $B === همانی $a === $B != نامساوی
عملگرهای مقایسه ای عملگر نام مثال == تساوی $a == $B === همانی $a === $B != نامساوی $a =! $B <> $a <> $B > کوچکتر از $a < $B < بزرگتر از $a > $B => کوچکتر یا مساوی $a <= $B =< بزرگتر یا مساوی $a >= $B نکته: در همانی تبدیل نوع صورت نمی گیرد ولی در تساوی ابتدا دو طرف به نوع عددی تبدیل می شوند.
17
! !$x && $x && $z || $x || $z and $x and $z or $x or $z عملگر نام مثال
عملگرهای منطقی عملگر نام مثال توضیح ! (NOT) !$x نتیجه را عکس می کند به طور مثال false را به true تبدیل می کند. && َ(and) و $x && $z اگر هر دو عملوند درست باشد نتیجه درست است در غیر این صورت غلط است. || (||) یا $x || $z اگر یکی از دو عملوند درست باشد نتیجه درست است و اگر هر دو غلط باشد نتیجه غلط است. and (AND) و $x and $z مانند && عمل می کند ولی دارای اولویت کمتری است. or (or) یا $x or $z مانند || عمل می کند ولی دارای اولویت کمتری است.
18
عملگر نام مثال معادل $x += $z $x= $x + $z $x -= $z $x= $x - $z
عملگرهای ترکیبی عملگر نام مثال معادل += انتساب جمع $x += $z $x= $x + $z -= انتساب تفریق $x -= $z $x= $x - $z *= انتساب ضرب $x *= $z $x= $x * $z /= انتساب تقسیم $x /= $z $x= $x / $z %= انتساب باقیمانده تقسیم $x %= $z $x= $x % $z
19
www.aduelect.ir توابعی در مورد متغیر ها
:Gettype()این تابع نوع متغیر را تعیین می کند. <?php $test1="information"; echo gettype($test1); $test2=34; echo " <br> "; echo gettype($test2); ?> Settype(): این تابع نوع متغیر را عوض می کند. $test=23; echo gettype($test); settype($test,'double');
20
www.aduelect.ir رشته ها یا string ها و کار کردن با انها
در php دو نوع رشته وجود دارد: رشته هایی که در نقل قول دوتایی قرار می گیرند این رشته ها در php به عنوان عبارت در نظر گرفته می شود و ارزیابی می گردد و رشته هایی که در نقل قول تکی قرار می گیرند و در php مورد ارزیابی قرار نمی گیرند. مثال: <?php $a=36; Echo "$a Rials "; Echo '$a Rials'; ?> توضیح: در قسمتی که از نقل قول دو تایی استفاده شده عبارت 36 Rials چاپ می شود و در قسمتی که از نقل قول تکی تایی استفاده شده عبارت $a Rials چاپ می شود و مورد ارزیابی قرار نمی گیرد.
21
www.aduelect.ir الحاق کردن رشته ها:
منظور از الحاق کردن رشته ها پیوند دادن انها با یکدیگر می باشد و یا به عبارتی ترکیب کردن انها با یکدیگر می باشد و این عمل توسط عملگر نقطه (.) انجام می شود. مثال: در این مثال ابتدا دو متغیر $a,$b مقدار دهی شدند سپس با استفاده از عملگر (.) با یکدیگر الحاق شدند و نتیجه در متغیر $c قرار گرفت و در نهایت با اجرا این دستورات نتیجه الحاق شده با دستور echo نمایش داده می شود. <?php $a="chalus "; $b="city"; $c=$a.$b; echo $c; ?>
22
حذف فضای خالی رشته ها: www.aduelect.ir
برای انجام مقایسه ها و یا گرفتن اطلاعات از کاربر معمولا فضا های خالی رشته ها را حذف می کنند برای این کار از توابع زیر استفاده می کنیم. تابع trim() این تابع فضای خالی سمت چپ و سمت راست رشته ای را حذف می کند. trim($s); تابع chop() این تابع فضای خالی سمت راست رشته ای را حذف می کند. chop($s); تابع Itrim() این تابع فضای خالی سمت چپ رشته ای را حذف می کند. Itrim($s);
23
جلسه دوم www.aduelect.ir طراحی فرم ها و پرسش نامه ها کنترل های فرم
کنترل متنی منوهای باز شونده کنترل check Box دکمه های رادیویی radio button دستورات شرطی و ساختارهای تصمیم گیری دستور if دستور else if
24
www.aduelect.ir طراحی فرم ها و پرسش نامه ها
یکی از مهمترین ابزاری که در صفحات وب از ان استفاده می شود فرم ها می باشند که نقش مهمی در صفحات وب دارند و کاربردهای گوناگونی دارند و برای ارتباط برقرار کردن با کاربران و گرفتن اطلاعات از انان با توجه به اطلاعاتی که به ان نیاز داریم و خدماتی که در ان صفحه وب ارائه می شود مورد استفاده قرار می گیرند.برای ایجاد فرم از دستور <form> استفاده می شود که به نحوه استفاده و ساختار ان می پردازیم. دستور <form> برای ایجاد فرم از دستور <form> و </form> استفاده می شود فرم ها دارای عناصر دیگری مانند منوهای بازشونده و فیلدهای متنی و دکمه های رادیویی و.. نیز هستند. مثال: <form name"form1" method = "POST" action = "test.php"> </form> توضیح: این دستور فرمی را به نام form1 بوجود می اورد که اطلاعاتش را به فایلی به نام test.php ارسال می کند و روش ارسال اطلاعات در این فرم post می باشد. در قسمت action ادرس برنامه ای را وارد می کنیم که باید اطلاعات فرم را دریافت کند و پردازش کند و قسمت متد method نیز روش ارسال فرم را تعیین می کند که ان را بیشتر مورد بررسی قرار می دهیم.
25
www.aduelect.ir توضیح انواع متد method :
متد مشخص می کند که فرم ها چگونه به ادرسی که توسط صفت action تعیین شده ارسال شود.برای این صفت می توان دو مقدار get و post را قرار داد. در واقع get و post متدهای html هستند که برای ارتباط بر قرار کردن با سرور از انها استفاده می شود. نکته:اگر صفت متد توسط شما تعیین نشود این صفت به صورت پیش فرض get تنظیم می شود. متد GET: تنظیم صفت متد به صورت GET باعث می شود که اطلاعات وارد شده به انتهای ادرسی که در action تعیین شده افزوده شود و ارسال گردد. متد POST : در صورتی که از متد post استفاده کنید دیگر اطلاعات وارد شده در ادرس URL نمایش داده نمی شود. در این روش می توان داده بیشتری را ارسال نمود در صورتی که در متد GET به دلیل اینکه اطلاعات در انتهای ادرس URL قرار می گیرد محدودیت وجود دارد.
26
www.aduelect.ir دکمه های Reset و Submit
مقدار submit دکمه ای ایجاد می کند که که به وسیله ان محتویات فرم به ادرسی که در صفت action مشخص شده ارسال می شود. توضیح: در قسمت type نوع ان را submit یا reset تعیین می کنیم و در قسمت value عنوان این دکمه را تعیین می کنیم. <input type="submit" value="send"> <input type="reset" value="reset">
27
www.aduelect.ir کنترل های فرم
کنترل متنی: جعبه های متنی از جمله کنترل هایی هستند که طول انها یک خط است و در اغلب فرم های html به کار می روند که کاربران می توانند در ان عبارتی را تایپ کنند به طور مثال نام افراد در ان وارد می شود. برای ایجاد کنترل متنی از دستور input استفاده می شود که مقدار صفت type ان را text قرار می دهیم. مثال: <input type="text" name="name" size= "50"> فیلد متنی چند خطی: در مواقعی که نیاز می شود تا کاربر متن چند خطی در فرم وارد کند از فیلد متنی چند خطی استفاده می شود. <textarea rows="6" cols="20" name="textarea"> Please enter your address </textarea> توضیح: در این دستور برای تعیین تعداد سطر های متن از صفت rows و برای تعیین تعداد ستونها از از صفت cols استفاده می شود.
28
مثال: این دستورات فرمی را ایجاد می کند که نام را از طریق جعبه متنی دریافت می کند و اطلاعات را به فایل 2.php ارسال می کند. <html> <head> <title>New document</title> </head> <body> <form method = "GET" action = " who is your best friend? <input name="friend" type="text"> <br> <input type="submit" value="submit"> </form> <?php ?> </body> </html>
29
www.aduelect.ir <html> <head>
<title>New document</title> </head> <body> your friend= <?php echo $_GET["friend"]; ?> </body> </html> توضیح: این دستورات فایل دیگری را به وجود می اورند تا اطلاعات را از فرم ایجاد شده دریافت کند و ان را به همراه یک جمله نمایش دهد.
30
www.aduelect.ir منوهای باز شونده
برای ایجاد منوهای باز شونده از دستور <select> و </select> استفاده می شود این دستور شامل یک یا چند option است که گزینه های منو باز شونده را تعیین می کند. مثال: <select name="type" <option>programing <option >networking <option >graphic <option >learning</option>
31
مثال: این دستورات فرمی را ایجاد می کند که در ان یک list box قرار دارد و کاربر می تواند از طریق ان یک عدد را انتخاب کند.این اطلاعات به فایل 2.php ارسال می شود. <html> <head> <title>New document</title> </head> <body> <form method = "POST" action = " please select one number... <br> <select name="select"> <option >21 <option >31 <option >41 </select> <input type="submit" value= "send"> </form> </body> </html>
32
www.aduelect.ir <html> <head>
<title>New document</title> </head> <body> <?php echo "your select is :$_POST[select]\n"; ?> </body> </html> توضیح: این دستورات فایل دیگری را به وجود می اورند تا اطلاعات را از فرم ایجاد شده دریافت کند و ان را به همراه یک جمله نمایش دهد.
33
www.aduelect.ir کنترل check Box
این کنترل نیز با استفاده از دستور input ایجاد می شود. کنترل checkbox این امکان را ایجاد می کند تا کاربر بتواند برای تایید مسئله ای بر روی ان کلیک کند و ان را فعال کند و یا برای عدم تایید ان را غیر فعال کند. مثال: <html> <head> <title>New document</title> </head> <body> <form method="POST" action=" are u over 18 years old? <input name="choice" type="checkbox"> <br> <input type="submit" value="send"> </form> </body> </html>
34
www.aduelect.ir <html> <head>
<title>New document</title> </head> <body> <?php echo $_POST["choice"]; ?> </body> </html> توضیح: این دستورات فایل دیگری را به وجود می اورند تا اطلاعات را از فرم ایجاد شده دریافت کند و ان را به همراه یک جمله نمایش دهد.
35
www.aduelect.ir دکمه های رادیویی radio button
این کنترل نیز شبیه کنترل checkbox است با این تفاوت که در فرمها باید از چندین دکمه رادیویی تنها یکی را کلیک کرده وانتخاب کنیم.معمولا زمانی بکار برده می شود که کاربر باید از چند گزینه یکی را انتخاب کند. مثال: <input name="R1" type="radio" value="first"> شما می توانید با دستور زیر برای دکمه رادیویی انتخاب پیش فرض تعیین کنید یعنی قبل از اینکه کاربر یکی از دکمه های رادیویی را کلیک کند یکی از انها در حالت انتخاب شده باشد. <input name="R2" type="radio" value="second" checked> نکته: شما می توانید در یک فرم چندین دکمه رادیویی با نام یکسان به وجود اورید و کاربر در جواب فقط می تواند یکی از انها را انتخاب کند.
36
مثال: این دستورات فرمی را ایجاد می کند که دارای 3 دکمه رادیویی همنام می باشد که کابر می تواند یکی از انها را انتخاب کند سپس اطلاعات به فایل 2.php ارسال می شود. <html> <head> <title>New document</title> </head> <body> <form method ="GET" action =" select the best software company.... <br> <input name="R" type="radio" value="microsoft"> microsoft <br> <input name="R" type="radio" value="Adobe" > Adobe <br> <input name="R" type="radio" value="GolsarGroup" checked >GolsarGroup<br> <input type="submit" value="send"> </body> </html>
37
www.aduelect.ir <html> <head>
<title>New document</title> </head> <body> <?php echo "the best company is GolsarGroup but you choose: $_GET[R]"; ?> </body> </html> توضیح: این دستورات فایل دیگری را به وجود می اورند تا اطلاعات را از فرم ایجاد شده دریافت کند و ان را به همراه یک جمله نمایش دهد.
38
www.aduelect.ir <html> <head>
<title>New document</title> </head> <body> <form method = "POST" action = " please enter the quantity..<br> <br> C++ <input name="c++" type="text"> adobe photoshop<input name="adobephotoshop" type="text"> Qbasic<input name="Qbasic" type="text"> <input type="submit" value="submit"> <input type="reset" value="reset"> </form> <?php ?> </body> </html> ایجاد یک فرم سفارش با دستوراتی که خواندید.
39
www.aduelect.ir <html> <head>
<title>New document</title> </head> <body> <?php $sum=$_POST['c++'] + $_POST['adobephotoshop'] + $_POST['Qbasic']; $price=$_POST['c++']* $_POST['adobephotoshop']* $_POST['Qbasic']*3500; echo 'Quantity:'.$sum.'<br>'; echo 'price:'.$price; ?> </body> </html> توضیح: این دستورات فایل دیگری را به وجود می اورند تا اطلاعات را از فرم ایجاد شده دریافت کند و این اطلاعات را پردازش کند و خروجی را که قیمت کل و تعداد کتابها می باشد را نمایش دهد.
40
www.aduelect.ir روش اول: If (شرط ) } دستورات; روش دوم: If ( شرط ) {
Else
41
www.aduelect.ir <html> <head> مثال:
<title>New document</title> </head> <body> <form method= "POST" action =" please enter the quantity...<br> <br> C++ <input name="c++" type="text"> adobe photoshop<input name="adobephotoshop" type="text"> Qbasic<input name="Qbasic" type="text"> <input type="submit" value="submit"> <input type="reset" value="reset"> </form> <?php ?> </body> </html> مثال:
42
www.aduelect.ir <html> <head>
<title>New document</title> </head> <body> <?php $sum=$_POST['c++'] + $_POST['adobephotoshop'] + $_POST['Qbasic']; $price=$_POST['c++']* $_POST['adobephotoshop']* $_POST['Qbasic']*3500; if ($price>5000) { $takhfif=$price-100; } else $takhfif=0; $price=$price-$takhfif; echo 'Quantity:'.$sum.'<br>'; echo 'price:'.$price.'<br>'; echo 'takhfif:'.$takhfif; ?> </body> </html>
43
www.aduelect.ir تعریف جدول
برای تعریف جدول در html از دستور </table> <table> استفاده می کنیم که سطرهای ان با دستور </tr> <tr> مشخص می شود و همچنین عنوان ها توسط دستور </th> <th> و اطلاعات درون خانه های جدول توسط دستور </td> <td> مشخص می شود. <body> <table border="1" width="100%" height="131"> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <td>4</td> <td>5</td> <td>6</td> <td>7</td> <td>8</td> </table> </body>
44
تمرین: الف) برنامه ای بنویسید که در یک صفحه وب فرمی را ایجاد کند که در ان نام کتابهایی لیست شود و برای هر کدام جعبه متنی تعریف کنید تا کاربر بتواند تعداد کتاب هایی را که نیاز دارد در ان وارد کند و اطلاعات گرفته شده را به فایلی ارسال کنید. ب) برنامه ای بنویسید و صفحه وبی به وجود اورید که اطلاعاتی را که از فرم طراحی شده در الف ارسال شده را دریافت کند و نام کتابها و مجموع تعداد کتابهای انتخاب شده توسط کاربر را چاپ نماید و همچنین برای هر کتاب قیمتی در نظر بگیرید و مجموع قیمت را نیز محاسبه کنید و به همراه مجموع تعداد کتاب ها ؛ مجموع قیمت را نیز چاپ کند. ج) در فایل دوم که در قسمت ب ایجاد کردید دستوراتی بنویسید که در صورتی که کاربر بیش از 5 کتاب را انتخاب نمود و مجموع بهایی که باید بپردازد بیش از تومان بود برای کاربر 2000 تومان تخفیف در نظر بگیرید در نهایت مجموع پول پرداختی را با تخفیف نمایش دهید.
45
جلسه سوم www.aduelect.ir تابع چیست؟ تعریف و فراخوانی تابع دستور switch
دستور while دستور do while دستور for دستور break , continue , exit آرایه ها تابع چیست؟ تعریف و فراخوانی تابع
46
www.aduelect.ir دستور switch
Switch (variable) { Case 1: …statments Break; Case 2: …statements Case 3: Default: }
47
<html> <head> </head> <body> <?php $name="nina"; switch ($name) { case 'ali' : echo '<p> your name is ali.<p>'; break; case 'amir' : echo '<p> your name is amir.<p>'; case 'nina' : echo '<p> your name is nina.<p>'; default: echo '<p> what is your name?.<p>'; } ?> </body> </html> مثال: با توجه به مقدار متغیر $name دستور مناسب اجرا می شود.
48
مثال: این دستورات صفحه ای را ایجاد می کند که کاربر در ان از یک منوی باز شونده از بین چند گزینه ؛ گزینه ای را انتخاب می کند که از طریق ان با سایت اشنا شده است. <html> <head> <title>New document</title> </head> <body> <form action=" method=post> <h5> please select a level for our site </h5> <select name = "level"> <option value = "a"> BAD <option value = "b"> Good <option value = "c"> Very Good <option value = "d"> excellent </select </form> <br> <input type="submit" value= "send"> </body> </html></html>
49
www.aduelect.ir این دستورات فایل دیگری را به وجود می اورند تا اطلاعات
<html> <body> <?php switch ($_POST['level']) { case 'a' : echo '<p> BAD <p>'; break; case 'b' : echo '<p> GOOD <p>'; case 'c' : echo '<p> Very Good <p>'; case 'd' : echo '<p> excellent <p>'; default: echo '<p> you dident choice! <p>'; } ?> </body> </html> توضیح: این دستورات فایل دیگری را به وجود می اورند تا اطلاعات را از فرم ایجاد شده دریافت کند و این اطلاعات را پردازش کند و پیغام مناسب را با توجه به انتخاب کاربربا دستور switch چاپ کند.
50
www.aduelect.ir ساختار های تکرار
در بسیاری از موارد دستورات ماهیت تکراری دارند و برای پیاده سازی انها به ساختارهای تکرار نیاز داریم. در php سه نوع ساختار تکرار به نام های while , do while , for وجود دارند . دستور while یکی از ساختارهای تکرار در php حلقه تکرار while می باشد و زمانی مورد استفاده قرار می گیرد که تعداد دفعات اجرای دستورات مشخص نیست. While (شرط) { Statement1; … Statement2; } توضیح: ابتدا شرطی که تعیین شده مورد بررسی قرار می گیرد و در صورت درست بودن دستورات داخلی ساختار while اجرا می شود و بعد از اجرای دستورات دوباره شرط بررسی می شود و در صورت درست بودن دوباره دستورات اجرا می شود و اگر شرط برقرار نباشد برنامه از حلقه خارج می شود.
51
مثال: این برنامه مقدار بنزین مصرفی خودرو پراید را از 0 تا 1000 کیلومتر را بر حسب لیتر نمایش می دهد.
<?php $km =100; while ($km <= 1000 ) { echo $km; echo "==>"; $litr=$km / 100; $litr=$litr * 7; echo $litr; echo '<br>'; $km=$km + 100; } ?>
52
www.aduelect.ir دستور do while
این دستور نیز مانند دستور while است تفاوت ان در بررسی شرط است در دستور while ابتدا شرط بررسی می شد و دستورات اجرا می شد در صورتی که در do- while ابتدا یکبار دستورات اجرا می شود سپس شرط مورد بررسی قرار می گیرد اگر شرط برقرار بود حلقه ادامه پیدا می کند در غیر اینصورت برنامه از حلقه خارج می شود. do { Statement1; . Statement2; } While (شرط )
53
www.aduelect.ir دستور for
For ($i=0;$i<10;$i++) { . Statements }
54
www.aduelect.ir <htmL> <body>
مثال: این دستورات فرمی را ایجاد می کند و از کاربر تعداد تخصص های او را سوال می کند و با توجه به تعداد مهارتهای کاربر برای او textbox نمایش می دهد تا او مهارتهای خود را در ان وارد کند. <htmL> <body> <form method = post action =" How many PROFICIENCY do you have? <input name ="a" type="Text" size="4"> <br> <input type = submit value="send"> </form> </body> </html>
55
www.aduelect.ir <html> <body> <?php $Num = $_POST['a'];
for ($counter=0; $counter < $Num; $counter++) { echo "<br><br> Please enter the name of your PROFICIENCY: <br>"; echo "<input name = b type = text>"; } ?> <br> </body> </html> توضیح: این دستورات فایل دیگری را به وجود می اورند تا اطلاعات را از فرم ایجاد شده دریافت کند و این اطلاعات را پردازش کند و با توجه به مقداری که کاربر در فرم وارد کرده textbox ایجاد می کند.
56
www.aduelect.ir دستور break
این دستور برای خروج از حلقه بکار می رود همانطور که مشاهده کردید در دستور switch نیز مورد استفاده قرار گرفت. دستور exit این دستور زمانی استفاده میشود که می خواهید اجرای برنامه را متوقف کنید بطور مثال زمانی که خطایی رخ می دهد.
57
مثال: این دستورات برنامه ای را ایجاد می کند که از کاربر مقدار سن او را میگیرد و اگر سن او بیشتر از 100 سال باشد به او اعلام می کند سنش از حد مجاز خارج هست وبرنامه خاتمه میابد. <htmL> <body> <form action=" method=post> name <input type="text" name="name" size="3"> age <input type="text" name="age" size="3"> <input type="submit" value="send"> </form> </body> </html>
58
www.aduelect.ir <html> <body> <?php $a = $_POST['age'];
$n = $_POST['name']; if ($a < 1 || $a > 100 ) { echo "Age $a is out of range"; exit; } else echo "Age $a is in range"; echo "<br> Name is $n and Age is $a"; ?> </body> </html>
59
تمرین: صفحه ای را طراحی کنید که فرمی مانند فرم زیر در ان قرار داشته باشد این اطلاعات را به فایلی دیگر ارسال کنید تا مورد پردازش قرار گیرد. سپس با توجه به مسافتی که کاربر تعیین کرده و با فرض اینکه هر 100 کیلومتر به 7 لیتر بنزین نیاز داریم محاسبه نمایید که برای طی کردن مسافت تعیین شده چه مقدار بنزین نیاز داریم و در نهایت مشخصات کاربر و بنزین مصرفی را چاپ کنید.
60
www.aduelect.ir آرایه ها
در برنامه های قبلی که نوشتیم برای ذخیره داده ها از متغیر ها استفاده می کردیم که تنها یک مقدار را در خود ذخیره می کردند. حال ساختار ارایه ها را مرور می کنیم و طریقه استفاده از ان را شرح می دهیم. هر ارایه دارای چند عنصر است که هر عنصر می تواند حاوی مقداری باشد در php ارایه ها به دو دسته تقسیم می شوند: 1. ارایه های با اندیس عددی 2. ارایه ها با اندیس انجمنی ارایه با اندیس عددی ارایه ای می باشد که برای دستیابی به عناصر ان ها از یک اندیس عددی استفاده می شود و ارایه های انجمنی ارایه ای می باشد که اندیس دستیابی به عناصر ارایه می تواند غیر عددی باشد.
61
در ارایه با اندیس عددی برای دستیابی به عناصر ارایه از یک اندیس عددی استفاده می شود اولین اندیس ارایه در php صفر است. مثال: اگر $test یک ارایه با طول 6 باشد عناصر ان به صورت زیر خواهد بود. $test $test[0] $test[1] $test[2] $test[3] $test[4] $test[5] 5 6 7 8 9 10 برای ایجاد ارایه از دستور array استفاده می کنیم. $test=array(5,6,7,8,9,10); با دستور انتساب نیز می توان ارایه تعریف کرد و به عناصر ارایه مقدار داد. $test[0]=5; $test[1]=6; $test[2]=7; $test[3]=8; $test[4]=9; $test[5]=10;
62
حلقه تکرار و ارایه www.aduelect.ir
برای بازیابی و مشاهده مقادیر از ارایه نیز به صورت زیر عمل می کنیم: echo $test[0]; echo $test[1]; echo $test[2]; حلقه تکرار و ارایه برای دستیابی به عناصر ارایه از اندیس استفاده می شود چون در ارایه با اندیس عددی؛ اندیس ها به صورت دنباله ای از اعداد می باشند با یک حلقه تکرار می توان به سادگی به تمام عناصر ارایه دست یافت. <?php $test=array(5,6,7,8,9,10); for ($i=0;$i<6;$i++) { echo "$test[$i]"; echo " <br> "; } ?>
63
<?php $test=array(5,6,7,8,9,10); $i=0; while ($i<6) {
echo "$test[$i]"; echo " <br> "; $i++; } ?>
64
مثال:در این صفحه کاربر مشخصات خود را در فرم وارد می کند و این مشخصات در ارایه info قرار می گیرد و به صفحه 2.php ارسال می شود. <htmL> <body> <form method = post action ="2.php"> name: <input name =" info[] " type="Text" size="10"> <br> family: <input name =" info[] " type="Text" size="30"> <input type = submit value="Send"> </form> </body> </html>
65
for ($i=0; $i < 3; $i++) { echo "$info[$i]"; echo " <br> "; }
<?php $info = $_POST['info']; for ($i=0; $i < 3; $i++) { echo "$info[$i]"; echo " <br> "; } ?>
66
www.aduelect.ir تابع چیست؟
اگر شما برنامه ای بنویسید که در چندین قسمت برای انجام کاری از کدهای تکراری استفاده کنید اینکار باعث نوشتن کدهای اضافی می شود و علاوه بر اینکه شما برای نوشتن انها زمان بیشتری نیاز دارید ؛ اینکار باعث پیچیدگی برنامه می شود. برای بالا بردن سطح خوانایی برنامه؛ برنامه را به چندین قسمت کوچک تبدیل می کنند که به ان تابع گفته می شود و هر جا که برنامه نویس به تابع خاصی نیاز داشته باشد انرا فراخوانی می کند و تابع اطلاعاتی را تحت عنوان ارگمان دریافت می کند و محاسباتی بر روی ان انجام می دهد و خروجی را تحویل می دهد و نیازی به نوشتن دوباره دستورات نیست. مزایای استفاده از تابع: 1.می توان یک برنامه بزرگ را که برای نوشتن ان به زمان زیادی نیاز است ؛ به توابع مختلف تقسیم کرد و چندین برنامه نویس با هم همکاری کنند. 2.توابع یکبار نوشته می شوند و چندین بار مورد استفاده قرار می گیرند. 3.رفع خطاهای برنامه سریع تر و راحت تر انجام می گیرد. 4.طراحی و پیاده سازی توابع راحت تر و ساده تر است.
67
Function function-name (ارگومان) { Statements; Return; }
انواع توابع : 1.توابعی که که به صورت اماده در php وجود دارند. 2.توابعی که توسط کاربران با توجه به نیازیشان می نویسند. نحوه تعریف تابع: Function function-name (ارگومان) { Statements; Return; } توضیح: برای تعریف تابع از عبارت function استفاده می کنیم و سپس نام تابع را وارد می کنیم؛ برای وارد کردن نام تابع بر خلاف متغیرها در php نباید از $ استفاده کنیم. اگر تابع باید اطلاعاتی را به عنوان ورودی دریافت کند باید متغیرهایی را به عنوان پارامتر تعریف کنید.برای تعریف پارامترها نیز مانند تعریف متغیرها عمل می کنیم و برای تعریف چند پارامتر بین انها از کاما استفاده می کنیم.قسمت return قسمت پایانی تابع می باشد و اگر قرار باشد تابع مقداری را برگشت دهد باید نام ان پارامتر را جلوی return بنویسید.
68
مثال: در این تابع هیچ مقداری را برگشت ندادیم و تنها دستوراتی را اجرا کردیم.
Function test($a,$b) { $sum=$a*$b; Echo $sum; } مثال: در این تابع پس از دریافت پارامتر $a محاسباتی انجام شد و این پارامتر برگشت داده شد. Function test($a) { $a=$a+7+24; Return $a; } نکته 1: همچنین تابع می تواند بدون پارامتر باشد و بدون گرفتن ورودی محاسباتی را انجام دهد. نکته 2: توابع را هر جای برنامه که بخواهید می توانید معرفی کنید ولی معمولا توابع را در ابتدا قبل از بدنه اصلی برنامه و یا در اخر پس از دستورات بدنه برنامه تعریف می کنند.
69
www.aduelect.ir فراخوانی تابع:
تابع تا زمانی که فراخوانده نشود اجرا نمی شود و برای اجرای دستورات یک تابع باید انرا با توجه به ارگمان های ان فراخوانی کنید. Function-name(ارگومان); به طور مثال اگر بخواهیم تابع test را فراخوانی کنیم بصورت زیر عمل می کنیم: $a=3; $sum=test($a); Echo $sum; توضیح: در ابتدا متغیر $a مقدار دهی شد سپس متغیری با نام $sum ایجاد کردیم و تابع test را با مقدار $a فراخوانی کردیم؛ پس از اجرا شدن تابع مقدار برگشتی تابع در متغیر $sum قرار می گیرد و در نهایت هم متغیر $sum را چاپ کردیم.
70
www.aduelect.ir تابع test را به شکلهای دیگری نیز می توان فراخوانی کرد.
مثال: $sum=test(24) Echo $sum; مثال: $a=24; Echo test($a); مثال: Echo test(24);
71
مثال: این دستورات صفحه ای را ایجاد می کند که کاربر در ان از یک منوی باز شونده از بین چند گزینه ؛ گزینه ای را انتخاب می کند که از طریق ان با سایت اشنا شده است. <html> <head> <title>New document</title> </head> <body> <form action=" method=post> <h5> please select a level for our site </h5> <select name = "level"> <option value = "a"> BAD <option value = "b"> Good <option value = "c"> Very Good <option value = "d"> excellent </select </form> <br> <input type="submit" value= "send"> </body> </html></html>
72
www.aduelect.ir این دستورات فایل دیگری را به وجود می اورند تا اطلاعات
<?php $a=$_POST['level']; function choice($a) { switch ($a) case 'a' : echo '<p> BAD <p>'; break; case 'b' : echo '<p> GOOD <p>'; case 'c' : echo '<p> Very Good <p>'; case 'd' : echo '<p> excellent <p>'; default: echo '<p> you dident choice! <p>'; break; } } choice($a); ?> توضیح: این دستورات فایل دیگری را به وجود می اورند تا اطلاعات را از فرم ایجاد شده دریافت کند و این اطلاعات را پردازش کند. همانطور که مشاهده می کنید در این برنامه دستورات در یک تابع قرار گرفته است قبل از تعریف تابع برای واضح تر بودن برنامه مقداری را که از طریق منوی بازشو در فایل قبلی ارسال شده را در متغیر $a قرار دادیم و سپس تابع choice در برنامه تعریف شد که دارای یک ارگومان به نام $a است.پس از تعریف تابع در پایان تابع choice را با مقدار $a فراخوانی کردیم.
73
جلسه چهارم طول عمر و حوزه متغیر ها متغیرهای ایستا استفاده کردن از فایلها در برنامه کاربرد استفاده و ضمیمه کردن فایل ذخیره و بازیابی داده ها
74
www.aduelect.ir طول عمر و حوزه متغیر ها
از زمانی که به یک متغیر حافظه اختصاص داده می شود و تا زمانی که این حافظه از ان گرفته شود را طول عمر متغیر می گویند. هر متغیر علاوه بر طول عمر دارای یک حوزه می باشد که در واقع حوزه متغیر جاهایی است که می توان از متغیر تعریف شده استفاده کرد. حوزه های متغیر در php عبارتند از: 1.متغیرهای محلی: این متغیرها در داخل تابع تعریف می شوند و حوزه انها در داخل تابع است و تنها در ان تابع قابل استفاده هستند. 2.متغیرهای عمومی: این متغیرها در داخل برنامه یا صفحه تعریف می شوند و حوزه انها در داخل ان صفحه است و در سراسر برنامه به جز داخل توابع قابل استفاده می باشند.
75
3.متغیرهای عمومی در داخل تابع که به صورت global تعریف می شوند:
فرض کنید یک متغیر با نام $test در برنامه تعریف کردید و یک تابع به نام sina() در برنامه تعریف کردید. شما نمی توانید از متغیر $test در داخل تابع استفاده کنید ؛ برای استفاده کردن از متغیر های عمومی که در داخل تابع باید از دستور global استفاده کنید. مثال: $test=“name”; Function sina($a,$b,$c); { Statements … Global $test; }
76
www.aduelect.ir 4.متغیر های فرا عمومی:
این متغیرها ؛ متغیر هایی هستند که از قبل تعریف شده اند و در هر جای برنامه که بخواهید می توانید از انها استفاده کنید البته توجه داشته باشید که این متغیر ها توسط کابر تعریف نمی شود و از قبل در php تعریف شده اند. از جمله متغیر های فرا عمومی می توان متغیر های $GET,$POST را نام برد که در جلسات قبل با ان اشنا شدید.
77
www.aduelect.ir متغیرهای ایستا:
در داخل توابع می توان متغیرهای ایستا را نیز تعریف کرد حوزه این متغیرها در داخل تابع است ولی دارای طول عمر بیشتری هستند و با از بین رفتن تابع از بین نمی روند و مقدار خود را حفظ می کنند و زمانی که تابع دوباره فراخوانی شد می توان از مقدار قبلی که در ان ثبت شده استفاده کرد توجه داشته باشید با این حال که این متغیرها با پایان یافتن تابع از بین نمی روند و مقدار خود را حفظ می کنند ولی خارج از تابع نمی توان از ان استفاده کرد و نکته دیگر اینکه فقط شما یکبار می توانید به این نوع توابع مقدار اولیه بدهید. مثال: <?php function test() { static $a = 1; $b = 1; echo "a = " . $a . ' '."b = " . $b . '<br>'; $b ++; $a ++; } for($i = 0; $i < 10; $i++) test(); ?>
78
ضمیمه کردن فایلها به برنامه
یکی از امکانات خوب در php می باشد که به وسیله ان می توان برنامه ها را به خوبی سازماندهی کرد.مثلا شما می توانید یک یا چند فایل متنی داشته باشید که بخواهید در قسمتهای مختلف وب سایت خود از ان استفاده کنید. برای ضمیمه کردن فایلها از دستور require() یا include() می توانید استفاده کنید. require(‘مشخصات’); include(‘مشخصات’); توضیح: در قسمت مشخصات فایل باید نام فایل و نوع فایل و ادرس فایل را وارد کنید. مثال: Require(‘test.txt’); Include(‘test.txt’); توضیح: با اجرای یکی از این دستورات فایل test.txt با توجه به محتویات ان مورد پردازش قرار می گیرد و اگر حاوی متن ساده باشند ان متن را نمایش می دهد.
79
www.aduelect.ir تفاوت include() require() ,
تفاوت این دو دستور در این است که اگر اگر در دستور require() فایل مورد نظر پیدا نشود تا ضمیمه گردد پیام خطای fatal error رخ می دهد ولی در دستور include() فقط یک warning یا اخطار صادر می شود. کاربرد استفاده و ضمیمه کردن فایل: یکی از کاربردهای ضمیمه کردن فایلها استفاده کردن از انها در قسمت سرصفحه و پا صفحه می باشد که شما می توانید با قرار دادن دستورات در یک فایل و ضمیمه کردن ان در تمام صفحات ؛ در صفحه به جای نوشتن تمام دستورات فایلی را به برنامه ضمیمه کنید تا دستورات ان اجرا شود.
80
www.aduelect.ir ادامه در صفحه بعد
مثال: دستورات زیر را در یک فایل تایپ کنید و ذخیره کنید تا این فایل را به عنوان سر صفحه ضمیمه کنیم. <table border="1" width="100%" height="238"> <tr> <td> <p dir="ltr"> <img border="0" src="B6.jpg" width="770" height="122"> </td> </tr> <object classid="clsid:D27CDB6E-AE6D-11CF-96B " id="obj1" codebase=" border="0" width="772" height="160"> <param name="movie" value="banner-golsar.swf"> <param name="quality" value="High"> <embed src="banner-golsar.swf" pluginspage=" type="application/x-shockwave-flash" name="obj1" width="772" height="160"></object> </table> ادامه در صفحه بعد
81
www.aduelect.ir <table border="1" width="100%"> <tr>
مثال: دستورات زیر را در یک فایل تایپ کنید و ذخیره کنید تا این فایل را به عنوان پا صفحه ضمیمه کنیم. <table border="1" width="100%"> <tr> <td> <p dir="ltr"> <b> <font size="4"> Copyright © 2007 GolsarGroup.com . All rights reserved Best viewed in IE5+1024*768 32bit colors </font> </b> </td> </tr> </table>
82
برای اینکه سر صفحه و پا صفحه را ضمیمه کنیم باید دستورات زیر را در صفحه اصلی تایپ کنید.
<?php require('header.txt'); echo "Welcome"; require('foter.txt'); ?>
83
www.aduelect.ir ارتباط php با mysql : مراحل تقاضا از بانک اطلاعاتی
برای دستیابی به بانک اطلاعاتی در صفحه وبی که طراحی می کنید باید مراحل زیر انجام شود: 1.بررسی و فیلتر کردن داده ها ی کاربر 2.برقراری اتصال با سرور mysql 3.انتخاب بانک اطلاعاتی 4.انجام تقاضا از بانک اطلاعاتی 5.بازیابی نتایج تقاضا 6.ارسل نتایج به کاربر 7.بستن اتصا ل
84
www.aduelect.ir برقراری اتصال با سرور mysql :
برای برقراری اتصال برقرار کردن با سرور mysql از تابع mysql_connect() استفاده می شود. $db=mysql_connect('host', 'user','pass'); توضیح: در قسمت اول نام میزبان و در قسمت دوم نام کاربر بانک اطلاعاتی و در قسمت سوم کلمه عبور را وارد می کنیم.نتیجه تابع در متغیر $db قرار می گیرد. نکته: پس از اجرای دستور mysql_connect() باید بررسی کنیم که ایا اتصال برقرار شده یا خیر. <?php $db= mysql_connect('localhost','root',''); if (!$db) { echo ‘ Error:connection failed'; exit; } else echo 'connected'; ?>
85
www.aduelect.ir انتخاب بانک اطلاعاتی
برای کار کردن با بانک اطلاعاتی پس از بر قراری ارتباط باید بانک اطلاعاتی مورد نظر را انتخاب کنید برای انتخاب بانک اطلاعاتی باید از تابع mysql_select_db() استفاده کنیم. mysql_select_db('dbname'[,serverconnection]); Dbname نام بانک اطلاعاتی است که می خواهید باز شود و serverconnection متغیر اتصال php با سرور mysql می باشد.
86
www.aduelect.ir انجام تقاضا از بانک اطلاعاتی
برای انجام اعمال مختلف بر روی بانک اطلاعاتی مانند بازیابی ؛ تغییر؛ اضافه کردن رکوردها به جدول؛ و... باید مراحل زیر را انجام دهید. 1.بوجود اوردن رشته تقاضای مورد نظر با توجه به عملی که می خواهید انجام دهید. مثال: $test="select * from t1"; 2.اجرای تقاضایی که بوجود اوردید با استفاده از تابع mysql_query() به صورت زیر: $result=mysql_query($test[,$db]); توضیح: $test رشته تقاضایی می باشد که شما ایجاد کرده بودید و $db نام اتصال به سرور می باشد پس از اجرای دستور نتایج در $result قرار می گیرد.
87
www.aduelect.ir بازیابی نتایج تقاضا
پس از انجام تقاضا نتایج در متغیری که انرا با دستور تقاضا انتساب کردید قرار می گیرد حالا باید داده ها را از ان متغیر بازیابی کنید برای بازیابی داده ها توابع مختلفی وجود دارد. تابع mysql_num_rows() : این تابع مشخص می کند که چند رکورد توسط تقاضا برگردانده شده. $num=mysql_num_rows($result); نکته: با استفاده از این تابع می توانید تعداد رکوردهایی را که در نتیجه تقاضا بدست امده را بیابید و با استفاده از یک حلقه for رکوردهای نتیجه را بازیابی کنید.
88
www.aduelect.ir تابع mysql_fetch_row :
این تابع سطری را از متغیر حاصل تقاضا را بر می گرداند و در ارایه ای ذخیره می کند. $row=mysql_fetch_row($result); تابع mysql_affected_rows() : این تابع مشخص می کند چند سطر تحت تاثیر دستورات insert , update , delete قرار گرفته اند. بستن اتصا ل: بعد از اتصال و استفا ده کردن از سرور mysql باید اتصال خود را قطع کنید برای این کار از دستور mysql_close() به صورت زیر استفاده کنید. Mysql_close($db);
89
مثال: صفحه ای طراحی می کنیم که اطلاعاتی را از کاربر بگیرد و اطلاعات را در بانک اطلاعاتی test
که قبلا در mysql ایجاد کردیم وارد کند و پس از وارد کردن اطلاعات پیغامی را صادر کند. <html> <body> <form method = "post" action = " <b>name</b> <input type = "text" name = "name" size = "13"> <b>fname</b> <input type = "text" name = "fname" size = "20"> <input type = "submit" value = "Submit"></b> </body> </html>
90
توضیح: در این صفحه اطلاعاتی ارسالی از فرم دریافت می شود و مورد پردازش قرار می گیرد.
<?php $name = $_POST['name']; $fname = $_POST['fname']; if (strlen($name) == 0 or strlen($fname) == 0) { echo "please check your information you didn't enter your name or family name"; exit; } $connect= mysql_connect('localhost','root',''); if(!$connect) echo " Error : cannot open connection."; mysql_select_db('test'); $query = " insert into t1 (name,fname) values ('".$name."', '". $fname."')"; $result = mysql_query($query); if($result) echo mysql_affected_rows(). '<b> record inserted into database.</b>'; mysql_close($connect); ?>
91
www.aduelect.ir <html> <body> <table border = "1" >
مثال:در این مثال رکوردهای موجود در بانک اطلاعاتی test و در جدول t1 را بازیابی می کند و با استفاده از دستورات html رکوردها را در یک جدول به کاربر نمایش می دهد. <html> <body> <table border = "1" > <tr> <th> Name</th> <th> Family Name</th> </tr> <?php $db= mysql_connect('localhost','root',''); if(!$db) { echo " Error : cannot open connection."; exit; } mysql_select_db('test'); $query = "select * from t1"; $result = mysql_query($query); if(!$result) echo "Query not executed.";
92
www.aduelect.ir $num = mysql_num_rows($result);
ادامه $num = mysql_num_rows($result); for($i = 0; $i < $num; $i ++) { $row = mysql_fetch_row($result); echo '<tr>'; echo "<td><b> $row[0]</b> </td>"; echo "<td><b> $row[1]</b> </td>"; echo '</tr>'; } mysql_close(); ?> </table> </body> </html>
93
www.aduelect.ir <html> <head>
مثال:در این مثال یک صفحه رای گیری طراحی می کنیم که رای ها را از کاربران دریافت می کند و و در بانک اطلاعاتی ذخیره می کند و مجموع رای ها از بانک اطلاعاتی دریافت می کند و نمایش می دهد. طراحی صفحه اصلی <html> <head> <title> New document</title> </head> <body> <h3> <form method ="GET" action =" please select a level for our website.... <br> <input name="R" type="radio" value="bad"> bad <br> <input name="R" type="radio" value="good" > Good <br> <input name="R" type="radio" value="excellent" checked >excellent<br> <input type="submit" value="send"> <a href=" </h3> </body> </html>
94
www.aduelect.ir <html> <head>
طراحی صفحه دوم:رای را از فرم صفحه اصلی دریافت میکند و تغییرات لازم را در بانک اطلاعات انجام می دهد. <html> <head> <title> New document</title> </head> <body> <?php $ray=$_GET['R']; $db= mysql_connect('localhost','root',''); if(!$db) { echo " Error : cannot open connection."; exit; } mysql_select_db('ray'); $query = "select * from ray"; $result = mysql_query($query); if(!$result) echo "Query not executed.";
95
www.aduelect.ir } $row = mysql_fetch_row($result); $bad=$row[0];
$good=$row[1]; $excellent=$row[2]; switch ($ray) { case 'bad' : $bad=$bad+1; break; case 'good' : $good=$good+1; case 'excellent' : $excellent=$excellent+1; default: echo '<p> you dident choice! <p>'; break; }
96
www.aduelect.ir mysql_select_db('ray');
$query = " UPDATE ray SET bad='$bad', good='$good', excellent='$excellent';"; $result = mysql_query($query); if($result) echo '<b> record inserted into database.</b>'; mysql_close($db); ?> <p><a href=" </body> </html>
97
www.aduelect.ir <html> <head>
<title> New document</title> </head> <body> <?php $db= mysql_connect('localhost','root',''); if(!$db) { echo " Error : cannot open connection."; exit; } mysql_select_db('ray'); $query = "select * from ray"; $result = mysql_query($query); if(!$result) echo "Query not executed."; طراحی صفحه سوم: این صفحه نتایج امار را نمایش می دهد.
98
www.aduelect.ir $row = mysql_fetch_row($result); $bad=$row[0];
$good=$row[1]; $excellent=$row[2]; echo "<h1><center>BAD= $bad<br>Good=$good<br>excellent=$excellent</h1>"; mysql_close($db); ?> <p><a href=" </body> </html>
99
تمرین: الف) بانک اطلاعاتی در mysql ایجاد کنید که شماره دانشجویی و نام و نام خانوادگی را در یک جدول ذخیره کند. ب) صفحه وبی طراحی کنید که دارای یک فرم باشد و نام و نام خانوادگی را دریافت کند و در بانک اطلاعاتی که به وجود اوردید ذخیره کند. ج) صفحه وبی را طراحی کنید که دارای یک جعبه متنی باشد و کاربر بتواند در جعبه متنی دستورselect را با شرط دلخواه خود وارد کند و نتایج ان دستور به کاربر نمایش داده شود.
100
تشخیص هویت با کنترل تماس
جلسه پنجم مفهوم کوکی استفاده از کوکی ها کنترل های تماس پیاده سازی تماس ساده متغیرهای تماس تشخیص هویت با کنترل تماس
101
www.aduelect.ir مفهوم کوکی ها
کوکی بخشی از دادها است که اسکریپت می تواند در کامپیوتر سرویس گیرنده ذخیره کند. کوکی ها معمولا در فایلی در دیسک سخت کامپیوتر سرویس گیرنده ذخیره می شوند و همچنین وب سایت ها فقط کوکی های خودشان را دستکاری می کنند. بعضی از کاربرد های کوکی عبارتند از: 1.ذخیره اولویت های کاربر در یک سایت خاص. 2.ذخیره کلید کاربر که می تواند کاربران را با داده های شخصی انها پیوند دهد. 3.ذخیره کردن داده های کمکی و کوچک که چندان حیاتی نیستند!
102
www.aduelect.ir تنظیم کوکی ها
برای تنظیم کوکی ها در php از تابع setcookie() استفاده می شود: Set cookie(name [, value [, expire [,path [,domain [,secure ]]]]]) توضیح: Name: نام کوکی می باشد. Value: مقدار کوکی را تعیین می کند. Expire: زمان از بین رفتن کوکی یا به عبارتی طول عمر کوکی را مشخص می کند. Path: مسیر ذخیره کوکی را تعیین می کند. Domain: دامنه ای را مشخص می کند که کوکی اعمال می شود. Secure: اگر مقدارش یک تعیین گردد معنایش این است که از طریق اتصال ساده ارسال نمی گردد.
103
مثال: این دستور کوکی با نام test و با مقدار value ایجاد می کند.
setcookie("test",'value'); مثال: این دستور کوکی با نام font و با مقدار arial ایجاد می کند که انقضای تا یک ساعت بعد می باشد. setcookie("font",'arial',time() ); وقتی کاربر صفحه بعدی سایت شما را میبیند می توان از طریق متغیر های زیر به کوکی دسترسی داشت: $_COOKIE['test']; یا $HTTP_COOKIE_VARS["test"];
104
www.aduelect.ir حذف کوکی ها به دو طریق می توان کوکی ها را حذف کرد:
1.تنظیم مجدد کوکی ها فقط با ذکر نام کوکی setcookie('font'); 2.تنظیم مجدد کوکی به طوری که تاریخ انقضای ان گذشته باشد setcookie("font",‘0',time() ); مشکلات کوکی ها 1.بعضی از مرورگرها امکان استفاده از کوکی ها را ندارند. 2.ممکن است تنظیمات مرورگرها به گونه ای باشد که از ورود کوکی به سیستم جلوگیری کند.
105
مثال: این دستور کوکی با نام name و با مقداری که کاربر وارد کرده ایجاد می کند.
<html> <head> <title> New document</title> </head> <body> <form method = "POST"> who is your best friend? <input name="friend" type="text"> <br> <input type="submit" value="submit"> </form> <?php $f = $_POST['friend']; setcookie ("name",$f,time() ); $n=$_COOKIE['name']; echo " cookie value is: $n"; ?> </body> </html>
106
www.aduelect.ir کنترل های تماس
کنترل تماس توانایی ردیابی کاربر در اثنای یک تماس با وب سایت است به این ترتیب می توان هنگام ورود کاربر که با تشخیص هویت صورت می گیرد بر اساس هویت او محتویات سایت را بر اساس خواسته های او نمایش داد . عملکرد تماس تماس ها در php با شناسه تماس مشخص می شوند که یک عدد تصادفی رمزنگاری شده است این شناسه توسط php تولید شده و در کامپیوتر سرویس گیرنده ذخیره می گردد. متغیر های تماس در یک فایل در سرویس گیرنده و یا در صورت لزوم ان را در یک بانک اطلاعاتی ذخیره کرد.
107
پیاده سازی تماس های ساده
مراحل استفاده از تماس ها عبارتند از: 1.شروع تماس 2.ثبت متغیر های تماس 3.استفاده از متغیر های تماس 4.حذف متغیر های تماس و خاتمه تماس
108
شروع تماس www.aduelect.ir
قبل از استفاده از یک تماس باید ان را اغاز کنیم که از چند روش انجام می شود : 1.در این روش برنامه باید با تابع session_start() شروع شود. این تابع بررسی می کند که ایا فعلا شناسه تماس وجود دارد یا خیر. اگر وجود نداشته باشد انرا ایجاد می کند و اگر وجود داشته باشد متغیرهای تماس ثبت شده را بارگذاری می کند. 2. می توان php را طوری تنظیم کرد که وقتی شخصی وارد سایت می شود به طور خودکار یک تماس را شروع کند. برای این کار باید گزینه session.auto_start را در فایل php.ini تنظیم کنیم. نکته: مسیر ذخیره سازی متغیرهای تماس را در فایل php.ini در قسمت گزینه session.save_path می توان به دلخواه تنظیم کرد.
109
ثبت متغیر های تماس www.aduelect.ir
متغیر های تماس در یک ارایه فرا عمومی به نام $_SESSION یا در ارایه $_SESSION_VARS ذخیره می شوند برای ایجاد متغیر تماس باید عنصری از این ارایه ها را مقدار دهید: $_SESSION[‘test’]=3; یا $HTTP_SESSION_VARS[‘test’]=3; نکته: در نسخه های قدیمی php برای ردیابی متغیر از صفحه به صفحه ای دیگر از تابع session_register() می توان استفاده کرد. مثال: $test; Session_register(‘test’);
110
استفاده از متغیر های تماس
برای استفاده از متغیر های تماس ابتدا باید تماسی را اغاز کرد و سپس از طریق ارایه های $_SESSION یا $HTTP_SESSION_VARS انها را بکار گرفت: $HTTP_SESSION_VARS[‘test’]; یا $_SESSION[‘test’]; تابع session_is_registered() : توسط این تابع می توانید مشخص کنید که ایا متغیری یک متغیر تماس ثبت شده است یا خیر : $result= session_is_register(‘test’); اگر $test یک متغیر تماس ثبت شده باشد این تابع ارزش true وگرنه false را بر می گرداند.
111
اگر از ارایه های $HTTP_SESSION_VARS یا $_SESSION استفاده می کنید کافی است تا اندیس متناظر را در این ارایه ها کنترل کنید: If (isset ($HTTP_SESSION_VARS[‘test’])) یا If (isset ($SESSION[‘test’])) نکته: اگر عنصر متناظر ان مقدار داشته باشد تابع ارزش true و در غیر اینصورت ارزش false را بر می گرداند.
112
حذف متغیر های تماس و خاتمه تماس
وقتی دیگر با متغیرهای تماس کارتان تمام شد می توانید انرا از حالت ثبت خارج کنید. اگر از ارایه های $HTTP_SESSION_VARS یا $_SESSION استفاده می کنید برای خارج کردن متغیر ها از ثبت به صورت زیر عمل می کنیم. Unset($HTTP_SESSION_VARS[‘test’]); یا Unset($_SESSION[‘test’]); خاتمه تماس برای پایان دادن به تماس ابتدا باید متغیر های تماس را از حالت ثبت خارج کنیم و سپس برای خاتمه تماس از تابع session_destroy() استفاده می کنیم. Session_destroy();
113
مثال:در این مثال چند صفحه طراحی می کنیم که در این صفحات تماسی را اغاز می کنیم و از کاربر نام او را دریافت می کنیم و در یک متغیر تماس قرار می دهیم و پس از دستیابی به متغیرتماس و چاپ ان؛ تماس را پایان می دهیم . صفحه اول <html> <head> <title> New document </title> </head> <body> <form method = "GET" action = " what is your name? <input name="name" type="text"> <br> <input type="submit" value="submit"> </form> </body> </html>
114
www.aduelect.ir صفحه دوم
در این صفحه اطلاعات ارسالی فرم صفحه قبل را دریافت می کنیم و تماسی را اغاز می کنیم و اطلاعات دریافتی را در یک متغیر تماس قرار می دهیم. <?php $n=$_GET["name"]; session_start(); $_SESSION['n']=$n; ?> <a href="3.php">Next page</a> صفحه سوم در این صفحه به متغیر تماس دسترسی پیدا می کنیم و انرا چاپ می کنیم و سپس این متغیر تماس را حذف می کنیم و اتصال را پایان می دهیم. <?php session_start(); echo 'your name is= '.$_SESSION['n']; unset($_SESSION['n']); session_destroy(); ?> <a href="4.php">Next page</a>
115
www.aduelect.ir صفحه چهارم
در این صفحه به متغیر تماس دسترسی پیدا می کنیم و انرا چاپ می کنیم ولی در خروجی اخطاری را مشاهده می کنید که به این دلیل است که در صفحه قبل متغیر تماس را حذف کردیم. <?php session_start(); echo ‘ your name is= '.$_SESSION['n']; session_destroy(); ?>
116
تشخیص هویت با تماس www.aduelect.ir
یکی از کاربردهای تماس استفاده کردن از ان در تشخیص هویت کاربران پس از ورود به سیستم می باشد که در مثالی به ان می پردازیم. این مثال شامل 3 صفحه می باشد که در صفحه اول متغیر تماسی را ثبت می کنیم و از این متغیر در صفحات دیگر استفاده می کنیم و همچنین دارای یک بانک اطلاعاتی می باشد که در ان نام کاربران و رمز ورود انها ثبت می شود و وقتی که کاربر نام و رمز خود را وارد می کند برنامه نام و رمز را با بانک اطلاعاتی بررسی می کند اگر کاربر نام و رمز را درست وارد کرده باشد نام کاربر در متغیر تماس قرار می گیرد و در صفحات دیگر با بررسی متغیر های تماس می توان تشخیص داد که شخص از کاربران است یا خیر.
117
www.aduelect.ir صفحه اول <?php session_start();
if (isset($HTTP_POST_VARS['userid']) && isset($HTTP_POST_VARS['password'])) { // if the user has just tried to log in $userid = $HTTP_POST_VARS['userid']; $password = $HTTP_POST_VARS['password']; $db_conn = mysql_connect('localhost','root',''); mysql_select_db('user'); $query = 'select * from list ' ."where uname='$userid' " ." and password = '$password'"; $result = mysql_query($query, $db_conn); if (mysql_num_rows($result) >0 ) $HTTP_SESSION_VARS['valid_user'] = $userid; } ?> ادامه در صفحه بعد
118
www.aduelect.ir صفحه اول <html> <body>
<h1> Home page </h1> <? if (isset($HTTP_SESSION_VARS['valid_user'])) { echo ‘You are logged in as: '.$HTTP_SESSION_VARS['valid_user'].' <br />'; echo '<a href="logout.php">Log out</a><br />'; } else if (isset($userid)) echo ‘Could not log you in'; echo ‘You are not logged in.<br />';
119
www.aduelect.ir صفحه اول
echo '<form method="post" action="1.php">'; echo '<table>'; echo '<tr><td> Userid: </td>'; echo '<td><input type="text" name="userid"></td></tr>'; echo '<tr><td>Password:</td>'; echo '<td><input type="password" name="password"></td></tr>'; echo '<tr><td colspan="2" align="center">'; echo '<input type="submit" value="Log in"></td></tr>'; echo '</table></form>'; } ?> <a href = "members.php">Members section</a> </body> </html>
120
صفحه دوم:این صفحه با استفاده از متغیرتماس بررسی می کند و اگر شخص از کاربران سایت باشد اطلاعاتی را به او نمایش می دهد و در غیر اینصورت پیغامی را چاپ می کند . <?php session_start(); echo '<h1> Members only </h1>'; if (isset($HTTP_SESSION_VARS['valid_user'])) { echo '<p> You are logged '.$HTTP_SESSION_VARS['valid_user'].'</p>'; echo '<p> Members only content goes here</p>'; } else echo '<p> You are not logged in.</p>'; echo '<p> Only logged in members may see this page.</p>'; echo '<a href="1.php">Back to main page</a>'; ?>
121
صفحه سوم: ابتدا یک تماس اغاز می شود و نام کاربر از متغیر تماس در یک متغیر قرار می گیرد سپس متغیر تماس حذف می شود و به کاربر پیغام می دهد که خارج شده اگر شخصی که وارد این صفحه شده کاربر نباشد به او پیغامی مناسب داده می شود. <?php session_start(); $old_user = $HTTP_SESSION_VARS['valid_user']; unset($HTTP_SESSION_VARS['valid_user']); echo "<h1> Logout Page</h1>"; if (!empty($old_user)) echo ‘You have been logged out.<br />'; else echo ‘You were not logged in, and so have not been logged out.<br />'; echo '<a href="1.php"> Back to main page </a>'; session_destroy(); ?>
122
موفق و سربلند باشید : رضا علیپور
تمرین: صفحاتی را طراحی کنید که در ان یک قسمت برای ثبت نام در سایت و قسمتی برای ورود کاربران در نظر بگیرید که کاربران بعد از ثبت نام در سایت با نام کاربری خود وارد سایت شوند و با توجه به اینکه که کاربران از اعضا سایت می باشند یا افرادی هستند که بدون نام کاربری وارد سایت شده اند به انها پیغام مناسب را بدهید. موفق و سربلند باشید : رضا علیپور
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.