PHP برای برنامه نویسان ASP.NET – قسمت ششم

قسمت اول قسمت دومقسمت سومقسمت چهارمقسمت پنجم

کار کردن با فایل ها در PHP

باز کردن و خواندن یک فایل متنی در PHP

تابع fopen در PHP می تواند یک فایل یا یک URL را برای شما باز کند. کافیست آدرس فایل و حالتی که می خواهید فایل را باز کنید به این تابع بدهید تا این تابع یک handle برای کار با فایل مورد نظر شما، برگرداند. در مثال زیر می خواهیم یک فایل متنی را باز کنیم و خط به خط بخواینم و روی خروجی مرورگر چاپ کنیم.

<?php
$f = fopen(«change.txt»,«r») or exit(«File not found.»);
while (!feof($f))
{
echo fgets($f). «<br />»;
}
fclose($f);
?>

در خط اول با نوشتن دستور fopen(«change.txt»,»r»)x فایل change.txt را با حالت خواندن (r) باز می کنم و PHP هندل آن را برای کارهای بعدی در متغیر $f ذخیره می کند. دستور بعد از or برای این استفاده می شود که اگر فایل وجود نداشت یا خطایی در باز شدن فایل بوجود آمد ما خطای خودمان را نشان کاربر دهیم نه خطایی که PHP می دهد. در شرط حلقه while دستوری بکار رفته به نام feof که هندل یک فایل را می گیرد و اگر فایل به آخر رسیده باشد true و در غیر این صورت false برمی گرداند. در بدنه حلقه while هم از دستور fgets برای خواندن خط به خط فایل متنی استفاده کردیم. در خط آخر نیز باید فایلی که باز کردیم را با استفاده از تابع fclose ببندیم.

در آرگومان دوم تابع fopen همانطور که ملاحظه کردید، باید حالت باز کردن فایل را مشخص کنید. در مثال بالا ما فایل را با حالت فقط خواندنی باز کردیم چون فقط می خواستیم محتویات فایل را بخواینم. حالت های دیگر باز کردن یک فایل در PHP به صورت زیر است :

  • «r» باز کردن فایل به صورت فقط خواندنی
  • «w» باز کردن فایل برای فقط نوشتن، اشاره گر را به اول فایل می برد و این یعنی اگر فایل وجود داشته باشد تمام محتویات قبلی را پاک می کند و از نو می نویسد. اگر فایل وجود نداشته باشد سعی می کند آن را ایجاد کند.
  • «r+» باز کردن فایل برای خواندن و نوشتن. حالت نوشتن شرایط همان «w» را دارد.
  • «a» باز کردن فایل فقط برای نوشتن. اشاره گر را به انتهای فایل می برد و از آنجا شروع به نوشتن می کند (Append می کند). در صورتی که فایل وجود نداشته باشد سعی می کند آن را بسازد.
  • «a+» باز کردن فایل برای خواندن و نوشتن (Append) با شرایط «a»

نوشتن (ایجاد) یک فایل متنی در PHP

حالا که با حالت های مختلف باز کردن یک فایل در PHP آشنا شدید قصد داریم فایلی را در حالت Append باز کنیم و متنی را به انتهای آن اضافه کنیم. به مثال زیر توجه کنید :

<?php
$content = «This is a sample text.\n»;
$filename = «test.txt»;
$handle = fopen($filenmae, «a»);
if (fwrite($handle,$content) == TRUE)
echo «Success»;
else
echo «Faild»;
fclose($handle);
?>

فکر می کنم مثال خیلی واضح باشد. تنها تابع نا آشنا برای شما در این مثال، تابع fwrite است که هندل فایل را در آرگومان اول می گیرد و مقدار آرگومان دوم را در آن فایل ذخیره می کند. تابع fwrite اگر موفق به نوشتن بر روی فایل شود true و در غیر این صورت false برمی گرداند.

در ASP.NET برای نوشتن در یک فایل متنی از کلاس StreamWriter موجود در فضای نام System.IO به صورت زیر استفاده می کنیم :

StreamWriter writer = File.CreateText(«test.txt»);
writer.WriteLine(«test»);
writer.Close();

بررسی وجود یا عدم وجود یک فایل یا یک دایرکتوری در PHP

برای این کار از تایع file_exists استفاده می کنیم که در آرگومان آن باید آدرس فایل یا دایرکتوری مورد نظر خود را بدهیم تا این تابع با برگرداندن true یا false وجود یا عدم وجود فایل را به ما اطلاع دهد. یک مثال کوچک می تواند قطعه کد زیر باشد :

<?php
if(file_exists(«mydirectory/myfile.temp»))
//do something
?>

در ASP.NET برای این کار از متد File.Exists موجود در فضای نام System.IO استفاده می کنیم.

آپلود فایل در PHP

قبلاً در مورد آپلود فایل در ASP.NET توضیح داده بودم +، برای انجام این کار در PHP ابتدا باید یک فرم HTML برای انتخاب فایل توسط کاربر ایجاد کنید و سپس با استفاده از کدنویسی PHP عملیات آپلود بر روی سرور را انجام دهید. فرم HTML شما برای آپلود یک فایل می تواند چیزی شبیه به کد زیر باشد :

<form enctype=»multipart/form-data» action=»upload.php» method=»POST»>
Please choose a file: <input name=»uploaded» type=»file» /><br />
<input type=»submit» value=»Upload» />
</form>

