29
PHP (2) ﻣﺪرس: ﺳﻴﺪ ﻣﺤﻤﺪ ﺑﻴﺪﻛﻲ[email protected] [email protected] www.smbidoki.ir ﭘﺎﻳﻴﺰ1392 درس ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﻣﺒﺘﻨﻲ ﺑﺮ وب

˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): [email protected] [email protected] 1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

PHP (2):مدرس

سيد محمد بيدكي

[email protected]@yahoo.com

www.smbidoki.ir

1392پاييز

وب درس برنامه نويسي مبتني بر

Page 2: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

آرايه ها

هر و شده ذخيره متغير نام يك تحت كه است اطالعات از ليستي آرايه�.گيرد مي قرار دسترسي مورد كليد يك توسط آن اطالعاتي جزء

هب گرفت نظر در جدول اطالعات سطر يك صورت به توان مي را آرايه�.هستند آرايه عناصر كليدهاي جدول، ستونهاي عناوين كه طوري

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 2

Page 3: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

تعريف و دسترسي به عناصر آرايه

<?php

// تعريف

$husband = array (" firstname "=>"Albert",

"lastname "=>"Einstein",

"age"=>" 124");

// دسترسي

echo $husband[" firstname "];

?>

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 3

Page 4: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

آرايه هاي چند بعدي<?php$table1 = array("husband" =>

array("firstname"=>"Albert", "lastname"=>"Einstein", "age"=>124) ,

"wife" => array("firstname"=>"Mileva","lastname"=>"Einstein","age"=>123)

);echo $table1["husband"]["firstname"];echo " & ";echo $table1["wife"]["firstname"];?>

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 4

Page 5: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

تعريف آرايه بدون تعريف كليد

موارد از يليست توان مي باشد، نداشته اهميت آرايه فيلد هر كليد نام اگر�.نمود ايجاد زير صورت به را اطالعاتي

