دنیای عجیبی است که تکنولوژی های مربوط به آن تار جهان گستر World Wide Web اغلب بدون پشتیبانی کافی عرضه می شوند و کاربران این تکنولوژی همه روزه با واژگان جدیدی بر خورد میکنند که باعث سر در گمی آنها می شوند.
برای نمونه میتوان به رشد نرم افزارهای open source اشاره کرد که عبارتند از:
برنامه های که بتوان آنها را گسترش داد و یا تغییراتی در ساختار آنها ایجاد کرد
متداول ترین این برنامه ها سیستم عامل Unix و به طور خاص Linux می باشد.
این برنامه ها با وجود ثبات و پایداری، دارای یک مشکل بزرگ است و آن دشوار بودن آموختن این برنامه ها می باشد.
کمبود راهنماهایی که به زبان ساده این برنامه ها را به مبتدیان آموزش دهد باعث شده است که این دسته از نرم افزار ها از جایگاه واقعی خود دور نگاه داشته شوند.
PHP یکی از زبانهای اسکریپتی open source است و ابزار مفیدی می باشد که تا کنون علی رغم سادگی استفاده از آن هنوز به صورت شایسته ای از آن استقبال نشده است.
PHP چیست ؟
PHP سال 1994 توسط Rasmus Lerdorf ایجاد شد و مخفف واژگان Personal Home Pages به حساب می آید.
با گسترش قابلیت ها و موارد استفاده این زبان PHP در معنای Hypertext Preprocessor به کار گرفته شد.
عبارت پیش پردازشگر (Preprocessor) بدین معنی است که PHP اطلاعات را قبل از تبدیل به زبان Html پردازش می کند.
مطابق مطالب سایت وب رسمی PHP که در آدرس http://www.php.net قرار دارد، PHP زبان اسکریپتی سمت سرویس دهنده Html Embeded , Cross-Platform ,(Server-side) می باشد.
سمت سرویس دهنده بودن PHP بدین معناست که تمام پردازشهای این زبان بر روی سرویس دهنده (Server) انجام می گیرد.
یک سرویس دهنده در حقیقت یک کامپیوتر مخصوص می باشد که صفحات وب در آنجا نگهداری می شوند و از آنجا به مرورگر وب کاربران منتقل می شوند.
چگونگی ادامه این روند را در درس های آتی توضیح داده خواهد شد.
منظور از Cross-Platform بودن این زبان این است که بروی هر سیستم و با هر سیستم عاملی از قبیل : Unix, Windows NT, Macintosh, Os/2 اجرا میشوند.
توجه کنید که منظور از سیستم عامل، سیستم عامل هایی می باشند که بر روی سرویس دهنده نصب می شوند.
PHP نه تنها قابلیت اجرا بر روی هر سیستم عاملی را دارا می باشد بلکه برای منتقل کردن برنامه های آن از یک سیستم عامل به سیستم عامل دیگر احتیاج به تغییرات اندکی خواهید داشت و حتی در بعضی از موارد بدون احتیاج به هیچ تغییری می توانید یک برنامه به زبان php را از یک سیستم عامل به سیستم عامل دیگر منتقل کنید.
منظور از Html embeded بودن PHP این است که دستورات این زبان در بین کدهای html قرار می گیرند.
بنابراین برنامه نویسی به زبان PHP کمی پیچیده تر از برنامه نویسی به زبان Html به حساب می آید.
PHP بر خلاف زبانهای برنامه نویسی (Programming Languages) یک زبان اسکریپتی (Scripting Language) می باشد به عبارت دیگر دستورات PHP بعد از رخداد یک رویداد (Event) اجرا می شوند.
این رویدادها می توانند شامل ارسال یک فرم رفتن به یک URL مشخص و یا مواد دیگر باشند متداولترین زبان اسکریپتی زبان Java Script می باشد که معمولا برای پاسخ به رویدادهای کاربر در مرورگر وب به کار می رود تفاوت عمده Java Script با PHP در این است که Java Script یک تکنولوژی سمت سرویس گیرنده (Client-side) می باشد.
زبان هایی مانند Java Script یا PHP تفسیر شونده (Interpreted) نامیده میشوند.
به عبارت دیگر برای اجرا به یک مفسر مانند مرورگر وب احتیاج دارند.
اما زبانهای برنامه نویسی مانند C یا Java بعد از ترجمه به زبان ماشین (Compile) به خودی خود قابل اجرا می باشند.جدیدترین نسخه PHP نسخه 4 این زبان اسکریپتی می باشد و کلیه فایل ها و کدهایی که توی این وبلاگ ارائه میشه تحت این نسخه کار میکنند.
اما یک مشکل هست که اکثر سرویس دهنده ها از نسخه 3 استفاده میکنند.
تفاوت این دو نسخه PHP بسیار اندک هست و تغییرات مهم عموما در مسیر اصلاح عملکرد این زبان صورت گرفته شده است.
چرا PHP ؟
اولین چیزی که می خواهم در موردش توضیح دهم این است که به چه علتی ما از PHP استفاده می کنیم؟
PHP در مقایسه با تکنولوژی های مشابه سریعتر بهتر و آسانتر است.
از جمله تکنولوژی های مشابه برای طراحی یک سایت وب می توان به این موارد اشاره کرد :اسکریپت های Common Gateway interface) CGI) که معمولا به زبان Perl نوشته می شوند و ASP .
مزیتی که PHP در مقابل HTML دارد این است که HTML یک سیستم حدود به حساب می آید و توانایی ایجاد ارتباط متقابل با کاربر را ندارد.
یک صفحه HTML ساده توانایی پاسخ به اعمال کاربر را ندارد اما با استفاده از PHP شما میتوانید صفحاتی بر اساس سیستم عامل کاربر و یا تاریخ مشاهده صفحه تنظیم کنید .
همچنین PHP می تواند با فایل ها یا پایگاههای داده (DataBase) ارتباط بر قرار کند و بسیاری عملیات دیگر که HTML قادر به انجام به آنها نمی باشد.
شاید یک سوال برای شما به وجود بیاد که چرا یک طراح وب بهتر است که از زبان PHP به جای زبانهای مانند CGI و ASP و یا JSP برای طراحی سایت دینامیک استفاده کند؟
دلیل اول سرعت بیشتر PHP چه در برنامه نویسی و ایجاد برنامه هایی به این زبان و چه در اجرا می باشد .
همچنین PHP برای یادگیری بسیار ساده می باشد و افــراد بدون نیاز به زمینه های قبلی در برنامه نویسی و تنهــا با یادگیری دستورات و راهنماهایی که وجود دارد می توانند این زبان را یاد بگیرند.
دومین دلیل این است که PHP به صورت اختصاصی تنها برای ایجاد صفحـات دینامیک طراحی شده است.
امـــا Perl و VbScript و یا Java اینگونه نیستند و به همین دلیل PHP سریعتر و ساده تر از تکنولوژی های جایگزین می باشد.
صفحه Index.html : صفحه Home.php : صفحه Register.php : صفحه Upload.php : صفحه Search.php : صفحه View : صفحه Map.html : صفحه View2.php : چکیده : این سایت که شامل 8 صفحه است .
اعمال این صفحات به شرح ذیل است : صفحه index.html کار ورود به صفحه اصلی سایت را بر عهده دارد.
صفحه home.php اصلی ترین صفحه سایت است که از طریق آن می توان به صفحه ثبت نام و آپلود کردن عکس ها وارد شویم.
همچنین می توان از داخل این صفحه جست و جو نمود.
در صفحه view.php کاربر لیست عکس هایی را که از منو انتخاب کرده می تواند ببیند.
صفحه register.php کارگرفتن مشخصات کاربر و ثبت نام وی را بر عهده دارد.
و اما کاربر می تواند درصفحه upload.php که در این صفحه عمل آپلود کردن را کاربر می تواند انجام دهد.
در صفحه ی search.php مشخصاتی را که کاربر در صفحه home.php وارد کرده از جمله نوع ، سایز ونام عکس را گرفته و جست و جو را انجام می دهد.
در صفحه view2.php عمل بزرگنمایی عکس ها یی که چه در صفحه view.php و چه در صفحه ی search.php را انتخاب کرده ایم را نشان می دهد.
محدودیت ها : اما در این سایت اگر کسی ثبت نام نکرده باشد نمی تواند از امکاناتی همچون : بزرگنمایی عکس ها آپلود کردن عکس ها بهره ببرد.
ثبت نام : در ابتدا من طریقه ثبت نام را برای شما توضیح می دهم که اگر کاربردرسایت عضو شود می تواند به طور کامل از تمام امکانات سایت استفاده کند.
برای ثبت نام کاربر باید به لینکی که در سمت چپ صفحه home.php یا iew.php که هردو این امکان را دارا هستند مراجعه کند.
در زیر شکل این تصویر را می بینید : با کلیک کردن بر روی این لینک کاربر صفحه register.php مشاهده می کند.
همانطور که در شکل می بینید در این صفحه مشخصات کاربر خواسته شده و کاربر باید تمام گزینه ها را وارد کند تا بتواند ثبت نام کند.در زیر کدهای مربوط به ثبت نام را برای شما شرح می دهم : $name=$_POST ['name']; $family=$_POST ['family']; $age=$_POST ['age']; $city=$_POST ['city']; $username=$_POST ['username']; $password=$_POST ['password']; $password1=$_POST ['password1']; $email=$_POST ['email']; If (!get_magic_quotes_gpc()) { $name=addslashes ($name); $family=addslashes ($family); $age=addslashes ($age); $city=addslashes ($city); $username=addslashes ($username); $password=addslashes ($password); $password1=addslashes ($password1); $email=addslashes ($email); } if (trim($name) && trim($family) && trim($city) && trim($username) && trim($password) && trim($password1) && trim($email) ) { $query="select username from user where username like'$username' "; $link=mysql_connect("localhost","root",""); if(!$link) { die ("Could not Connect MYSQL"); } mysql_select_db("Gallery") or die ("Could Not Open Gallery"); $result=mysql_query($query) or die (mysql_error()); if(!mysql_num_rows($result) || strlen($password) { if(($password != $password1) || (strlen($password) { $k=1; echo 'Please check your password'.''; } if(!$k) { $password=sha1($password); $query="insert into user values("; $query=$query."'".$name."',"; $query=$query."'".$family."',"; $query=$query."'".$age."',"; $query=$query."'".$city."',"; $query=$query."'".$username."',"; $query=$query."'".$password."',"; $query=$query."'".$email."')"; mysql_query($query) or die (mysql_error()); mysql_close($link); echo "Thank You.
You member now.
Please back to home".""; } } else echo "Please Select The Other User Name.
Beacause It's repeat "; } ?> ابتدا متد post اطلاعات را از فرمی که تمام مشخصات وارد آن شده به خود صفحه register.php ارسال کرده : در ادامه دوباره با متد post مشخصات را دریافت کرده و در متغیرها ذخیره می کند : $name=$_POST ['name']; $family=$_POST ['family']; $age=$_POST ['age']; $city=$_POST ['city']; $username=$_POST ['username']; $password=$_POST ['password']; $password1=$_POST ['password1']; $email=$_POST ['email']; بعد تمام کاراکترهای کنترلی در تمام فیلدها جست وجو می کند.
در این حالت مقدار تابع get_magic_quotes_gpc() را بررسی می کند.
با افزودن (/) به کاراکترهای کنترلی , استفاده از آنها ممکن می شود.
برای رهایی از دست کاراکترهای کنترلی از()addslashes استفاده می کنیم : If (!get_magic_quotes_gpc()) { $name=addslashes ($name); $family=addslashes ($family); $age=addslashes ($age); $city=addslashes ($city); $username=addslashes ($username); $password=addslashes ($password); $password1=addslashes ($password1); $email=addslashes ($email); } سپس در این قسمت با استفاده از تابع trim() فضاهای خالی قبل و بعد از عبارات درون textbox ها حذف می شود.
و بعد در صورت وجود مقداردر تمام textbox ها شرط برقرار می شود: if (trim($name) && trim($family) && trim($city) && trim($username) && trim($password) && trim($password1) && trim($email) ) در صورت درست بودن شرط به database متصل شده(که نام آن gallery است) و در جدول user تمامusername ها را چک می کند که آیا نام کاربری تکراری است و همچنین چک می کند طول آن از 17 کاراکتر بیشتر است یا نه.
در صورت تکراری بودن وطول بیشتر از 17 کاراکتر وارد پیغام خطای زیر چاپ و از ثبت اطلاعات جلوگیری می شود می شود : echo "Please Select The Other User Name.
Beacause It's repeat "; در ادامه بررسی می کند آیا پسورد که باید در دو textbox نوشته شود با هم برابر است و همچنین باید حداقل طول پسورد وارد شده 6 کاراکتر یا بیشت رباشد برای اینکه حدس زدن پسورد مشکل باشد.
که در صورت نقض این شرط پیغام زیر نمایش داده می شود و از ثبت اطلاعات جلوگیری می شود: echo 'Please check your password'.''; در صورت پر کردن تمام اطلاعات و مشکل نداشتن password و username اطلاعات کاربرتوسط دستور insert وارد database می شود و پیغام چاپ شده: Thank You.
Please back to home سپس اتصال به database قطع می شود.
البته لازم به ذکر است که password کاربر توسط تابع sha1 رمزگذاری می شود و در database به صورت 40 کاراکتر ذخیره شده که حتی server هم از تشخیص آن نا توان است: If (!$k) { $password=sha1($password); $query="insert into user values("; $query=$query."'".$name."',"; $query=$query."'".$family."',"; $query=$query."'".$age."',"; $query=$query."'".$city."',"; $query=$query."'".$username."',"; $query=$query."'".$password."',"; $query=$query."'".$email."')"; mysql_query($query) or die (mysql_error()); mysql_close($link); حال برای وارد شدن باید به صفحه اصلی بازگردیم.
Login کردن : پس از بازگشت به صفحه اصلی(home.php) همانطور که در زیر نشان داده شده username و password را کاربر وارد کرده : در صورت درست و ورود تصویر بالا تبدیل به شکل زیر می شود(در صورت مثال اگر username کاربر masood باشد) : تغییر شکل این دو تصویر به لحاظ وجود کد زیر انجام می گیرد که این کدها در صفحه home.php قرار دارد: if(isset($_SESSION['valid_user'])) { $username=$_SESSION['valid_user']; ?> Hi echo " WELCOME ";?> else { ?> User Name: Password: که در کد بالا بررسی شده که اگردر متغیر $_SESSION['valid_user'] نام username کاربری وجود نداشته باشد فرم login یا شکل اول را نشان می دهد.
ولی در صورتی که در متغیر $_SESSION['valid_user'] نام username کاربری وجود داشته باشد فرم logout یا شکل دوم نمایش داده می شود.
اما در کدهای زیر مقدار دهی به متغیر $_SESSION['valid_user'] صورت می گیرد.
///////////////////login////////////// if (isset($_POST['login'])) { $user=$_POST['username']; $pass=$_POST['password']; if($user and $pass) { $pass=sha1($pass); if(strlen (trim($user))) { if(strlen (trim($pass))) $query="select * from user where username='$user' && password='$pass'"; } $link = mysql_connect( "localhost", "root", "" ); if ( !
$link ) die( "Could not Connect To MySQL" ); mysql_select_db("Gallery") or die( "Could not open Gallery" ); $result = mysql_query($query) or die(mysql_error()); if(mysql_num_rows($result)) { $_SESSION['valid_user']=$user; در این کدها ابتدا با متد $_post , username و password که کاربر وارد کرده را گرفته و چک می کند که آیا username در database وجود دارد در صورت وجود آن password آن را مقایسه می کند تا با password آن برابر باشد.
سپس در صورت درستی username , password در متغیر $_session ، username را قرار می دهد.
Logout کردن : اگر کاربر دکمه logout را بزند این دستور اجرا می شود : //////////logout//////////// else if (isset($_POST['logout'])) { $old_user=$_SESSION['valid_user']; unset($_SESSION['valid_user']); session_destroy(); } unset($_session['valid_user']) session_destroy(); مقدار درون $_session را از بین می برد.
Search کردن : عکسی که در زیر مشاهده می کنید در صفحه home.php وجود دارد تا کاربر عکس یا عکس های مورد نظر خود را ببیند : همانطور که مشاهده می کنید می توان بر اساس عنوان ، سایزیا نام عکس جستجو را انجام داد.
این اطلاعات به صفحه Search.php فرستاده می شود و در آن صفحه عکس ها ی مورد نظر دیده می شود.
if(isset($_POST["search"])) { $search=$_POST["search"]; $res=$_POST["res"]; $type=$_POST["title"]; $link=mysql_connect('localhost','root',''); if(!$link) die ("could not connect mysql"); mysql_select_db('gallery') or die ("could not open database"); $query="select name from picture where name like '%$search%' and resolution like '%$res%' and type like '%$type%'"; $result=mysql_query($query); while($row=@mysql_fetch_array($result)) { $array[$i]=$row['name']; $i++; }} در کد بالا همانطور که مشاهده می کنید مشخصات عکس مورد جست و جو گرفته شده سپس تمام عکس هایی name , resolution , type آنها شبیه name , resolution , type وارد شده باشد را از درون database انتخاب کرده و به صورت عکس های کوچک در جدول و در کنار هم نشان می دهد.
کد زیر جدول عکس ها را نشان می دهد: for(;$i { ">" width="150" height="150" align="middle"/> ">" width="150" height="150" align="middle"/> ">" width="150" height="150" align="middle"/>"> در صورتی که عکسی با این مشخصات پیدا نشود پیغام زیر نمایش داده می شود: No Picture With Identifiers اما در ادامه با انتخاب کردن هر عکس می توان در صورت login بودن آن عکس را با اندازه بزرگ خود در صفحه view2.php مشاهده کرد.
اما در صفحه view2.php دربالای صفحه جلسه را آغاز می کند.
session_start(); ?> که بعد از آغاز آن می توان چک کرد کسی که می خواهد بزرگنمایی عکس را ببیند login کرده یا نه : if(isset($_SESSION['valid_user'])) { $name=$_GET['name']; $type=$_GET['type']; $path="pic/".$name;?> "/> } در صورت login نکردن نمی تواند عکس را بزرگ ببیند و با پیغام زیر روبرو می شود که : You must member to view large picture.
Upload کردن : یکی از کارهای اساسی که فقط کاربری که عضو سایت باشد می تواند به آن دسترسی داشته باشد به اشتراک گذاری یا Upload عکس خود برای دوستان یا کاربران دیگر است.
در این سایت عملیات upload توسط صفحه upload.php انجام می گیرد.
در این صفحه می توان بهمزمان 3 عکس را با هم upload کرد.
که در پایین کدهای مربوط به یکی از این فایل های انتخاب شده برای upload را شرح می دهم : if($file1['name']) { if($file1['error']>0) { echo 'error'; } if(!($file1['type']=='image/pjpeg' || $file1['type']=='image/jpeg' || $file1['type']=='image/gif' || $file1['type']=='image/png')) echo 'Error For Type'; if(is_uploaded_file($file1['tmp_name'])) { $ok=1; if(!move_uploaded_file($file1['tmp_name'],'pic/'.$file1['name'])) { echo 'Not Move'; $ok=0; } } // insert if($ok) { $selid1=@mysql_fetch_array(mysql_query("select max(id) from picture where type='".$title1."'")); if(!$selid1[0]) $selid1[0]=0; $insert1=mysql_query("insert into picture values(".++$selid1[0] .",'".$file1['name']."','".$title1."','".$res1."')"); } } در کد بالا همانطور که ملاحظه می کنیم ابتدا بررسی می کند اگر فایل انتخاب شده به سرور منتقل error میدهد.
در ادامه اگر فایل انتخاب شده دارای پسوندی غیر از پسوندهای jpg , jpeg , jif , png باشد خطای error for type می دهد.
توابع is_uploaded_file و move_uploaded_file به شما این اطمینان را می دهند که فایل مورد نظر به سرور انتقال یافته یا نه.
سپس با بازگشت به صفحه اصلی می توان از طریق منوها عکس های upload شده را دید.
منوها : در زیر شکل منو به همراه کد آن آورده شده : stm_bm(["menu106c",700,"","blank.gif",0,"","",2,2,250,0,1000,1,0,0,"","",0,0,1,2,"default","hand",""],this); stm_bp("p0",[1,4,0,0,10,10,0,0,100,"",-2,"",-2,50,2,15,"#000000","transparent","bg_05.gif",0,0,0,"#AE3A05"]); stm_ai("p0i0",[0,"صفحه اصلی","","",-1,-1,0,"home.php","_self","","","","",0,0,0,"","",0,0,0,1,2,"#FFFFF7",1,"#B5BED6",1,"0604button.gif","0604button1.gif",3,3,0,0,"#999999","#000000","#000000","#000000","bold 10pt Verdana","bold 10pt Verdana",0,0],133,25); stm_aix("p0i1","p0i0",[0,"ماشین","","",-1,-1,0,"view.php?type=car","_self","","","","",0,0,0,"","",0,0,0,1,2,"#FFFFF7",1,"#B5BED6",1,"0604button.gif","0604button1.gif",3,3,0,0,"#FFFFF7"],133,25); stm_aix("p0i2","p0i1",[0,"طبیعت","","",-1,-1,0,"view.php?type=nature","_self","","","","",0,0,0,"","",0,0,0,1,2,"#FFFFF7",1,"#B5BED6",1,"0604button.gif","0604button1.gif",3,3,0,0,"#FFFFF7"],133,25); stm_aix("p0i3","p0i1",[0,"گل","","",-1,-1,0,"view.php?type=flower","_self","","","","",0,0,0,"","",0,0,0,1,2,"#FFFFF7",1,"#B5BED6",1,"0604button.gif","0604button1.gif",3,3,0,0,"#FFFFF7"],133,25); stm_aix("p0i4","p0i0",[0,"ورزشی","","",-1,-1,0,"view.php?type=sport","_self","","","","",0,0,0,"","",0,0,0,1,2,"#FFFFF7",1,"#B5BED6",1,"0604button.gif","0604button1.gif",3,3,0,0,"#FFFFF7"],133,25); stm_aix("p0i5","p0i0",[0,"کارتون","","",-1,-1,0,"view.php?type=cartoon","_self","","","","",0,0,0,"","",0,0,0,1,2,"#FFFFF7",1,"#B5BED6",1,"0604button.gif","0604button1.gif",3,3,0,0,"#FFFFF7"],133,25); stm_aix("p0i6","p0i1",[0,"موبایل","","",-1,-1,0,"view.php?type=mobile","_self","","","","",0,0,0,"","",0,0,0,1,2,"#FFFFF7",1,"#B5BED6",1,"0604button.gif","0604button1.gif",3,3,0,0,"#FFFFF7"],133,25); stm_aix("p0i7","p0i2",[0,"بازیگران","","",-1,-1,0,"view.php?type=player","_self","","","","",0,0,0,"","",0,0,0,1,2,"#FFFFF7",1,"#B5BED6",1,"0604button.gif","0604button1.gif",3,3,0,0,"#FFFFF7"],133,25); stm_aix("p0i8","p0i3",[0,"حیوانات","","",-1,-1,0,"view.php?type=animals","_self","","","","",0,0,0,"","",0,0,0,1,2,"#FFFFF7",1,"#B5BED6",1,"0604button.gif","0604button1.gif",3,3,0,0,"#FFFFF7"],133,25); stm_aix("p0i9","p0i4",[0,"سایر","","",-1,-1,0,"view.php?type=other","_self","","","","",0,0,0,"","",0,0,0,1,2,"#FFFFF7",1,"#B5BED6",1,"0604button.gif","0604button1.gif",3,3,0,0,"#FFFFF7"],133,25); stm_ep(); stm_cf([3,0,0,"Main_frame","Navigation_frame",1]); stm_em(); //--> با کلیک بر روی هر کدام از گزینه های منو می توان به آن عکس از آن نوع دست یافت.
$link=mysql_connect("localhost","root",""); if (!$link) die("could not connect to mysql"); mysql_select_db('gallery') or die ("couldnot open database"); $type=$_GET['type']; $select_type=mysql_query("select * from picture where type='".$type."'"); $i=1; while($row=@mysql_fetch_array($select_type)) { $array[$i]=$row['name']; $i++; } این کد با متد $_Get از query string ای را دریافت می کند که در آن مشخص کننده نوع یا Type عکس های خواسته شده مشخص شده است.
در کد بالا مشاهده می کنید که پس از اتصال به MySQL از تمام عکس های مورد نظر با نوع خواسته شده انتخاب می شوند و در صفحه View.php نمایش داده میشود.
وقتی دکمه login زده شود چه اتفاقی می افتد session_start(); $link=mysql_connect("localhost","root",""); if (!$link) die("could not connect to mysql"); mysql_select_db('gallery') or die ("couldnot open database"); $type=$_GET['type']; $select_type=mysql_query("select * from picture where type='".$type."'"); $i=1; while($row=@mysql_fetch_array($select_type)) { $array[$i]=$row['name']; $i++; } ///////////////////login////////////// if (isset($_POST['login'])) { $user=$_POST['username']; $pass=$_POST['password']; if($user and $pass) { $pass=sha1($pass); if(strlen (trim($user))) { if(strlen (trim($pass))) $query="select * from user where username='$user' && password='$pass'"; } $link = mysql_connect( "localhost", "root", "" ); if ( !
$link ) die( "Could not Connect To MySQL" ); mysql_select_db("Gallery") or die( "Could not open Gallery" ); $result = mysql_query($query) or die(mysql_error()); if(mysql_num_rows($result)) { $_SESSION['valid_user']=$user; } }} چک می کند اگر دکمه login زده شده و داخل text box های user name و password مقداری وجود دارد آنها را داخل متغیر میگذارد.
user را داخل متغیر $user می گذاردوpassword را داخلpass $ می گذارد.
بعد داخل data base را چک میکند که آیا همچنین user ی وجود دارد یا نه اگر وجود دارد و password ان نیز درست است .
$_SESSION['valid_user']=$user; User name کاربر را داخل متغیر session قرار میدهد.
وقتی دکمه logout زده شود چه اتفاقی می افتد else if (isset($_POST['logout'])) { $old_user=$_SESSION['valid_user']; unset($_SESSION['valid_user']); session_destroy(); } اگر دکمه logout زده شود متغیر داخل session را با دستور آن set و غیر فعال میکند.
unset($_SESSION['valid_user']); وبا دستور session_destroy(); Session پایان می آید.
if(isset($_SESSION['valid_user'])) { $username=$_SESSION['valid_user']; ?> Hi echo " WELCOME ";?> else { ?> داخل متغیر session چک میکند اگر داخل متغیر session نام کاربری وجود داشته باشدصفحه خوشامد گویی ظاهر میشود.
و اگر داخل متغیر session نام کاربری وجود نداشته باشد یا خالی باشد دوباره بر میگردد به شکل آغازین و درخواست user وpassword میدهد.
if(isset($_POST["search"])) { $search=$_POST["search"]; $res=$_POST["res"]; $type=$_POST["title"]; $link=mysql_connect('localhost','root',''); if(!$link) die ("could not connect mysql"); mysql_select_db('gallery') or die ("could not open database"); $query="select name from picture where name like '%$search%' and resolution like '$res' and type like '$type'"; $result=mysql_query($query); $i=0; while($row=@mysql_fetch_array($result)) { $array[$i]=$row['name']; $i++; }} //$count=mysql_num_rows($result); //echo $count; $count=count($array); if($count>=1) {?> found file $i=0; for(;$i { ?> ">" width="150" height="150" align="middle"/> ">" width="150" height="150" align="middle"/> ">" width="150" height="150" align="middle"/>"> اطلاعاتی را که در مورد عکس مورد جستجو از صفحه home.php به این صفحه فرستاده شده را داخل data base چک میکند و عکسهایی را که شبیه این مشخصات باشد را انتخاب میکند و آنها را کوچک نمایش میدهد.درصورتی کلیک بر روی هر کدام از این عکسها برای بزرگنمایی آنها صفحه view.php باز میشود.
صفحه بزرگنمایی عکس در صورت عضو بودن(view.php) session_start(); session را شروع میکند.
if(isset($_SESSION['valid_user'])) { $name=$_GET['name']; $type=$_GET['type']; $path="pic/".$name;?> "/> } else { ?> You must member to view large picture.
داخل متغیر session را چک میکند اگر نام کاربری وجود دارد (login شده)عکس را بزرگ و با اندازه واقعی نمایش میدهد و در صورت عدم وجود نام کاربری درون متغیر session (خالی بودن آن) پیغام مبنی بر اینکه عضو نیستید و نمی توانید عکس را بزرگ ببینید مگر اینکه عضو شوید.
به همین ترتیب اگر ما در صفحه view.php کلیک کنیم برا ی بزرگ نشان دادن آن به همین صفحه آمده و همه موارد بالا را برای آن عکس چک میکند (از صفحه view.php و search.php) در صورت کلیک کردن بر روی عکس برای بزرگنمایی به همین صفحه view.php میاییم و موارد بالا اتفاق می افتد.
کتاب طراحی با PHP و MySQL نوشته : ولیانگ / تامسون ترجمه : رضا ابراهیمی کتاب زبان برنامه نویسی 5PHP مولف : محمد صدری PDF PHP گردآورنده : محمد بشیری دانشگاه آزاد اسلامی واحد قوچان موضوع پروژه : سایت گالری عکس استادارجمند : جناب آقای مهدی ابراهیمی دانشجو : مهدی گود اسیایی شماره دانشجویی : 9118411026 زمستان 86