کدهای بالا را در قسمت body یک فایل html ذخیره کنید. این فرم با استفاده از متد post اقدام به ارسال فایل کاربر به صفحه upload.php می کند. حالا یک فایل به نام upload.php کنار فایل HTML بالا بسازید و کدهای زیر را در آن ذخیره کنید :

<?php
$target = «upload-directory/» . basename( $_FILES[‹uploaded›][‹name›]) ;
if(move_uploaded_file($_FILES[‹uploaded›][‹tmp_name›], $target))
echo «The file has been uploaded»;
else
echo «error during uploading.»;
?>

کد بالا برخلاف کدهای دیگری که تا به حال دیدید نیاز به توضیح بیشتری دارد! PHP تمام فایل هایی را که توسط متد post بر بروی سرور آپلود می شوند را همراه با اطلاعات مربوط به آن فایل ها در یک آرایه سراسری به نام $_FILES نگهداری می کند. در خط اول این کد با استفاده از تابع basename نام فایل را از آدرس کامل فایل جدا کردیم و به همراه آدرس دایرکتوری که می خوایم فایل ها در آن آپلود شوند در متغیر target ریختیم. در خط دوم و در شرط if با استفاده از تابع move_uploaded_file فایل های آپلود شده را که دارای نام موقت بر روی سرور هستند را به آدرسی که خودمان می خواهیم (آدرسی که در متغیر target ریختیم) منتقل می کنیم. در حقیقت این تابع کار Rename را انجام می دهد که اگر موفقیت آمیز باشد true و در غیر این صورت false برمی گرداند.

آرایه $_FILES همانطور که گفتم، علاوه بر فایل ها، اطلاعات مربوط به فایل ها را هم در خود ذخیره می کند. مثلاً $_FILES[«uploaded»][«tmp_name»] نام موقت فایل بر روی سرور را برمیگرداند. این اطلاعات خیلی مفید هستند، به طور مثال شما می توانید سایز و پسوند فایل را چک کنید که اگر دلخواه شما نبود به کاربر اجازه آپلود فایل را ندهید. به مثال زیر توجه کنید :

<?php
if(($_FILES[«userfile»][«type»] == «image/jpeg») &&
($_FILES[«userfile»][«size»] < 50000))
echo «Successfuly uploaded.»;
else
echo «Invalid file size or file type.»;
?>

در این کد چک می کنیم که فایل ارسالی کاربر از نوع عکس jpeg و سایز آن کمتر از 5 کیلوبایت باشد. خب فکر میکنم این مطلب خیلی طولانی شد 🙂 ادامه این مطلب را در قسمت های بعدی بخوانید…!

PHP برای برنامه نویسان ASP.NET – قسمت پنجم

قسمت اول قسمت دوم قسمت سومقسمت چهارم

فرستادن ایمیل در PHP

یکی از نیازهای اساسی یک برنامه نویس وب، توانایی فرستادن ایمیل توسط برنامه تحت وب است. PHP برای این کار یک تابع ساده به نام mail در اختیار برنامه نویس قرار می دهد که باید آرگومان هایی مثل آدرس ایمیل شخص گیرنده، موضوع و متن ایمیل را برای آن مشخص کنید. به مثال ساده زیر توجه کنید :

<?php
$to = "imun22@gmail.com";
$subject = "Hello";
$body = "This is a test.";
$headers = "From : someone@gmail.com";
mail($to,$subject,$body,$headers);
?>

در مثال بالا ایمیلی با موضوع Hello به آدرس imun22@gmail.com از طرف someone@gmail.com فرستاده می شود. همانطور که می بینید تابع mail چهار آرگومان می پذیرد که البته مشخص نمودن آرگومان headers اختیاری است. شما در هدر ایمیل می توانید اطلاعاتی مثل From، Bcc و Cc را مشخص کنید. فرستادن ایمیل در PHP به همین سادگی است. حالا معادل کد بالا در ASP.NET ببینیم :


MailMessage mail = new MailMessage("someone@gmail.com", "imun22@gmail.com",
"Hello", "This is a test.");
SmtpClient smtp = new SmtpClient();
smtp.Send(mail);

در دات نت می توانید از کلاس MailMessage که در فضای نام System.Net.Mail وجود دارد برای فرستادن ایمیل استفاده کنید.

نشان دادن تاریخ در PHP

در ASP.NET برای گرفتن تاریخ جاری (Current) از کلاس DateTime کمک می گیریم. در PHP باید از تابع date استفاده کنید. این تابع یک آرگومان format دریافت می کند که بر اساس آن رشته خروجی اش را تولید می کند. استفاده از این تابع نکته خاصی ندارد، فقط اینکه با آرگومان فرمت می توانید انواع مختلف فرمت های تاریخ را تولید کنید. به مثال های تابع date توجه کنید :


<?php
echo date("Y/m/d"); //print something like 2010/03/08
echo date("l d F Y"); //print something like Sunday 08 March 2010
?>

فکر میکنم مثال ها واضح باشند. مثلاً استفاده از کاراکتر F در فرمت باعث ایجاد نام کامل ماه جاری در خروجی می شود یا کاراکتر l برای نشان دادن نام روز در هفته بکار می رود. مرجع کامل این تابع را به همراه کاراکترهایی که در قالب بندی تاریخ به کار می روند، اینجا مطالعه کنید.

جایگزینی برای MasterPage

