مفاهیم وب در php

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

آموزش زبان php از روی متن برای بسیاری از افراد لذت بخش است ولی اگر شما از جمله افرادی هستید که با آموزش ویدیویی راحت هستید از دوره ی آموزشی پی اچ پی استاد نیک زاد استفاده کنید.

شناسائی Browser و پلتفرم مورد استفاده توسط زبان php 

 زبان php تعدادی متغیرهای محیطی یا environment variables دارد که بسیار پرکاربرد میباشند و این توابع را میتوانید در صفحه ی phpinfo.php ببینید . 

یکی از بهترین متغیرهای محیطی که در php استفاده میشود HTTP_USER_AGENT میباشد که اطلاعات مرورگر و همچنین سیستم عامل کاربر را در اختیار شما قرار میدهد . 

زبان برنامه نویسی php یک تابعی دارد به نام getenv که مقدار تمام متغیرهای محیطی را با آن میتوانید به دست بیاورید که با استفاده از متغیر HTTP_USER_AGENT میتوانیم داده هایی را مطابق با نوع مرورگر کاربر تولید کنیم.

در مثالی که در زیر وجود دارد شما میبینید که چطور مرورگر و سیستم عامل کاربر را پیدا میکنیم .

نکته : درمورد تابع preg_match در درس های بعدی مفصل آموزش خواهیم داد. 

<html>
   <body>
   
      <?php
         function getBrowser() { 
            $u_agent = $_SERVER['HTTP_USER_AGENT']; 
            $bname = 'Unknown';
            $platform = 'Unknown';
            $version = "";
            
            //First get the platform?
            if (preg_match('/linux/i', $u_agent)) {
               $platform = 'linux';
            }elseif (preg_match('/macintosh|mac os x/i', $u_agent)) {
               $platform = 'mac';
            }elseif (preg_match('/windows|win32/i', $u_agent)) {
               $platform = 'windows';
            }
            
            // Next get the name of the useragent yes seperately and for good reason
            if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent)) {
               $bname = 'Internet Explorer';
               $ub = "MSIE";
            } elseif(preg_match('/Firefox/i',$u_agent)) {
               $bname = 'Mozilla Firefox';
               $ub = "Firefox";
            } elseif(preg_match('/Chrome/i',$u_agent)) {
               $bname = 'Google Chrome';
               $ub = "Chrome";
            }elseif(preg_match('/Safari/i',$u_agent)) {
               $bname = 'Apple Safari';
               $ub = "Safari";
            }elseif(preg_match('/Opera/i',$u_agent)) {
               $bname = 'Opera';
               $ub = "Opera";
            }elseif(preg_match('/Netscape/i',$u_agent)) {
               $bname = 'Netscape';
               $ub = "Netscape";
            }
            
            // finally get the correct version number
            $known = array('Version', $ub, 'other');
            $pattern = '#(?<browser>' . join('|', $known) . ')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
            
            if (!preg_match_all($pattern, $u_agent, $matches)) {
               // we have no matching number just continue
            }
            
            // see how many we have
            $i = count($matches['browser']);
            
            if ($i != 1) {
               //we will have two since we are not using 'other' argument yet
               
               //see if version is before or after the name
               if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
                  $version= $matches['version'][0];
               }else {
                  $version= $matches['version'][1];
               }
            }else {
               $version= $matches['version'][0];
            }
            
            // check if we have a number
            if ($version == null || $version == "") {$version = "?";}
            return array(
               'userAgent' => $u_agent,
               'name'      => $bname,
               'version'   => $version,
               'platform'  => $platform,
               'pattern'   => $pattern
            );
         }
         
         // now try it
         $ua = getBrowser();
         $yourbrowser = "Your browser: " . $ua['name'] . " " . $ua['version'] .
            " on " .$ua['platform'] . " reports: <br >" . $ua['userAgent'];
         
         print_r($yourbrowser);
      ?>
   
   </body>
</html>

 

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

Your browser: Google Chrome 54.0.2840.99 on windows reports: 
Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
   Chrome/54.0.2840.99 Safari/537.36

نکته  :‌ شما در حال یادگیری زبان برنامه نویسی php هستید.بعد از اتمام آموزش زبان php مدرس این دوره پیشنهاد کرده است که آموزش mvc در زبان php را حتما جدی بگیرید و آنرا یاد بگیرید.