تصور به ورود، ترتيب به عددي، انديسي آرايه در شده درج موارد به�.شود مي داده تخصيص )صفر از شروع( خودكار

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 5

Page 6: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

مرتب سازي آرايه

تابع توضيحات

arsort($arrayName) و كليد ارتباط حفظ با نزولي صورت به را آرايه.كند مي مرتب فيلد، مقدار

rsort($arrayName) .كند مي مرتب نزولي صورت به را آرايه

asort($arrayName) و كليد ارتباط حفظ با صعودي صورت به را آرايه.كند مي مرتب فيلد، مقدار

sort($arrayName) .كند مي مرتب صعودي صورت به را آرايه

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 6

Page 7: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

دستور چاپ يك ساختار داده اي

اب همراه را اي داده ساختار يك محتواي توان مي زير تابع از استفاده با�:نمود چاپ را آن ساختار

print_r ( اي داده ساختار يا متغير نام );

:مثال

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 7

Page 8: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

براي آرايه ها foreachساختار

اعمال آرايه يك عناصر روي بر دستورات از اي مجموعه بخواهيم اگر�.نماييم استفاده foreach ساختار از توانيم مي شود،

foreach ( $arrayName as $currentValue ) {// بدنه اين ساختار به ازاي تمام عناصر آرايه اجرا مي شود

echo $currentValue . "< br >";

}

�$currentValue ارساخت بدنه اجراي بار هر در كه متغيريست foreach، گيرد مي قرار آن داخل آرايه عناصر از يكي مقدار.

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 8

Page 9: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

sizeofتابع

تعداد و گرفته ورودي پارامتر عنوان به را آرايه يك تابع اين�.برميگرداند را آن عناصر

echo sizeof ($ arrayTest );

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 9

Page 10: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

array_keysتابع

مامت و گرفته ورودي پارامتر عنوان به را آرايه يك نام تابع اين�.برميگرداند )آرايه يك قالب در( را آن عناصر كليدهاي

Print_r ( array_keys ($arrayTest )) ;

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 10

Page 11: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

انتقال متغيرها بين صفحات وب مختلف

URLانتقال متغير در �

Sessionانتقال متغير به وسيله �

Cookieانتقال متغير به وسيله �

HTMLانتقال متغير به وسيله فرم هاي �

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 11

Page 12: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

URLانتقال متغير در

متغير لينك، يك مقصد URL انتهاي در ? عالمت دادن قرار با توان مي� .داد انتقال صفحه آن به را

query ،? از بعد شده نوشته عبارت به� string مي گفته .شود

http://www.mydomain.com/showart.php ?id=12345

http://www.mydomain.com/showart.php ?id=$num

نمودن جدا براي & كاراكتر از آنها بين ،URL در متغير چند ارسال براي�.شود مي استفاده

http://www.mydomain.com/showart.php ?id=12345&lang=en

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 12

Page 13: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

URLمعايب انتقال متغير در

.است رويت قابل كاربر براي متغير مقدار�

.نيست امن�

.كند دستكاري URL در را متغير مقدار تواند مي كاربر�

.بياورد پيش ناخواسته شرايط است ممكن�

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 13

Page 14: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

URLانتقال متغير در <html>

<head>

<title>Find my Favorite Movie!</title>

</head>

<body>

<?php

$movieName = "Turbo2013";

echo " <a href='moviesite.php?favmovie=$movieName'> ";

echo "Click here to see information about my favorite movie!";

echo "</a>";

?>

</body>

</html>

Movie1.php

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 14

Page 15: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

URLدريافت متغير از با استفاده از�

$_REQUEST[' ['نام پارامتر

مثال):در صفحه مبدا لينك( ارسال

http://www.mydomain.com/showart.php ?id=12345&lang=en

):در صفحه مقصد لينك(دريافت

echo $_REQUEST['id'] ;$language = $_REQUEST[' lang '] ;

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 15

Page 16: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

<URL...<htmlدريافت متغير از

<head>

<title>My Movie Site - <?php echo $_REQUEST['favmovie'] ;?> </title>

</head>

<body>

<?php

echo "My favorite movie is ";

echo $_REQUEST['favmovie'];

echo "<br>";

$movierate = 5;

echo "My movie rating for this movie is: ";

echo $movierate;

?>

</body>

</html>

moviesite.php

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 16

Page 17: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

()urlencodeتابع عالئم يا )Space(خالي فاصله كاراكتر حاوي شونده، اضافه متغير محتواي اگر�

اين از مشكل، اين رفع براي .كند مواجه مشكل با را URL است ممكن باشد، خاص:گردد مي استفاده زير صورت به تابع

<?php

$myfavmovie = urlencode("Life of Marry & Jack");

echo "<a href='moviesite.php?favmovie =$myfavmovie '>";

echo "Click here to see information about my favorite movie!";

echo "</a>";

?>

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 17

Page 18: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

Sessionانتقال متغير به وسيله

�Sessionحالت در كه هستند موقتي متغيرهاي از اي مجموعه ها .دارند وجود است، باز browser كه زماني تا فرض پيش

لينك شماره عنوان به كه دارد فرد به منحصر id يك Session هر�.ميشود استفاده شده، برقرار

در session_start(); تابع از Session يك شروع براي�.شود مي استفاده ،كند مي كار session با كه اي صفحه هر ابتداي

session_start تابع� () از قبل و صفحه كد باالي بايد ;.گيرد قرار HTML كد هر

به تخصيص قابل است، سازي ذخيره قابل داده پايگاه در كه مقداري هر�session باشد مي.

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 18

Page 19: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

Sessionتعريف

:شود مي استفاده زير تابع از session يك به دستيابي براي�

$_SESSION[' sessionName ']

استفاده زير صورت به = عملگر از session به مقدار تخصيص جهت�:شود مي

$_SESSION['sessionName'] = sessionVlaue;

session_unset تابع از هاsession انهدام منظور به� () ; .گردد مي استفاده

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 19

Page 20: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

...Sessionانتقال متغير به وسيله <?php

session_start();

$_SESSION['username'] = "Joe12345";

$_SESSION['authuser'] = 1;

?>

<html>

<head><TITLE>Find my Favorite Movie!</TITLE></head>

<body><?php

echo "<a href='moviesite.php'>";

echo "Click here to see information about myfavorite movie!";

echo "</a>";

?></body>

</html>

Movie1.php

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 20

Page 21: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

در صفحه ديگر Sessionاستفاده از <?php

session_start();

//check to see if user has logged in with a valid p assword

if ($_SESSION['authuser'] != 1) {

echo "Sorry, but you don't have permission to view this page, you loser!";

exit();

}

?>

<html>

<head><title>My Movie Site?></title></head>

<body>

<?php

echo "Welcome to our site, ";

echo $_SESSION['username'];

echo "! <br> ";

?>

</body>

</html>

moviesite.php

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 21

Page 22: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

Cookieانتقال متغير به وسيله

�Cookieكاربر كامپيوتر روي كه هستند اطالعاتي كوچك اجزاء ها .شوند مي ذخيره سايت وب بيننده

�Cookieكس هر پس شوند مي ذخيره مشخص نام با اي شاخه در ها اين مقادير تواند مي باشد داشته دسترسي ديگري كامپيوتر به كه

Cookieدارد پاييني امنيت پس !!!بخواند را ها.

به نسبت بيشتري عمر طول هاCookie :استفاده دليل�Sessionدارند ها.

كه ...و كاربري نام كاربر، ترجيح مورد زبان نظير اطالعاتي براي مناسب� يبازنويس را ها آن صفحه يك به رجوع دفعه هر در ندارد تمايل كاربر.كند

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 22

Page 23: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

Cookieتعريف

از قبل صفحه ابتداي در بايد نيز هاcookie تعريف ها،Session مانند�.گيرد صورت ،HTML كد هر

:زير دستور از استفاده با�

setcookie('cookieName', 'value', ['expiration time',] ['path',] ['domain', ]['secure connection']);

�expiration time: انقضاي زملن cookie. بسته زمان آن فرض پيش مقدار )اختياري(.است browser شدن

�Path: سازي ذخيره مسير cookie.)اختياري(

�domain: به است ممكن كه اي دامنه cookie اختياري( .باشد داشته دسترسي(

�secure connection: فرض پيش .شود مي داده قرار 1 آن مقدار فعالسازي براي )اختياري(.است صفر آن

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 23

Page 24: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

Cookieانتقال متغير به وسيله <?php

setcookie('username', 'Joe', time()+6);?>

<html>

<head><title>Find my Favorite Movie!</title></head>

<body>

<?php

echo "<a href='moviesite.php'>";

echo "Click here to see information about myfavorite movie!";

echo "</a>";

?>

</body>

</html>

Movie1.php

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 24

Page 25: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

Cookieدسترسي به

']COOKIE_$ از استفاده با� cookieName به توان مي ['.داشت دسترسي آن، عمر طول در ،cookie يك مقدار

<html>

<head><title>My Movie Site</title></head>

<body>

<?php

echo "Welcome to our site, ";

echo $_COOKIE['username'];

echo "! <br>";

?>

</body>

</html>

moviesite.php

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 25

Page 26: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

HTMLانتقال متغير به وسيله فرم هاي

اتصفح بين انتقال قابل اطالعاتي واحد يك عنوان به فرم اجزاء از هريك�.باشد مي

HTML فرم تعريف به توجه با�<form method =" action "متد ارسال ="destinationURL">

.باشد GET يا و POST تواند مي ارسال متد�

�destinationURL شدن فشرده با كه كند مي مشخص را فايلي آدرس .گردد مي ارسال آن به فرم اطالعات ،Submit دكمه

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 26

Page 27: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

...HTMLانتقال متغير به وسيله فرم هاي <?php

session_unset();

?>

<html>

<head><title>Please Log In</title></head>

<body>

<form method="post" action="movie1.php" >

<p>Enter your username:<input type="text" name="user"></p>

<p>Enter your password:<input type="password" name="pass"></p>

<p><input type="submit" name="Submit" value="Submit"></p>

</form>

</body>

</html>

login.php

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 27

Page 28: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

دسترسي به اطالعات ارسال شده در فرم

براي دستيابي به اطالعات ارسال شده، بسته به متد ارسال از ساختارهاي �$_GET[' formElementName و ['

$_POST[' formElementName .استفاده مي شود ['

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 28

Page 29: ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com Bidoki.Mohammad@yahoo.com  1392 ˜ ˘ˇ ˆ ˙˝ ˛ ˝ ˚

/29

...دسترسي به اطالعات ارسال شده در فرم <?php

session_start();

$_SESSION['username'] = $_POST['user'];

$_SESSION['userpass'] = $_POST['pass'];

$_SESSION['authuser'] = 0;

//Check username and password information

if (($_SESSION['username'] == 'Joe') and($_SESSION['userpass'] == '12345')) {

$_SESSION['authuser'] = 1;

} else {

echo "Sorry, but you don't have permission to view this page, you loser!";

exit ();

}

?>

Movie1.php

بيدكي: مدرس -) بخش دوم (PHPمفاهيم زبان –برنامه نويسي مبتني بر وب 29