یکی از قابلیت های کاربردی ASP.NET مسترپیج ها هستند. با استفاده از یک MasterPage می توان یک قالب کلی برای ظاهر تمام صفحات وب سایت یا صفحات مرتبط به هم تعیین نمود. در PHP همچین چیزی وجود ندارد اما می توان با استفاده از توابع و قابلیت های موجود چیزی شبیه به آن را پیاده سازی کرد. بدین صورت که Header، Footer و احتمالاً سایدبار قالب صفحات خود را در فایل های جداگانه PHP می نویسید و در هر صفحه آن ها را include می کنید. این روش مناسبی است که نرم افزارهای بزرگی مثل وردپرس نیز از آن استفاده می کنند. استفاده از این روش مزایای زیادی دارد. مثلاً وقتی قرار است Header تمام صفحات شما عوض شود دیگر نیازی نیست کد تک تک صفحات را تغییر دهید، تغییر دادن فایل Header.php کافیست.

تابع include و require محتویات یک فایل php را با آدرس مشخص درون یک فایل دیگر جای می دهند. به مثال زیر توجه کنید :

vars.php
<?php
$sitename = 'farasun';
?>

index.php
<?php
include('header.php');
include('sidebard');
include('vars.php');
echo $sitename;
include('footer.php');
?>

در مثال بالا فرض کنید که فایل vars.php در کنار فایل index.php قرار دارد. در فایل index.php محتویات فایل هایی که include شده اند قرار می گیرد و متغیر sitename که در فایل vars.php قرار داشت، چاپ می شود. در فایل های header.php، sidebar.php و footer.php می توانید از دستورات html و php برای قالب دهی و گرفتن اطلاعات مورد نیاز برای صفحات استفاده کنید.

توابع include و require هر دو یک کار را انجام می دهند با یک تفاوت، که اگر فایل مورد نظر وجود نداشته باشد include یک warning می دهد و require یک خطای مهلک یا fatal error.

فکر می کنم با این توضیحات و این مثال کوچک، کاربرد توابع include و require را فهمیده باشید.در مطالب بعدی با نحوه کار کردن با فایل ها، آپلود فایل ها و دسترسی به داده های یک پایگاه داده در PHP آشنا خواهید شد. با ما همراه باشید!

farasun.wordpress.com

مشترک فراسان شوید! چطور مشترک شوید؟

farasun.wordpress.com

این مطلب ادامه دارد….

PHP برای برنامه نویسان ASP.NET – قسمت دوم

قسمت اول را در اینجا بخوانید.

پردازش فرم ها

ASP.NET تمام سعی خود را کرده تا برنامه نویس را درگیر پردازش فرم های HTML نکند. در واقع یک برنامه نویس ASP.NET ممکن است با فرم های HTML آشنایی نداشته باشد اما در هر صفحه وبی که ایجاد می کند از آن ها استفاده کند. ASP.NET به صورت پیش فرض در هر یک از صفحات aspx یک فرم HTML قرار می دهد تا برنامه نویس بتواند با داده های ورودی کاربر کار کند. شاید در ASP.NET احتیاجی به دانستن نحوه ایجاد و کارکرد فرم های HTML نداشتید اما پردازش فرم های وب یکی از ملزومات اساسی PHP است.

فرم وب

اطلاعات فرم های HTML به دو روش Get و Post فرستاده و دریافت می شوند. در ASP.NET شاید این روش ها از دید برنامه نویس پنهان بمانند اما در PHP این برنامه نویسان هستند که باید در مورد استفاده از این روش ها در شرایط مختلف تصمیم گیری کنند. اطلاعات فرم ها در ASP.NET همیشه به خود صفحه فرستاده می شوند و به صورت پیش فرض از متد post برای این کار استفاده می کند. هنگامی که اطلاعات فرم به سرور برای پردازش فرستاده می شود و دوباره به صفحه باز می گردد، یک PostBack اتفاق می افتد. برای اینکه از متد get استفاده کنیم می توانیم یکسری پارامتر به صفحه مورد نظر خود بفرستیم و در صفحه مقصد با استفاده از Request.QueryString (که آرایه ای است از پارامترهای فرستاده شده توسط صفحه مبدا) اطلاعات فرستاده شده را بخوانیم.

اما در PHP این پروسه تفاوت زیادی دارد. شما باید خودتان در مورد متد ارسال اطلاعات تصمیم گیری کنید. در PHP اطلاعاتی که به روش get فرستاده می شوند را می توان در آرایه $_GET و اطلاعاتی که به روش post فرستاده می شوند را در آرایه $_POST پیدا کرد.

روش Post

همانطور که گفتم ASP.NET از این روش به صورت پیش فرض برای پردازش فرم ها استفاده می کند. در PHP شما می توانید با استفاده از متغیر سراسری $_POST به اطلاعات فرستاده شده توسط این روش دستیابی پیدا کنید. یک مثال کوچک می تواند مسئله را روشن تر کند :

<form action=«welcome.php» method=«post»>
Name: <input type=«text» name=«fname» />
<input type=«submit» name=«btnSubmit» />
</form>

یک فرم ساده HTML ساختیم که اطلاعات خودش (فیلد نام) را به صفحه welcome.php با روش post می فرستد. حالا فایل welcome.php را به صورت زیر می سازیم :

Welcome <?php echo $_POST[«fname»]; ?>!<br />

با این یک خط کد ساده اطلاعات فیلد fname را که در صفحه قبل قرار داشت، خواندیم. PHP در روش Post به صورت خودکار فیلدهای فرم را شناسایی می کند. اطلاعات ارسالی توسط این روش برای دیگران قابل رویت نیست و محدودیتی در حجم اطلاعات ارسالی نداریم. البته به صورت پیش فرض ماکزیمم حجم اطلاعات ارسالی در روش Post در PHP برابر با 8 مگابایت است که این مقدار را می توانید در فایل php.ini و با تغییر ثابت post_max_size در این فایل تغییر دهید.