نمایش تصویر بصورت تصادفی یا رندم در php 

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

از تابع srand() برای تعریف منبع تولید اعداد تصادفی استفاده میکنیم . 

srand برای آماده کردن تابع تولید اعداد تصادفی یا rand هست شما مثلا به اون بگید نقطه شروع اعداد تصادفی که تولید خواهند شد .مثلا شما اگر یک بار پارامتر ورودی srand را یک عدد ثایت مثل 8 بدهید و بعد rand اجرا بشه و دو باره srand را با پارامتر 8 اجرا کنید بعد از اون rand را بزنید نتیجه rand اول با rand دوم یکسان خواهد بود. بنابراین باید پارامتر ورودی srand را متفاوت داد تا اعداد ایجاد شده توسط rand متفاوت بشوند برای این کار معمولا زمان سیستم را به عنوان ورودی srand می دهند و مثلا 100 تا عدد تصادفی تولید می کنند و دو باره اگه بخواهیم اجرا کنیم چون زمان جلو رفته پارامتر srand متفائت خواهد بود در نتیج اعداد تصادفی ایجاد شده هم متفاوت خواهند بود

مثال زیر تصویری را بصورت تصادفی انتخاب میکند : 

<html>
   <body>
   
      <?php
         srand( microtime() * 1000000 );
         $num = rand( 1, 4 );
         
         switch( $num ) {
            case 1: $image_file = "/php/images/logo.png";
               break;
            
            case 2: $image_file = "/php/images/php.jpg";
               break;
            
            case 3: $image_file = "/php/images/logo.png";
               break;
            
            case 4: $image_file = "/php/images/php.jpg";
               break;
         }
         echo "Random Image : <img src=$image_file />";
      ?>
      
   </body>
</html>

 

آموزش کار با فُرم ها در php یا html forms در php

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

مثال زیر یک فرم میسازد : 

<?php
   if( $_POST["name"] || $_POST["age"] ) {
      if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) {
         die ("invalid name and name should be alpha");
      }
      
      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

  •  زمانی که در یک فرم بخش action را $_PHP_SELF تعریف میکنید به این معنی است که اطلاعات فرم را میخواهید به همان صفحه ارسال کنید نه جای دیگری 
  • method = "POST" متد یا روش ارسال را تعریف کرده است که در این مثال از نوع POST میباشد و دو نوع مرسوم POST و GET میباشد که در حالت POST اطلاعات بصورت مخفی و بسته شده ارسال میشود ولی در حالت GET در url متغیرها ارسال میشود و قابل رویت و تغییر میباشد .

بحث فرم ها در زبان برنامه نویسی php یکی از مهم ترین بحث ها است و این متن فقط جهت آشنایی و یادگیری ابتدایی این زمینه است برای یادگیری حرفه ای کار با فرم ها در زبان php از دوره ی آموزش ویدیویی php استاد نیک زاد استفاده کنید.

Redirection یا ارجاع به آدرس دیگر در php

در php تابعی به نام header() وجود دارد که هدر درخواست های http را تامین می کند با این تابع میتوانید به مرورگر بگویید که به یک ادرس دیگر مراجعه کن . 

آدرس url جدید که میخواهید به آنجا ریدایرکت شوید بعد از Location: درون تابع header()  قرار میگیرید . 

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

 

مثال  :

 

<?php
   if( $_POST["location"] ) {
      $location = $_POST["location"];
      header( "Location:$location" );
      
      exit();
   }
?>
<html>
   <body>
   
      <p>Choose a site to visit :</p>
      
      <form action = "<?php $_SERVER['PHP_SELF'] ?>" method ="POST">
         <select name = "location">.
         
            <option value = "http://www.avasam.ir">
               Tutorialspoint.com
            </option>
         
            <option value = "http://www.google.com">
               Google Search Page
            </option>
         
         </select>
         <input type = "submit" />
      </form>
      
   </body>
</html>

 

و خروجی کدهای بالا : 

 

redirect در php

اتمام درس

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

 

دوره ی آموزش پروژه محور زبان php ساخت سایت هتل با php