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

identifying platform & browser {شناساندن یا همانند کردن محیط و مرورگر}

PHP متغیرهای محیطی مناسبی را فراهم می کند که شما می توانید در صفحه ی phpinfo. php مشاهده کنید. این متغیرهای محیطیPHP  برای راه اندازی و طراحی محیط PHP به کار گرفته شده است.

PHP برای بازشناسی سیستم عامل و مرورگر از متغیر محیطی (HTTP-USER-AGENT) استفاده می کند. PHP برای دستیابی به مقادیر متغیرهای محیطی، تابع  getenv()را در اختیار شما قرار می دهد. با کمک اطلاعاتی که درون متغیرهای محیطی HTTP_USER_AGENT  وجود دارد شما می توانید محتوای پویایی متناسب با مرورگر بسازید.

با مثال زیر شما با روش بازشناسی مرورگر و سیستم عامل کاربر آشنا می شوید.

‎<html>‎

‎<body>‎

‎    <?php‎

‎    $viewer = getenv( “HTTP_USER_AGENT” );‎

‎    $browser = “An unidentified browser”;‎

‎    if( preg_match( “/MSIE/i”‎، ‏‎ “$viewer” ) )‎

‎    {‎

‎    $browser = “Internet Explorer”;‎

‎    }‎

‎    else if(  preg_match( “/Netscape/i”‎، ‏‎ “$viewer” ) )‎

‎    {‎

‎    $browser = “Netscape”;‎

‎    }‎

‎    else if(  preg_match( “/Mozilla/i”‎، ‏‎ “$viewer” ) )‎

‎    {‎

‎    $browser = “Mozilla”;‎

‎    }‎

‎    $platform = “An unidentified OS!”;‎

‎    if( preg_match( “/Windows/i”‎، ‏‎ “$viewer” ) )‎

‎    {‎

‎    $platform = “Windows!”;‎

‎    }‎

‎    else if ( preg_match( “/Linux/i”‎، ‏‎ “$viewer” ) )‎

‎    {‎

‎    $platform = “Linux!”;‎

‎    }‎

‎    echo(“You are using $browser on $platform”);‎

‎    ?>‎

‎</body>‎

‎</html>‎

این فرایند نتیجه ی زیر را بر روی سیستم عامل به دست می دهد. نتیجه ممکن است بنا به برنامه ای که استفاده می کنید بر روی رایانه ی شما متفاوت باشد.

You are using Mozilla! on Windows!

تصاویر را به صورت تصادفی نشان می دهد.
PHP،  تابع rand() را به منظور تولید یک رقم تصادفی به کار می گیرد؛ این تابع قادر است در محدوده ی مشخص شده ارقامی را به وجود بیاورد. برای جلوگیری از ایجاد الگوی منظم  اعداد، {تولیدگر ارقام تصادفی}random number generator  یا همان تابع   rand()باید مقداردهی شود. با استفاده از تابع srand()، که مقدار اولیه (seed) را به عنوان پارامتر مشخص می کند،  حاصل می گردد.

مثال زیر چگونگی نمایش یک تصویر از چهار تصویر مختلف را نمایش می دهد.

‎<html>‎

‎<body>‎

‎    <?php‎

‎    srand( microtime() * 1000000 );‎

‎    $num = rand( 1‎، ‏‎ ۴ );‎

‎    switch( $num )‎

‎    {‎

‎    case 1: $image_file = “/home/images/alfa.  jpg”;‎

‎    break;‎

‎    case 2: $image_file = “/home/images/ferrari.  jpg”;‎

‎    break;‎

‎    case 3: $image_file = “/home/images/jaguar.  jpg”;‎

‎    break;‎

‎    case 4: $image_file = “/home/images/porsche.  jpg”;‎

‎    break;‎

‎    }‎

‎    echo “Random Image : <img src=$image_file />”;‎

‎    ?>‎

‎</body>‎

‎</html>‎

استفاده از از فرمهای html

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

مثال زیر را با قرار دادن کد زیر در test.php script انجام دهید.