یکی از کاربردهای مهم روش post که در ASP.NET هم استفاده می شود، اعتبار سنجی سمت سرور یا Server Side Validation است. به این صورت که اطلاعات فرم را به جای اینکه به یک صفحه دیگر بفرستید به خود صفحه می فرستید تا عمل اعتبار سنجی انجام شود. سپس اگر اطلاعات ورودی خطایی داشته باشد، در همین صفحه از کاربر می خواهید که اطلاعات را صحیح وارد کند. این روش برای اعتبارسنجی سمت سرور اطلاعاتی که می خواهند در دیتابیس ذخیره شوند بسیار مرسوم است.

روش Get

بر خلاف متد post، اطلاعاتی که با این روش فرستاده می شوند توسط همه قابل رویت هستند. کاربران این اطلاعات را در نوار آدرس مرورگر خود می بینند و برای اطلاعات ارسالی محدودیت حجمی داریم. متغیر $_GET در PHP شامل اطلاعات فرمی است که با متد get ارسال شده است. به مثال زیر توجه کنید :

<form action=«welcome.php» method=«get»>
Name: <input type=«text» name=«fname» />
<input type=«submit» />
</form>

برای نشان دادن اطلاعاتی که از این فرم به فایل welcome.php با استفاده از روش get فرستاده می شود، فایل welcome.php را به صورت زیر می سازیم :

Welcome <?php echo $_GET[«fname»]; ?>.<br />

هنگامی که کاربر روی دکمه submit فرم کلیک کند، نوار آدرس مرورگر او آدرسی شبیه به آدرس زیر را نشان خواهد داد :

http://yoursitename.com/welcome.php?name=value

این همان QueryString خودمان در ASP.NET است! در  URL بالا قسمتی که آبی است و بعد از علامت سئوال قرار گرفته را Query String می گویند. ما در ASP.NET برای دسترسی به مقدار پارامتر name در URL بالا از دستور زیر استفاده می کنیم :

Request.QueryString[«fname»]

یکی از مزایای استفاده از روش Get این است که کاربر می تواند صفحه را بوکمارک کند، چون دارای یک آدرس مشخص است. هنگامی که از متد get در PHP استفاده می کنید باید به این نکته توجه کنید که تمام فیلد ها به علاوه مقادیر آن ها در نوار آدرس مرورگر قابل مشاهده هستند، پس نباید برای ارسال اطلاعات حساس مثل رمز عبور از این روش استفاده کنید.

نکات تکمیلی

ما در ASP.NET قبل از اینکه از مقادیر موجود در QueryString استفاده کنیم، چک می کنیم که مقداردهی شده باشد، یعنی null نباشد. برای این کار از کدی شبیه به زیر بهره می بریم :

if (Request.QueryString[«fname»] != null)
//do something

معادل شرط بالا در PHP کدی شبیه به کد زیر است :

