در این مقاله طریقه ایجاد یک شمارنده سایت در php را یادخواهیم گرفت. شمارنده سایت برنامه ای است که تعداد دفعات مشاهده سایت مورد نظر شما توسط کاربران را نگهداری میکند. این مشارنده ممکن است برای کاربارن قابل مشاهده یا غیرقابل مشاهده باشد.
در این برنامه قصد داریم شمارنده ای بنویسم که توسط کاربران قابل مشاهده باشد. برای نوشتن این برنامه آشنایی داشتن با مفاهیم HTML الزامی است اما مشا به دانش چندان بالایی در زمینه php نیازی ندارید.
بسیارخب ، ابتدا صفحه ای که میخواهیم شمارنده مورد نظر را در آن قرار دهیم انتخاب میکنیم. بهترین انتخاب صفحه اول سایت یا اصطلاحا صفحه خانگی است. چرا که اغلب کاربران معمولا ابتدا وارد این صفحه میشوند و سپس به دیگر صفحات میروند.
توسط یک ویرایشگر متنی مانند notepad یک فایل به نام index.php ایجاد نمایید. دقت کنید که پسوند این فایل php باشد و نه txt . سپس فایل دیگری به نام counter.txt نیز ایجاد نمایید.
سپس فایل index.php را در ویاریشگر متنی بازمیکنیم تا کد مورد نظرمان را در آن قرار دهیم. همانگونه که میدانید در php کدها به این صورت نوشته میشوند :
<?php
and the closing tag is:
?>
یعنی هرچیزی که بین <?php و ?> قرار بگیرد کد php محسوب میشود.
حال باید در برنامه خود یک متغیر تعریف نماییم. این کار را به این شکل انجام میدهیم:
$filename= "counter.txt" ;
در php در ابتدای نام متغیرها حتما باید علامت $ قرار بگیرد. کد بالا به این معنی است که متغیری به نام $filename تعریف کرده ایم که محتوی آن رشته "counter.txt" است.
اکنون باید فایل counter.txt را به صورت فقط خواندنی باز کنیم که این را توسط این خط کد انجام میدهیم:
$fd = fopen ($filename , "r") or die ("Can't open $filename") ;
سپس میباید محتویات فایل را بخوانیم و آن ار در متغیری به نام $fstring قرار دهیم :
$fstring = fread ($fd , filesize ($filename)) ;
برای نمایش این مقدار روی صفحه وب از تابع echo استفاده میکنیم که باعث چاپ محتوای یک متغیر میگردد
echo "$fstring" ;
و در نهایت باید فایل را ببندیم:
fclose($fd) ;
از آنجایی که میباید با مشاهده صفحه توسط کاربر یک واحد به مقدار شمارنده اضافه گردد، باید کدی بنویسیم که این کار را انجام دهد.
در این کد باید ابتدا فایل counter را به صورت نوشتنی باز کنیم:
$fd = fopen ($filename , "w") or die ("Can't open $filename") ;
سپس یک واحد به مقدار متغیر اصافه کنیم
$fcounted = $fstring + 1 ;
و آن را در فایل بنویسیم و فایل را ببندیم
$fout= fwrite ($fd , $fcounted ) ;
fclose($fd) ;
متن کامل برنامه به این شکل است:
<?php
$filename= "counter.txt" ;
$fd = fopen ($filename , "r") or die ("Can't open $filename") ;
$fstring = fread ($fd , filesize ($filename)) ;
echo "$fstring" ;
fclose($fd) ;
$fd = fopen ($filename , "w") or die ("Can't open $filename") ;
$fcounted = $fstring + 1 ;
$fout= fwrite ($fd , $fcounted ) ;
fclose($fd) ;
?>
در صورتی که شما این کد را بر روی وب سرور خود آپلود نمایید و آن را مشاهده کنید میبینید که با هربار بازکردن صفحه شمارنده تغییر میکند
خطاهای احتمالی که ممکن است باعث شوند برنامه به درستی کار نکند ممکن است یکی از موارد زیر باشد:
1- خطای تایپی در برنامه
2- تنظمیات غلط پیکربندی در وب سرور
3- فایل index.php بایستی دسترسی 775 و فایل counter.txt بایستی دسترسی 777 داشته باشد که این کارها را متیوانید با اجرای دستور chmod انجام دهید.