‎<?php‎

‎  if( $_POST[“name”] || $_POST[“age”] )‎

‎  {‎

‎     echo “Welcome “.   $_POST[‘name’].   “<br />”;‎

‎     echo “You are “.   $_POST[‘age’].   ” years old.  “;‎

‎     exit();‎

‎  }‎

‎?>‎

‎<html>‎

‎<body>‎

‎    <form action=”<?php $_PHP_SELF ?>” method=”POST”>‎

‎        Name: <input type=”text” name=”name” />‎

‎        Age: <input type=”text” name=”age” />‎

‎        <input type=”submit” />‎

‎    </form>‎

‎</body>‎

‎</html>‎

درPHP  از مقدار پیش فرض متغیر $_PHP_SELF  نام اسکریپت PHP استفاده می شود وهنگامی که شما کلید “submit” را کلیک می کنید PHP مشابهی صدا زده می شود و پروسه زیر را نتیجه می دهد.

برای فرستادن اطلاعات کاربر به سرور script {پردازه ی سرویس} از متد {method } “post ” باید استفاده شود.

تغییر دهی مسیر مرورگر {browser redirecting}

تابع header() در PHP یک {header} خام برای مرورگر فراهم می کند، که از آن برای redirect کردن و تغییر مسیر مرورگر به مسیر و مکان دیگر استفاده می شود. برای اینکه از بارگذاری هر جز دیگر از صفحه جلوگیری شود تغییر مسیر   script باید حتما در بالای صفحه قرار داشته باشد.

target توسط location:header  به عنوان آرگومان به تابع header()  مشخص می شود. پس از فراخوانی این تابع، می توان ازexit()  برای قطع کردن فرآیند parsing  بقیه ی کد استفاده کرد.

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

می توانید مثال زیر را خود با قرار دادن {متن برنامه} در script test.php امتحان کنید.

‎<?php‎

‎  if( $_POST[“location”] )‎

‎  {‎

‎     $location = $_POST[“location”];‎

‎     header( “Location:$location” );‎

‎     exit();‎

‎  }‎

‎?>‎

‎<html>‎

‎<body>‎

‎    <p>Choose a site to visit :</p>‎

‎    <form action=”<?php $_PHP_SELF ?>” method=”POST”>‎

‎        <select name=”location”>‎

‎            <option value=”http://w3c.  org”>‎

‎                World Wise Web Consortium

‎            </option>‎

‎            <option value=”http://www.  google.  com”>‎

‎                Google Search Page

‎            </option>‎

‎        </select>‎

‎        <input type=”submit” />‎

‎    </form>‎

‎</body>‎

‎</html>‎

نشان دادن “FILE DOWNLOAD” در کادر مکالمه {dialog box}

گهگاهی مایل هستیم گزینه {option} را در صحفه ی وب در اختیار کاربر قرار دهید که کاربر با کلیک آن به جای محتویات اصلی از صحفه ی وب کادر “file download” را دریافت می کند. این کار را می توانید به آسانی از طریق header http،  انجام دهید.

البته سربرگ یا هدر http با هدر واقعی و اصلی که به کمک آن content-type را به عنوان text/html/n/n ارسال می کند، متفاوت خواهد بود. در این مورد نوع محتوا application/octet-stream  و اسم فایل اصلی همراه با آن ادغام می شود.

برای مثال، اگر شما بخواهید یک file name بسازید که اطلاعاتی را از link برای شما دانلود کند، syntax آن به این صورت خواهد بود.

#!/usr/bin/perl‎
‎# HTTP Header‎
print “Content-Type:application/octet-stream; name=\”FileName\”\r\n”;‎
print “Content-Disposition: attachment; filename=\”FileName\”\r\n\n”;‎
‎# Actual File Content‎
open( FILE، ‏‎ “<filename”< span=””></filename”<> );‎
while(read(FILE‎، ‏‎ $buffer‎، ‏‎ ۱۰۰) )‎
‎{‎
‎   print(“$buffer”);‎
‎}‎