if (isset($_GET[«fname»]){
//do something
}

یعنی اگر فیلد fname مقداردهی شده بود عمل مورد نظر را روی آن انجام بده.

farasun.wordpress.com

در مطلب بعد با کوکی ها و نحوه استفاده از آن ها در PHP آشنا خواهید شد. برای اینکه مطالب بعدی را از دست ندهید مشترک فراسان شوید! چطور مشترک شوید؟

farasun.wordpress.com

این مطلب ادامه دارد…

پ.ن : از این به بعد برای تماس با من از این فرم استفاده کنید!

PHP برای برنامه نویسان ASP.NET – قسمت اول

برخی مواقع ممکن است یک برنامه نویس ASP.NET احتیاج به استفاده از PHP پیدا کند یا بخواهد ASP.NET را کنار بگذارد و به دنیای PHP کوچ کند! هرچند این اتفاق در مورد برنامه نویسان ایرانی کمتر می افتد زیرا تمام ابزارهای تکنولوژی گرانی مثل ASP.NET به صورت رایگان در اختیار آن هاست. ممکن است وب سرور مشتری شما لینوکس باشد و مونو هم روی آن نصب نباشد و شما برای اینکه مشتری خود را از دست ندهید می توانید از PHP استفاده کنید. حتی اگر هیچ گاه نیازی به PHP هم پیدا نکنید، دانستن دستورات معادل ASP.NET در PHP بهتر از ندانستن آن است. اگر شما هم یک برنامه نویس ASP.NET هستید یا حتی برنامه نویس PHP هستید، این مطلب می تواند دید خوبی در مورد تکنولوژی که با آن آشنایی ندارید به شما بدهد.

PHP for ASP.NET Developers

همانطور که می دانید ASP.NET یک زبان نیست، بلکه یک فریم ورک رایگان و مجموعه ای از مولفه های نرم افزاری است که شما می توانید به کمک آن وب اپلیکیشن هایی را با زبان هایی مثل سی شارپ و ویژوال بیسیک بنویسید. برنامه های ASP.NET ابتدا کامپایل می شوند و سپس روی سرور اجرا می شوند. PHP یک زبان اسکریپت نویسی کدباز است که دارای کتابخانه های مختلفی برای انجام دادن کارهای مورد نیاز در وب است. کدهای PHP معمولاً با کدهای HTML ترکیب می شوند و پس از تفسیر توسط مفسر PHP به مرورگر فرستاده می شود.

سینتاکس PHP

PHP از خانواده زبان های C است، قواعد نوشتن دستورات PHP کاملاً شبیه به زبان C است. به طور مثال باید در آخر هر دستور از علامت ; استفاده کنید. اگر با سی شارپ آشنا باشید برای یادگیری سینتاکس PHP مشکلی نخواهید داشت. به یک مثال کوچک و ساده از PHP توجه کنید :

<html>
<head>
<title>
PHP Test</title>
</head>
<body>

<?php echo ‹<p>Hello World</p>›; ?>
</body>
</html>

همانطور که گفتم می توان دستورات PHP را داخل یک فایل HTML نوشت. ما در ASP.NET وقتی بخواهیم در لابه لای کدهای HTML برنامه نویسی کنیم از تگ های <% %> استفاده می کنیم. در PHP هم برای اینکه بتوانیم به مفسر بفهمانیم که این دستورات را برای ما تفسیر کند، بایستی کدهای خود را در تگ های <?php و <? قرار دهیم. دستور echo در اینجا همان کار Response.Write را انجام می دهد. در حقیقت دستور معادل آن یک خط کد PHP در ASP.NET دستور زیر است :

Response.Write(«<p>Hello World</p>»);

متغییر ها در PHP

برای تعریف یک متغیر در PHP یک علامت $ در ابتدای نام متغیر می گذاریم و سپس آن را برابر مقداری که می خواهیم در آن متغیر ذخیره شود قرار می دهیم. برخلاف زبان های ASP.NET که حتماً باید نوع یک متغیر را در هنگام تعریف آن صریحاً اعلام کنید، در PHP این کار لازم نیست و خود مفسر با توجه به مقداری که درون متغیر می ریزید نوع آن را تعیین می کند. به مثال زیر توجه کنید :

<?php
$a = «iman»; // string
$b = 22; // integer
$c = TRUE; // boolean
$d = 24.895; //float
?>

فکر نمیکنم نیازی به توضیح اضافی باشد. امیدوارم این را بدانید که کلمات بعد از // به عنوان توضیحات نوشته شده اند! البته PHP دارای انواع دیگری نیز هست که ما در این مطب به آن ها نخواهیم پرداخت. فقط برای استفاده از یک متغیر باز هم باید نام آن را با $ همراه سازید. برای مثال برای چاپ مقدار متغیر a که در بالا تعریف کردیم باید به صورت زیر عمل کنیم :

echo ‹my name is $a›;

همچنین برای تعریف یک ثابت در PHP از سینتاکس زیر پیروی کنید :

define(«CONST_NAME», «farasun»);

تعریف توابع در PHP

می خواهیم متد زیر که به زبان سی شارپ است را به یک تابع PHP تبدیل کنیم :

private bool Example(int arg)
{
if (arg == 10) return true;
else return false;
}

همانطور که گفتیم در PHP هنگام تعریف متغیر نوع آن را مشخص نمی کنیم. در تعریف تابع نیز احتیاجی به تعیین نوع برگشتی تابع یا نوع آرگومان های آن نداریم. تابع متناظر با متد بالا در زبان PHP چنین چیزی می شود :

function Example($arg)
{
if ($arg == 10) { return TRUE; }
else { return false; }
}

مشاهده می کنید که در اینجا دیگر خبری از کلمات کلیدی private یا bool نیست! در ASP.NET هر صفحه خودش یک کلاس است اما در PHP چون به صورت پیش فرض کلاسی وجود ندارد پس خبری از private یا public بودن تابع نیست. برای صدا زدن تابع نیز کافیست نام آن را همراه با پارامترهای آن صدا بزنیم. همانند سی شارپ یا ویژوال بیسیک خودمان!

جایگزینی برای Response.Redirect

ما در ASP.NET برای فرستادن کاربر به یک صفحه وب دیگر از Response.Redirect استفاده می کنیم که در حقیفت یک درخواست به مرورگر کاربر برای تغییر صفحه وب می فرستد. در PHP تابعی به نام header وجود دار که کی تواند یک هدر HTTP را به مرورگر کاربر بفرستد. با کد PHP زیر می توانیم کاربر را به سایت گوگل بفرستیم :

header(«location: http://www.google.com&raquo;);

جایگزینی برای Request.Url

برای بدست آوردن آدرس URL صفحه وب جاری در ASP.NET از Request.Url استفاده می کنیم. در PHP می توانیم این آدرس را با روش زیر بسازیم :

$host = $_SERVER[‹SERVER_NAME›];
$uri = $_SERVER[‹PHP_SELF›];
echo «$host$uri»;

متغیر host آدرس سایت (به طور مثال http://emaple.com) و متغیر uri آدرس فایل (به طور مثال directory/test.php) را ذخیره می کند. سپس در خط سوم این دو به هم می چسبند و آدرس کامل صفحه را چاپ می کنند.

نکات تکمیلی

در این مطلب کوتاه نمی توان تمام جایگزین ها را معرفی کرد. اکثر جایگزین های پراپرتی ها و متدهای شیء Request را می توانید در متغیر رزور شده $_SERVER پیدا کنید. مستندات کامل این متغیر را در اینجا بخوانید. به علت شباهت زیاد PHP با زبان های خانواده C در اینجا از آموزش ساختارهای کنترلی این زبان مانند if و switch و حلقه های for و while اجتناب کردیم. اگر سی شارپ بلد باشید مطمئن باشید این دستورات PHP را نیز بلد خواهید بود.

در مطالب بعدی به مباحث مورد نیاز دیگر مانند پردازش فرم های وب، کوکی ها و مدیریت Sessionها و دسترسی به داده های یک دیتابیس در PHP خواهیم پرداخت. برای اینکه این مطالب را از دست ندهید، می توانید مشترک فراسان شوید! چطور مشترک شوید؟

farasun.wordpress.com

این مطلب ادامه دارد…

کاهش زمان و هزینه تولید پروژه های تحت وب با CMSهای اوپن سورس دات نت

CMS یا سیستم مدیریت محتوا، نرم افزاری است که برای ایجاد، ویرایش، مدیریت و جستجوی محتوای دیجیتالی بر روی وب به کار گرفته می شود. اگر بگوییم نرم افزارهای مدیریت محتوا، وب را متحول کردند، حرف اشتباهی نزده ایم. هم اکنون تعداد بسیار زیادی CMS برای ایجاد وب سایت های پویا در دنیا وجود دارد. بسیاری از این CMSها به صورت اوپن سورس و آزاد در اختیار کاربران قرار می گیرند. نمونه ی بارز یک CMS خوب و اوپن سورس را می توان همین نرم افزار وردپرس عنوان کرد، که به شما اجازه مدیرت محتوای وبلاگتان را می دهد.
اهمیت CMS به حدی است که ارزش یک زبان برنامه نویسی تحت وب مثل PHP را با تعداد، قدرت و نفوذ CMSهایی که با آن توسعه داده شده اند، می سنجند. البته امروزه تعداد CMSهای کاربردی تحت وب به حد انفجار رسیده است و تقریباً برای رفع هر نیازی در وب یک CMS خوب وجود دارد. به همین علت توصیه می شود به جای ایجاد یک CMS جدید، CMSهای اوپن سورس را توسعه دهید.
پلفت فرم ASP.NET مایکروسافت هم دارای چندین CMS قدرتمند و اوپن سورس است که شما می توانید از آن ها در پروژه های خودتان استفاده کنید و با کمی تغییر و کدنویسی به نتیجه دلخواهتان برسید.

ASP.NET


DotNetNuke

CMS معروف دنیای دات نت، فریم ورک کاربردی و قدرتمند برای ایجاد و مدیریت محتوای پرتال ها و وب سایت های پویا که توسط مایکروسافت پشتیبانی می شود. DotNetNuke انتخاب مناسبی برای وب سایت های بزرگ و سازمانی است و امکان اداره چندین پرتال را در یک پایگاه داده واحد به شما می دهد. دات نت نیوک دارای اجتماع کاربری بسیار بزرگی است و از آن در بسیاری از وب سایت های بزرگ و دولتی استفاده می شود، فقط کافیست نگاهی به مشتریان آن بیندازید تا عظمت آن را درک کنید. دات نت نیوک امکانات خوبی برای سفارشی کردن و محلی کردن پورتال ها در اخیتار شما قرار می دهد و زبان فارسی هم برای آن در دسترس است. هر چند دات نت نیوک قدرت ایجاد هر نوع وب سایتی را دارد اما برای ایجاد و مدیریت وب سایت های کوچک توصیه نمی شود.

DotNetNuke

umbraco
شعار umbraco سادگی، زیبایی و انعطاف است. این CMS قدرتمند بوسیله سی شارپ توسعه داده شده و در عمل کارایی خوبی را از خودش نشان داده است. هر چند برخی از برنامه نویسان توسعه این CMS را مشکل می دانند اما در واقع این طور نیست. اجتماع کاربری این CMS به گستردگی DNN نیست، اما مطمئن باشید کسی پیدا می شود که جواب سئوال ها و مشکلات شما را بدهد.

Rainbow
این CMS یک موتور ایجاد وب سایت و پرتال های پویا است که امکانات خوبی را به کاربران خود ارائه می کند. Rainbow با استفاده از سی شارپ توسعه داده می شود، هر چند به اندازه دان نت نیوک قدرتمند نیست اما دارای اجتماع کاربری مناسبی است. ماژول های زیادی برای این CMS نوشته شده و دارای پشتیبانی تقریباً مناسبی است.

mojoPortal
موجوپرتال CMS قدرتمند دیگری است که شما را در مدیریت وب سایت ها و پرتال های بزرگ یاری می کند. با استفاده از موجوپرتال ایجاد وب سایت های پیشرفته ساده خواهد بود. امکاناتی که این CMS در اختیار کاربران نهایی میگذارد شامل وبلاگ، فاروم، گالری عکس، تجارت الکترونیکی، سرویس نقشه گوگل، نظرسنجی، خبرنامه و امکانات متنوع دیگر است. موجوپرتال اجتماع کاربری بزرگ و مناسبی هم دارد. زبان فارسی در موجوپرتال به صورت رسمی پشتیبانی می شود. در ضمن این CMS برنده جایزه بهترین CMS غیر PHP در سال 2007 شده است.

Cuyahoga
این CMS برخلاف دیگر CMSها که فقط در هاست ویندوز قابل اجرا هستند و اغلب از SQL Server به عنوان پایگاه داده استفاده می کنند، قادر است روی پلت فرم مونو اجرا شود و در نتیجه با هاست لینوکس و پایگاه داده MySQL و PostgreSQL هم کار می کند. قابلیت مدیریت چندین وب سایت با یک پایگاه داده، موتور جستجوی قدرتمند و ایجاد آدرس های SEO از ویژگی های بارز این CMS است. در ایجاد این نرم افزار از NHibernate استفاده شده، و به همین علت به پایگاه داده خاصی وابستگی ندارد.

N2 CMS
N2 یک CMS سبک، ساده و در عین حال قدرتمند برای ایجاد وب سایت های پویا است. به گفته سازندگانش، توسعه این CMS بسیار آسان است و استفاده از آن در عمل برای کاربران نهایی بسیار آسان تر. به علت استفاده از NHibernate در این پروژه، کاربر می تواند از هر پایگاه داده ای شامل SQL Server و MySQL برای نصب N2 بهره ببرد. استفاده از کتابخانه jQuery و AJAX و داشتن رابط کاربری دوستانه N2 را به یکی از انتخاب های مناسب برای راه اندازی وب سایت های بزرگ تبدیل نموده است.

نتیجه
در این مطلب با 6 CMS اوپن سورس و قدرتمند که با استفاده از فریم ورک ASP.NET مایکروسافت توسعه داده می شوند، آشنا شدیم. البته تعداد CMSهای اوپن سورس دات نت بیش از این هاست، CMSهایی مثل XMLNuke، nkCMS، JMDCMS، VWD-CMS و GO.Kryo یا سیستم های مدیریت محتوای وبلاگ مثل BlogEngine.NET یا Subtext. امروزه دیگر کسی وقتش را صرف ایجاد سیستمی که از قبل اوپن سورس آن وجود دارد نمی کند. در کشور خودمان هم خیلی از شرکت های نرم افزاری، نرم افزارهای اوپن سورس را به صورت سفارشی شده به مشتریان شان می فروشند. حالا بگذریم که بعضی ها بدون در نظر گرفتن موارد مجوزنامه های اوپن سورس، از این نرم افزارها سوء استفاده می کنند، اما در کل استفاده از نرم افزارهای اوپن سورس در راه درست خیلی بهتر و به صرفه تر از نوشتن یک نرم افزار از ابتدا است. مثلاً تا نرم افزاری مثل دات نت نیوک وجود دارد، عاقلانه نیست که شما یک وب سایت بزرگ را از ابتدا تولید کنید. بلکه می توانید از مثلاً دات نت نیوک استفاده کنید و ویژگی هایی که لازم دارید یا مشتری سفارش داده است را به آن اضافه کنید.

farasun.wordpress.com
شاید این مطالب هم برای شما خواندنی باشند :

  • انواع فایل ها و دایرکتوری ها در ASP.NET
  • آشنایی با وب فرم ها در ASP.NET
  • سیلورلایت 3.0 ارائه شد
    farasun.wordpress.com
    اگر تمايل به دنبال کردن مطالب اين وبلاگ داريد، مي توانيد مشترک فيد فراسان شويد.

    چطور مشترک شويم؟

  • 20+ افزونه فایرفاکس برای توسعه دهندگان و طراحان وب

    فایرفاکس مرورگری کدباز، رایگان و انعطاف پذیر برای تمام کاربرانی است که می خواهند ضمن داشتن امنیت در اینترنت، از وب گردی لذت ببرند. معمولاً فایرفاکس انتخاب اول کاربران حرفه ای و البته برنامه نویسان و توسعه دهندگان وب است. کاربران فایرفاکس می توانند با نصب افزونه (Extension) های مختلف کارایی های این مروگر را افزایش دهند و آن را با نیازهای خود تطبیق دهند. افزونه ها به اصطلاح برنامه های اضافی کوچکی هستند که برای هدفی خاص و در جهت بهبود امکانات مرورگر فایرفاکس روی آن نصب می شوند. در این مطلب به معرفی 20 افزونه سودمند برای توسعه دهندگان و طراحان وب خواهیم پرداخت.

    Firebug – دریافت

    این افزونه برای بسیاری از برنامه نویسان وب آشناست و نیازی به معرفی ندارد. این افزونه به شما قدرت ویرایش و خطایابی کدهای CSS, HTML و JavaScript را می دهد. اگر می خواهید کدهای CSS سایت خود را ویرایش کنید و پیش نمایش آن را به صورت زنده ببینید، این افزونه همانی است که به دنبالش می گردید. توجه : برای استفاده از بعضی افزونه های زیر ابتدا باید فایرباگ را نصب کرده باشید.

    firefox-extensions-for-web-developers

    FireFTP – دریافت

    این افزونه دسترسی به سرورهای FTP را برای شما فراهم می کند. می توانید به صورت مستقیم از فایرفاکس به فایل های وب سایتی که در حال طراحی آن هستید دسترسی پیدا کنید، فایل آپلود یا دانلود کنید. با داشتن این افزونه دیگر احتیاجی به نصب کلاینت FTP جداگانه ای نخواهید داشت.

    ColorZilla – دریافت

    ابزاری است برای بدست آوردن کد رنگ عناصر به کار رفته در صفحات وب. با این افزونه می توانید روی عنصار صفحه زوم کنید و کد رنگ هر نقط از صفحه را بدست آورید.

    SenSEO – دریافت

    این افزونه صفحه وب شما را آنالیز کرده و آن را بر اساس معیارهای SEO ارزش گذاری می کند. به شما کمک می کند تا جایگاه وب سایت خود را نزد موتورهای جستجو بدانید. برای استفاده از این افزونه ابتدا باید Firebug را نصب کرده باشید.

    FireScope – دریافت

    این افزونه بر روی Firebug نصب می شود و برگه جدیدی به نام Reference به آن اضافه می کند. در این برگه به مرجع کامل HTML و CSS وب سایت SitePoint دسترسی خواهید داشت که اطلاعات جامعی در مورد کاربرد، نحوه استفاده و همچنین پشتیبانی مرورگرهای مختلف از تگ ها را در اختیارتان قرار می دهد. (اطلاعات بیشتر در این مورد را در وبلاگ دوست خوبم سالار خلیل زاده بخوانید)

    YSlow – دریافت

    این افزونه برگه جدیدی به Firebug اضافه می کند و صفحه وب را بر اساس قوانین Yahoo آنالیز کرده و به شما می گوید چرا صفحه شما کند بارگزاری می شود. برای استفاده از این افزونه باید قبلاً Firebug را روی فایرفاکس نصب کرده باشید.

    GreaseMonkey – دریافت

    یکی از پرکاربردترین و معروف ترین افزونه های فایرفاکس که کاربر را قادر می سازد صفحات وب را بر اساس سلیقه ی خود بوسیله کدهای جاوا اسکریپت، سفارشی کند. صدها اسکریپت آماده جاوا اسکریپت در طبقه بندی های مختلف در این سایت قابل دسترسی اند که می توانید از آن ها در این افزونه استفاده کنید.

    JavaScript Debugger – دریافت

    همانطور که از نامش پیداست، ابزاری است برای خطایابی کدهای جاوا اسکریپت در محیط مروگر فایرفاکس. به گفته کاربران این افزونه برای خطایابی کدهای جاوا اسکریپت از فایرباگ بهتر عمل می کند.

    Web Developer – دریافت

    نام این افزونه برای بسیاری از توسعه دهندگان و طراحان وب آشناست. این افزونه یک منو و یک نوار ابزار با ابزارهای محتلف توسعه وب به فایرفاکس شما اضافه می کند.

    MeasureIt – دریافتی

    روی شکلک خطکش در نوار وضعیت فایرفاکس کلیک کنید تا به شما امکان اندازه گیری تمام اجزای روی صفحه وب را در واحد پیکسل بوسیله اشاره گر ماوس بدهد. برای خارج شدن از این وضعیت دکمه Esc صفحه کلید را فشار دهید.

    FireShot – دریافت

    امکان ایجاد یک اسکرین شات از کل صفحه وب یا قسمتی از آن را به شما می دهد. برخلاف افزونه های مشابه، این افزونه امکان ویرایش اسکرین شات و اضافه کردن متون و اشکال گرافیکی به آن را به کاربر می دهد.

    View Source Chart – دریافت

    مشاهده سورس کد صفحه وب در قالب چارت گرافیکی. این افزونه امکان مشاهده شمای کلی سورس صفحه را بوسیله ترسیم چارت تگ های به کار رفته در صفحه را می دهد.

    Text Formating Toolbar – دریافت

    نوار ابزاری برای قالب بندی متون برای کدهای BBCode, HTML و Wiki را به فایرفاکس شما اضافه می کند. با این افزونه به راحتی می توانید متون قالب بندی شده در قسمت نظرات وبلاگ ها، فاروم های گفتگو و ویکی ها درج کنید.

    View Dependencies – دریافت

    این افزونه برگه ی جدیدی به پنجره Page Info در فایرفاکس اضافه می کند که در آن لیستی از فایل هایی که در صفحه وب جاری بارگزاری شده اند، لیست شده است. این لیست بر اساس نوع فایل (تصویر، صوت، …) مرتب شده است و شما می توانید با کلیک راست روی هر کدام از فایل ها، آن را در یک تب یا صفحه جدید در فایرفاکس باز کنید.

    Window Resizer – دریافت

    به شما کمک می کند تا صفحه وب مورد نظرتان را در Resoulotion های استاندارد مشاهده کنید. با این افزونه می توانید صفحات خود را با دقت های استاندارد نمایشگرهای محتلف تست کنید.

    OperaView – دریافت

    صفحه وب جاری را در مرورگر اپرا باز می کند. با این افزونه می توانید هر چه سریعتر و راحت تر صفحه وب خود را در مرورگر اپرا امتحان کنید. بدیهی است که باید مرورگر اپرا را روی سیستم نصب داشته باشید.

    IE Tab – دریافت

    افزونه ای بسیار سودمند برای مشاهده صفحه وب طراحی شده در مرورگر Internet Explorer. این افزونه مروگر IE را در یک برگه فایرفاکس شبیه سازی می کند تا برای تست صفحه وب خود در IE از فایرفاکس خارج نشوید و نیازی به باز کردن مرورگر IE به صورت جداگانه نداشته باشید.

    HTML Validator – دریافت

    صفحه وب خود را با این افزونه از نظر استانداردهای HTML بسنجید. تعداد و نوع خطاهای HTML موجود در صفحه وب را در نوار وضعیت با استفاده از شکلک ها نمایش می دهد.

    CSS Validator – دریافت

    صفحه وب شما را بر اساس استاندادهای CSS بوسیله W3C CSS Validator می سنجد.

    RSS Validator – دریافت
    صفحه وب شما را بر اساس استانداردهای RSS بوسیله W3C RSS Validator می سنجد. وقتی یک فید RSS را در فایرفاکس باز می کنید، می توانید با کلیک راست روی صفحه و انتخاب گزینه Validate the RSS feed این کار را انجام دهید.

    farasun.wordpress.com

    پ.ن : این نوشته می تواند با کمک شما به مرور تکمیل گردد. لطفاً اگر افزونه ی مناسب دیگری می شناسید معرفی کنید.در ضمن تصاویر افزونه ها درج نشده اند تا کاربران برای بارگزاری صفحه دچار مشکل نشوند.

    شاید این مطالب هم برای شما خواندنی باشند :

    اگر تمايل به دنبال کردن مطالب اين وبلاگ داريد، مي توانيد مشترک فيد فراسان شويد.

    چطور مشترک شويم؟