˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com...

Post on 26-Jul-2020

8 views 0 download

Transcript of ˘ˇ ˆsmbidoki.ir/courses/127_PHP_Lecture_02.pdf · PHP (2): S.m.bidoki@gmail.com...

PHP (2):مدرس

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

S.m.bidoki@gmail.comBidoki.Mohammad@yahoo.com

www.smbidoki.ir

1392پاييز

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

/29

آرايه ها

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

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

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

/29

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

<?php

// تعريف

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

"lastname "=>"Einstein",

"age"=>" 124");

// دسترسي

echo $husband[" firstname "];

?>

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

/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

/29

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

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

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

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

/29

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

تابع توضيحات

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

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

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

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

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

/29

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

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

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

:مثال

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

/29

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

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

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

echo $currentValue . "< br >";

}

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

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

/29

sizeofتابع

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

echo sizeof ($ arrayTest );

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

/29

array_keysتابع

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

Print_r ( array_keys ($arrayTest )) ;

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

/29

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

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

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

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

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

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

/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

/29

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

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

.نيست امن�

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

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

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

/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

/29

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

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

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

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

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

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

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

/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

/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

/29

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

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

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

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

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

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

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

/29

Sessionتعريف

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

$_SESSION[' sessionName ']

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

$_SESSION['sessionName'] = sessionVlaue;

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

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

/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

/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

/29

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

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

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

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

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

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

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

/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

/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

/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

/29

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

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

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

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

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

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

/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

/29

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

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

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

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

/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