1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

(--(: ترفندهای PHP :)--!)

شروع موضوع توسط AftabGardoon ‏29/1/18 در انجمن PHP

  1. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,320
    تشکر شده:
    42,648
    امتیاز دستاورد:
    113
    [​IMG]
     
    Dante، n@der، Sheida و یک نفر دیگر از این ارسال تشکر کرده اند.
  2. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,320
    تشکر شده:
    42,648
    امتیاز دستاورد:
    113
    مراحل ساخت فرم تماس با ما و ارسال به ایمیل با PHP و Ajax


    برای ساخت فرم تماس با ما با تکنولوژی Ajax ما از فریم ورک JQuery استفاده میکنیم. در این فرم از ۲ فایل به ترتیب زیر استفاده شده است:

    • فایل contactform.html
    • فایل sendemail.php
    کدهای مربوط به HTML
    در زیر کدهای مربوط به فرم را ملاحظه میکنید که در فایل contactform.html قرار خواهد گرفت :

    کد:
    <form id="contactform" action="" method="post">[/COLOR][/LEFT]
    [COLOR=#0000ff]
    [LEFT]    <label>Name:</label><input id="name" type="text" name="name" />
        <label>Email:</label><input id="email" type="text" name="email" />
        <label>Message:</label><textarea id="message" name="message"></textarea>
        <input id="submit" type="button" value="send" />
        <div id="success" style="color: red;"></div>
    </form>

    تا اینجای کار تنها تفاوت با فرم تماس با ما ساده، فیلد input مربوط به دکه ارسال هست که به جای نوع submit از نوع button استفاده شده و یک id تخصیص داده شده است. این امر به این دلیل هست که هنگام کلیک بر روی دکمه ارسال صفحه به صورت خودکار شروع به ارسال و بارگذاری مجدد صفحه نکند تا ما بتوانیم از دستورات JQuery بهره ببریم.



    کدهای مربوط به PHP
    در زیر کدهای مربوط به فایل sendemail.php را مشاهده میکنید:

    کد:
    // Here we get all the information from the fields sent over by the form.[/COLOR][/LEFT]
    [COLOR=#0000ff]
    [LEFT]$name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    
    $to = 'youremail@domain.com';
    $subject = 'the subject';
    $message = 'FROM: '.$name.' Email: '.$email.'Message: '.$message;
    $headers = 'From: youremail@domain.com' . "\r\n";
    
    if (filter_var($email, FILTER_VALIDATE_EMAIL)) { // this line checks that we have a valid email address
    mail($to, $subject, $message, $headers); //This method sends the mail.
    echo "Your email was sent!"; // success message
    }else{
    echo "Invalid Email, please provide an correct email.";
    }

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



    کدهای مربوط به jQuery
    کدهای مربوط به عملیات JQuery به صورت زیر است:

    PHP:
        $(document).ready(function() {[/COLOR][/LEFT]
    [
    COLOR=#0000ff]
    [LEFT]                $('#submit').click(function() {
                        $(
    '#submit').attr('value''Please wait...');
                        $.
    post("sendemail.php", $("#contactform").serialize(), function(response) {
                            $(
    '#success').html(response);
                            $(
    '#submit').attr('value''SEND');
                      });
                        return 
    false;
                    });
                });

    کد بالا کلیک بر روی دکمه ارسال را تشخیص داده و اطلاعات فرم را به صورت تکنولوژی Ajax به فایل PHP مربوط ارسال کرده و نتیجه HTML چاپ شده در فایل PHP را در داخل تگ با id با نام success نمایش میدهد. فراموش نکنید که برای اجرای کدهای JQuery نیاز به بارگذاری آن بخش head صفحه فرم تماس با ما دارید.

    به صورت کلی فایل contactform.html به صورت زیر خواهد بود:


    HTML:
    <!DOCTYPE html>[/COLOR][/LEFT]
    [COLOR=#0000ff]
    [LEFT]<html>
      <head>
        <script src="https://code.jquery.com/jquery-latest.js"></script>
        <script>
                $(document).ready(function() {
                    $('#submit').click(function() {
                        $('#submit').attr('value', 'Please wait...');
                        $.post("sendemail.php", $("#contactform").serialize(), function(response) {
                            $('#success').html(response);
                            $('#submit').attr('value', 'SEND');
                        });
                        return false;
                    });
                });
        </script>
      </head>
      <body>
    
        <form id="contactform" action="" method="post">
          <label>Name:</label><input id="name" type="text" name="name" />
          <label>Email:</label><input id="email" type="text" name="email" />
          <label>Message:</label><textarea id="message" name="message"></textarea>
          <input id="submit" type="button" value="send" />
          <div id="success" style="color: red;"></div>
        </form>
      </body>
    </html>

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

    [​IMG]
     
    Dante، n@der، رهگذر و 2 نفر دیگر از این ارسال تشکر کرده اند.
  3. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,320
    تشکر شده:
    42,648
    امتیاز دستاورد:
    113
    آموزش آپلود فایل در php

    پیشنیاز
    آپلود فایل در php کار پیچیده ای نیست، ولی چند مورد هست که باید به آنها توجه کنید. در غیر این صورت احتمالا با مشکل مواجه میشوید.

    اول از همه باید مطمئن بشید که تنظیمات آپلود فایل در php فعال است. برای اینکار فایل php.ini رو بررسی کنید تا مولفه file_uploads برابر on باشد.

    PHP:
    file_uploads On
    ساخت فرم HTML برای آپلود فایل
    کد html برای پیاده سازی سمت کاربر استفاده میشود. در المنت form از متد post استفاده میکنیم. توجه داشته باشید که enctype برابر multipart/form-data است.

    HTML:
    <form action="upload.php" method="post" enctype="multipart/form-data">[/COLOR][/LEFT]
    [COLOR=#0000ff]
    [LEFT]    Select image to upload:
        <input type="file" name="fileToUpload" id="fileToUpload">
        <input type="submit" value="Upload Image" name="submit">
    </form>

    نکاتی در مورد کد بالا:

    • multipart/form-data نوع داده ارسالی را مشخص میکند.
    • type="file" در تگ input مشخص میکند که فرم آپلود باید نمایش داده شود.
    • کد بالا داده های فرم را به سمت upload.php میکند که در قدم بعدی پیاده سازی میکنیم.


    کد نویسی قسمت PHP
    فایل upload.php دارای کدهای زیر است:

    PHP:
    $target_dir "uploads/";

    $target_file $target_dir basename($_FILES["fileToUpload"]["name"]);
    $uploadOk 1;
    $imageFileType strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
    // Check if image file is a actual image or fake image
    if(isset($_POST["submit"])) {
        
    $check getimagesize($_FILES["fileToUpload"]["tmp_name"]);
        if(
    $check !== false) {
            echo 
    "File is an image - " $check["mime"] . ".";
            
    $uploadOk 1;
        } else {
            echo 
    "File is not an image.";
            
    $uploadOk 0;
        }
    }
    توضیحات کد بالا

    • $target_dir = "uploads/" دایرکتوری که فایلها آنجا باید ذخیره شوند را مشخص میکند.
    • $target_file مسیر فایل آپلود شده را مشخص میکند.
    • $uploadOk=1 در ادامه کد استفاده خواهد شد.
    • $imageFileType پسوند فایل را نگه میدارد.
    • و بعد بررسی میکنیم که تصویر آپلود شده یک تصویر واقعی است یا خیر. (یک ترفند امنیتی)


    حالا میتوانیم کمی به ویژگیهای کدمان اضافه کنیم. ولی قبل از آن بهتر است کمی بیشتر در مورد $_FILES بدانیم

    • $_FILES["fileToUpload"]["name"] نام اصلی فایل در سمت کاربر را در خود دارد.
    • $_FILES["fileToUpload"]["type"] نام mime-type فایل را در خود دارد.
    • $_FILES["fileToUpload"]["size"] سایز فایل را بر اساس بایت نمایش میدهد.
    • $_FILES["fileToUpload"]["tmp_name"] نام فایل موقت را دارد.
    • $_FILES["fileToUpload"]["error"] هر خطایی که در هنگام انتقال فایل وجود داشته باشد را دارد.
    بررسی وجود فایل از قبل
    اول از همه بررسی میکنیم که آیا فایلی با این نام از قیل وجود داشته در دایرکتوری مقصد یا خیر، و یک پیغام نمایش میدهیم.

    PHP:
    // Check if file already exists[/COLOR][/LEFT]
    [COLOR=#0000ff]
    [LEFT]if (file_exists($target_file)) {
        echo 
    "Sorry, file already exists.";
        
    $uploadOk 0;
    }

    محدود کردن سایز فایل آپلود
    توجه کنید که نام فیلد فایل در فرم HTML ما در fileToUpload است. میخواهیم سایز فایل را بخوانیم و اگر از ۵۰۰KB بیشتر بود

    PHP:
     // Check file size[/COLOR][/LEFT]
    [COLOR=#0000ff]
    [LEFT]if ($_FILES["fileToUpload"]["size"] > 500000) {
        echo 
    "Sorry, your file is too large.";
        
    $uploadOk 0;
    }

    محدود کردن نوع فایل
    کد زیر به کاربران اجازه میدهد که فقط فایلهایی با پسوند JPEG، JPG، PNG و GIF را آپلود کنند. هر فایل دیگری باعث میشود پیغام خطا نمایش داده شود.
    PHP:
    // Allow certain file formats[/COLOR][/LEFT]
    [COLOR=#0000ff]
    [LEFT]if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
    && $imageFileType != "gif" ) {
        echo 
    "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
        
    $uploadOk 0;
    }


    کد کامل آپلود فایل در php
    کد کامل فایل upload.php به این صورت است:

    PHP:
    $target_dir    "uploads/";[/COLOR][/LEFT]
    [
    COLOR=#0000ff]
    [LEFT]$target_file   $target_dir basename$_FILES["fileToUpload"]["name"] );
    $uploadOk      1;
    $imageFileType strtolowerpathinfo$target_filePATHINFO_EXTENSION ) );

    // Check if image file is a actual image or fake image
    if ( isset( $_POST["submit"] ) ) {
        
    $check getimagesize$_FILES["fileToUpload"]["tmp_name"] );
        if ( 
    $check !== false ) {
            echo 
    "File is an image - " $check["mime"] . ".";
            
    $uploadOk 1;
        } else {
            echo 
    "File is not an image.";
            
    $uploadOk 0;
        }
    }

    // Check if file already exists
    if ( file_exists$target_file ) ) {
        echo 
    "Sorry, file already exists.";
        
    $uploadOk 0;
    }

    // Check file size
    if ( $_FILES["fileToUpload"]["size"] > 500000 ) {
        echo 
    "Sorry, your file is too large.";
        
    $uploadOk 0;
    }

    // Allow certain file formats
    if ( $imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
         
    && $imageFileType != "gif" ) {
        echo 
    "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
        
    $uploadOk 0;
    }

    // Check if $uploadOk is set to 0 by an error
    if ( $uploadOk == ) {
        echo 
    "Sorry, your file was not uploaded.";
       
    // if everything is ok, try to upload file
    } else {
        if ( 
    move_uploaded_file$_FILES["fileToUpload"]["tmp_name"], $target_file ) ) {
            echo 
    "The file " basename$_FILES["fileToUpload"]["name"] ) . " has been uploaded.";
        } else {
            echo 
    "Sorry, there was an error uploading your file.";
        }
    }


    توضیحاتی در مورد کد

    • move_uploaded_file() این تابع فایل آپلود شده را از مکان موقت به آدرس مقصد مورد نظر منتقل میکند.
    [​IMG]
     
    n@der، رهگذر و DaniyaL از این ارسال تشکر کرده اند.
  4. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,320
    تشکر شده:
    42,648
    امتیاز دستاورد:
    113
    کد ایجاد تصویر امنیتی ساده (کپچا) در PHP
    وارد کردن کد امنیتی (کپچا) در وبسایتها، گاها برای کاربران واقعی، کاری بسیار دشوار و آزار دهنده است است. jReply یک اسکریپت برای نمایش کد امنیتی در وبسایتمان برای کاربران نوشته است، که در عین راحتی در نوشتن برای کاربران واقعی، از ورود روباتها نیز جلوگیری میکند. کد نوشته شده نیز به منظور راحتی در تطبیق و تغییر آن ساده و قابل درک نوشته شده است.

    کد زیر همان کد استفاده شده در اسکریپت تصویر امنیتی ساده (کپچا) است . توجه کنید که کد زیر به تنهایی کار نمیکند و نیازمند فونت و لیست لغات است که به صورت کامل ضمیمه شده. این کد جهت مطالعه قرار داده شده است.


    PHP:
    <?php[/COLOR][/LEFT]
    [
    COLOR=#0000ff]
    [LEFT]
      function 
    warpedCaptcha($text)
      {
       
    /*
        this function takes the original captcha text and shuffles
        the vowels + y around in order to deliver more variable
        captcha text
       */
       
    if (rand(0,6)) return $text;
       
    //only parttime warping
       
    $ltrs = array('b'=>'b','c'=>'c','d'=>'d','f'=>'f','g'=>'g','h'=>'h','j'=>'j',
                   
    'k'=>'k','l'=>'l','m'=>'m','n'=>'n','p'=>'p','q'=>'q','r'=>'r',
                   
    's'=>'s','t'=>'t','v'=>'v','w'=>'w','x'=>'x','z'=>'z');

      
    $vkeys $vltrs explode(',','a,e,i,o,u,y');
      
    shuffle($vkeys);
      
    $vowels = array();
      foreach(
    $vkeys as $ndx=>$vkey$vowels[$vkey] = $vltrs[$ndx];
      
    //the vowels + y are now jumbled up

      
    $ltrs array_merge($ltrs,$vowels);
      
    //full associative array of alphabet with randomized vowels + y
      
    $text str_split($text);

      
    $captcha '';
      foreach(
    $text as $txt$captcha .= $ltrs[$txt];
      return 
    $captcha;
    }

    /*
      xsixlw.txt is a long string of 6 letter words concatenated together.
      We pick a word at random from this text
    */
    $fp fopen('xsixlw.txt',"r");
    $count filesize('xsixlw.txt')/1;
    $pos 6*rand(0,$count);
    fseek($fp,$pos);
    $captcha warpedCaptcha(trim(fread($fp,6)));
    fclose($fp);

    session_start();
    $_SESSION['captcha'] = $captcha;
    //store the captcha to check later once the user has solved it
    session_write_close();

    $im imagecreatetruecolor(200,70);//200 x 70 pixel image
    $black imagecolorallocate($im,0,0,0);
    imagecolortransparent($im,$black);//give it a black background

    switch(rand(0,4))
    {
      case 
    0:$color imagecolorallocate($im,34,155,91);break;
      case 
    1:$color imagecolorallocate($im,233,26,74);break;
      case 
    2:$color imagecolorallocate($im,233,26,195);break;
      case 
    3:$color imagecolorallocate($im,244,178,19);break;
      case 
    4:$color imagecolorallocate($im,53,125,199);break;
    }
    //pick a random color for the text

    $x 20;$y 47;//the starting position for drawing
    for ($i=0;$i<6;$i++)
    {
      
    $angle rand(-8,8) + rand(0,9)/10;
      
    $fontsize rand(22,32);//pick a random font size
      
    $letter substr($captcha,$i,1);
      
    $coords imagettftext($im,$fontsize,$angle,$x,$y,$color,'oldsans.ttf',$letter);
      
    //draw each letter
      
    $x += ($coords[2]-$x) + 1;
    }

    header('Content-type:image/png');
    imagepng($im);
    imagedestroy($im);
    ?>

    نحوه استفاده از اسکریپت تصویر امنیتی:
    ۱- استخراج فایلها (Extract Files) در یک فولدر مناسب در سرور:

    PHP:
    simplephpcaptcha.php[/COLOR][/LEFT]
    [
    COLOR=#0000ff]
    [LEFT]xsixlw.txt
    ldsans
    .ttf


    ۲- در صفحه ای که میخواهید از تصویر امنیتی (کپچا) استفاده کنید، کد زیر را بنویسید:

    PHP:
    <img height="70" width="200" src="path_to_folder/simplecaptcha.php"/>
    ۳- ایجاد یک فیلد متنی برای دریافت کد امنیتی :
    HTML:
    <form action="" method="post">[/COLOR][/LEFT]
    [COLOR=#0000ff]
    [LEFT]    <input type="text" name="captcha" />
        <input type="submit" name="submit" />
    </form>

    ۴- بررسی صحت کد امنیتی وارد شده در سمت سرور:

    PHP:
    <?[/COLOR][/LEFT]
    [
    COLOR=#0000ff]
    [LEFT]session_start();
    if(isset(
    $_POST['submit'])){
        if(
    $_SESSION['captcha'] == $_POST['captcha']){
            echo 
    "Captcha Is Correct<br>";
        }else{
            echo 
    "Captcha Isn't Correct<br>";
        }
    }
    ?>

    .در صورت درست یا غلط بودن کد وارد شده پیامی ظاهر میشود که نتیجه کار را مشخص میکند. شما میتوانید به جای این پیغامها، هر عملی که باید در اسکریپتتان انجام شود را بنویسید.

    [​IMG]
     
    n@der، رهگذر و DaniyaL از این ارسال تشکر کرده اند.
  5. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,320
    تشکر شده:
    42,648
    امتیاز دستاورد:
    113
    آموزش برقراری ارتباط PHP و MySQL

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

    – ایجاد ارتباط با سرور پایگاه داده MySQL
    PHP:
    mysqli_connect(host,username,password,dbname);

    کد بالا حالت کلی (Syntax) تابع را نمایش میدهد که به صورت زیر در کدنویسی استفاده میشود:

    PHP:
    <?php[/COLOR][/LEFT]
    [
    COLOR=#0000ff]
    [LEFT]// Create connection
    $con=mysqli_connect("example.com","peter","abc123","my_db");

    // Check connection
    if (mysqli_connect_errno($con))
      {
      echo 
    "Failed to connect to MySQL: " mysqli_connect_error();
      }
    ?>

    بهتر است برای سازگاری با زبان فارسی کد زیر را بعد از اتصال موفق به دیتابیس وارد کنید

    PHP:
    //change character set to utf8 [/COLOR][/LEFT]
    [COLOR=#0000ff]
    [LEFT]mysqli_set_charset($con"utf8")

    برای قطع ارتباط نیز از تابع زیر استفاده میکنیم:

    PHP:
    mysqli_close($con);
    – ایجاد پایگاه داده MySQL
    بعد از ایجاد ارتباط با سرور پایگاه داده در صورتی که پایگاه داده وجود ندارد باید آن را بسازیم. دستورات MySQL در PHP معمولا به صورت رشته ای در متغییری ذخیره میشود که این رشته از دستورات را کوئری (Query) مینامیم، برای مثال:
    PHP:
    SELECT LastName FROM Employees
    کد زیر نحوه ساخت یک پایگاه داده را توسط کدهای PHP نمایش میدهد.
    PHP:
    <?php[/COLOR][/LEFT]
    [
    COLOR=#0000ff]
    [LEFT]$con=mysqli_connect("example.com","peter","abc123");
    // Check connection
    if (mysqli_connect_errno())
      {
      echo 
    "Failed to connect to MySQL: " mysqli_connect_error();
      }

    // Create database
    $sql="CREATE DATABASE my_db";
    if (
    mysqli_query($con,$sql))
      {
      echo 
    "Database my_db created successfully";
      }
    else
      {
      echo 
    "Error creating database: " mysqli_error($con);
      }
    ?>

    در کد بالا ابتدا ارتباط PHP با سرور پایگاه داده MySQL برقرار میشود سپس دستورات ساخت یک پایگاه داده با استفاده از تابع ()mysqli_query اجرا شده و درپایان پیام مربوط به نتیجه عملیات نمایش داده میشود.

    اگر میخواهید دیتابیس شما با کاراکترهای فارسی مشکلی نداشته باشد بهتر است از کوئری زیر استفاده کنید.

    PHP:
    CREATE DATABASE mydb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

    – ایجاد جدول در پایگاه داده MySQL
    بعد از ساختن پایگاه داده، برای ذخیره اطلاعات داخل آن باید از جداول مربوط استفاده کرد. برای ایجاد جدول میتوانید از کد زیر استفاده کنید:
    PHP:
    <?php[/COLOR][/LEFT]
    [
    COLOR=#0000ff]
    [LEFT]$con=mysqli_connect("example.com","peter","abc123","my_db");
    // Check connection
    if (mysqli_connect_errno())
      {
      echo 
    "Failed to connect to MySQL: " mysqli_connect_error();
      }

    // Create table
    $sql="CREATE TABLE persons(FirstName CHAR(30),LastName CHAR(30),Age INT)";

    // Execute query
    if (mysqli_query($con,$sql))
      {
      echo 
    "Table persons created successfully";
      }
    else
      {
      echo 
    "Error creating table: " mysqli_error($con);
      }
    ?>

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

    کد:
    $sql = "CREATE TABLE Persons [/COLOR][/LEFT]
    [COLOR=#0000ff]
    [LEFT](
    PID INT NOT NULL AUTO_INCREMENT,
    PRIMARY KEY(PID),
    FirstName CHAR(15),
    LastName CHAR(15),
    Age INT
    )";

    عبارت AUTO_INCREMENT بیانگر خاصیت افزایش خودکار محتوای فیلد در ستون مربوطه است. برای مثال شماره id کاربران عضو در سایت. PRIMARY KEY برای تعیین فیلد اصلی و یکتای داده ذخیره شده است به این معنی که داده ها به صورت سطر به سطر در جدول پایگاه داده ذخیره میشوند و هر سطر دارای فیلد خاصی است که منحصر به فرد بوده و برای شناسایی آن داده به کار میرود.



    – ذخیره داده ها در پایگاه داده MySQL
    برای ذخیره داده ها در پایگاه داده باید از دستورات مربوط به این کار استفاده کرد که به صورت زیر میباشد:
    کد:
    INSERT INTO table_name (column1, column2, column3,...)[/COLOR][/LEFT]
    [COLOR=#0000ff]
    [LEFT]VALUES (value1, value2, value3,...)

    کد بالا حالت کلی این دستور را نشان میدهد و برای درک بهتر دستور میتوانید مثال زیر را بررسی کنید:
    کد:
    <?php[/COLOR][/LEFT]
    [COLOR=#0000ff]
    [LEFT]$con=mysqli_connect("example.com","peter","abc123","my_db");
    // Check connection
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }
    
    mysqli_query($con,"INSERT INTO Persons (FirstName, LastName, Age)
    VALUES ('Peter', 'Griffin',35)");
    
    mysqli_query($con,"INSERT INTO Persons (FirstName, LastName, Age)
    VALUES ('Glenn', 'Quagmire',33)");
    
    mysqli_close($con);

    در کد بالا نام و نام خانوادگی و سن کاربر به ترتیب در فیلدهای Age , LastName , FristName ذخیره میشود.

    – ذخیره داده ها از فرم در پایگاه داده MySQL
    نمونه فرم در صفحه HTML:
    HTML:
    <html>[/COLOR][/LEFT]
    [COLOR=#0000ff]
    [LEFT]<body>
    
    <form action="insert.php" method="post">
    Firstname: <input type="text" name="firstname">
    Lastname: <input type="text" name="lastname">
    Age: <input type="text" name="age">
    <input type="submit">
    </form>
    
    </body>
    </html>

    اطلاعات کد بالا بعد از کلیک بر روی Submit به فایل insert.php فرستاده میشوند تا در آنجا پردازش شده و در پایگاه داده ذخیره شوند. کدهای مربوط به ذخیره داده ها در پایگاه داده که در فایل insert.php در کنار فایل Html مربوط به فرمها نوشته میشود به صورت زیر است:

    PHP:
    <?php[/COLOR][/LEFT]
    [
    COLOR=#0000ff]
    [LEFT]$con=mysqli_connect("example.com","peter","abc123","my_db");
    // Check connection
    if (mysqli_connect_errno())
      {
      echo 
    "Failed to connect to MySQL: " mysqli_connect_error();
      }

    $sql="INSERT INTO Persons (FirstName, LastName, Age)
    VALUES
    ('
    $_POST[firstname]','$_POST[lastname]','$_POST[age]')";

    if (!
    mysqli_query($con,$sql))
      {
      die(
    'Error: ' mysqli_error($con));
      }
    echo 
    "1 record added";

    mysqli_close($con);

    – انتخاب داده ها از پایگاه داده MySQL و خواندن اطلاعات
    بعد از ذخیره سازی اطلاعات در پایگاه داده نیاز به خواندن آنها در هنگام لزوم داریم. که به صورت زیر است:
    کد:
    DELETE FROM table_name[/COLOR][/LEFT]
    [COLOR=#0000ff]
    [LEFT]WHERE some_column = some_value

    مثال:

    PHP:
    <?php[/COLOR][/LEFT]
    [
    COLOR=#0000ff]
    [LEFT]$con=mysqli_connect("example.com","peter","abc123","my_db");
    // Check connection
    if (mysqli_connect_errno())
      {
      echo 
    "Failed to connect to MySQL: " mysqli_connect_error();
      }

    mysqli_query($con,"DELETE FROM Persons WHERE LastName='Griffin'");

    mysqli_close($con);
    ?>
     
    n@der از این پست تشکر کرده است.
  6. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,320
    تشکر شده:
    42,648
    امتیاز دستاورد:
    113
    نحوه استفاده از کوکی ها در PHP
    کوکی چیست ؟

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

    تفاوت اصلی کوکی و session در این است که کوکی ها در کامپیوتر کاربر ذخیره می شود اما session در سرور ذخیره می شود. کوکی ها را می توان به صورت دستی حذف کرد که این کار از نظرامنیتی امری درست نیست.


    چرا ما از کوکی ها استفاده می کنیم ؟

    در یک فایل کوکی می توان اطلاعات و تنظیمات کاربر را در ۴۰۰۰ کاراکترذخیره سازی کرد. برخی از کاربردهای کوکی در زیر بیان شده است :

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

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

    اگر وبسایت از کوکی برای ذخیره کلمه عبور استفاده کند این کلمه عبور قابل خواندن است که یک تهدید برای هک شدن می توان در نظر گرفت. اما اگر همان پسورد را با استفاده از روش هایی مانند hash کد گذاری کنیم به نسبت قبل امنیت آن بالا می رود.

    چگونگی نوشتن (تنظیم) کوکی :

    در PHP ، یک تابع به نام ()setcookie وجود دارد که برای set و unset کردن کوکی استفاده می شود. نحوه استفاده از این تابع به صورت زیر است :

    نحوه دستوری :
    PHP:
    setcookie("name""value"expire"path""domain");


    Nameنام کوکی شما
    Value
    مقدار یا ارزشی که در کوکی ذخیره می شودمانند نام کاربری کلمه عبور, ...
    Expireزمان انقضای کوکی.ه
    Path
    مسیر وبسایت که کوکی برای آن معتبر است.
    Domainوبسایتی که کوکی برای آن معتبر است.
    مثال :
    PHP:
    setcookie("username""Morteza"time()+3600);
    در مثال بالا نام کوکی username و مقدار آن نیز Morteza تعریف شده است و زمان انقضای آن ۱ ساعت در نظر گرفته شده است. زمان انقضا مساویست با زمان فعلی به اضافه مدت زمان انقضا بر حسب ثانیه.
    چگونگی خواندن (بازیابی) از کوکی:
    PHP برای اینکار از cookie_$ استفاده می کند. تمامی کوکی های تنظیم شده توسط یک وبسایت بوسیله cookie_$ بازیابی می شود.
    PHP:
    <?PHP // Print a cookie 

    echo $_COOKIE["username"]
    print_r($_COOKIE)
    if (isset(
    $_COOKIE["username"]))
            echo 
    "Welcome " $_COOKIE["username"] . "!"
    else
            echo 
    "Welcome guest!"
    ?>
    کد بالا بررسی می کند که کوکی با نام مورد نظر تنظیم شده است یا خیر اگر تنظیم شده باشد پیغام Welcome Morteza ودر غیر اینصورت پیغام Welcome guest را نمایش می دهد.

    چگونگی پاک کردن کوکی :

    برای پاک کردن یک کوکی تابع خاصی وجود ندارد . برای اینکار از تنظیم مجدد و معکوس زمان به صورت زیر استفاده می کنیم :
    PHP:
    setcookie("username"""time()-3600);
    setcookie("username", "", time()-3600);
    در مثال بالا مقدار کوکی پوچ و زمان انقضای کوکی یک ساعت زودتر از زمان ساخت آن قرار داده می شود که با اجرای تابع کوکی حذف خواهد شد.

    در زیر یک مثال عملی با استفاده از یک کوکی بر روی وب سایت آورده شده است :
    HTML:
    <?php 
    
    if (!isset($_POST['email'])) {
    // if form has not been submitted
    // display form
    // if cookie already exists, pre-fill form field with cookie value
    ?>
    <html>
    <head></head>
    <body>
    
    <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
    Enter your email address: <input type="text" name="email" value="<?php echo $_COOKIE['email'] ?>" size="20">
    <input type="submit" name="submit">
    <?php
    // also calculate the time since the last submission
    if ($_COOKIE['lastsave']) {
    $days = round((time() - $_COOKIE['lastsave']) / 86400)
    echo " $days day(s) since last submission"
    }
    ?>
    </form>
    
    </body>
    </html>
    <?php
    }
    else {
    // if form has been submitted
    // set cookies with form value and timestamp
    // both cookies expire after 30 days
    if (!empty($_POST['email'])) {
    setcookie("email", $_POST['email'], mktime()+(86400*30), "/")
    setcookie("lastsave", time(), mktime()+(86400*30), "/")
    echo "Your email address has been recorded."
    }
    else {
    echo "ERROR: Please enter your email address!"
    }
    }
    ?>
    </body>
    </html>

    [​IMG]
     
    n@der، Sheida و DaniyaL از این ارسال تشکر کرده اند.
  7. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,320
    تشکر شده:
    42,648
    امتیاز دستاورد:
    113
    1) به سوی OOP بشتابید
    اگر هنوز وارد حوزه ی برنامه نویسی شیء گرا - Object Oriented Programming - یا به اختصار OOP نشده اید باید این خبر بد را به شما بدهیم که نقطه ضعف بزرگی دارید و از قافله عقب مانده اید.

    OOP اساساً یک روش برنامه نویسی است که در آن با استفاده از کلاس ها - یا اشیاء - نیاز به تکرار کدنویسی از میان برداشته می شود. اشیاء در برنامه نویسی شیءگرا اساسا کلاس هایی هستند که یک دسته توابع را درون خود نگه می دارند و می توان در مواقع لزوم بدون اینکه مجبور باشیم عملکرد مورد نظر را دوباره کدنویسی کنیم بارها و بارها از آنها استفاده کنیم.

    در مقابل، در برنامه نویسی رویه ای یا Procedural Programming همچنانکه که سرور پرونده ای را می خواند، یک روال همیشگی از بالا تا پایین اجرا می شود. برنامه نویسی شیءگرا سریع تر، ساده تر و اشکال زدایی (debug) کردن آن آسان تر است؛ منابع کمتری بر روی سرور مصرف می کند، نیاز به کدنویسی کمتری دارد و بارگزاری آن سریع تر است. پس، به سوی OOP بشتابید.



    2) از هر چیزی که به _once ختم می شود دوری جویید
    همه ما می دانیم که از فرایند include() به صورت موفقیت آمیز انجام نشود پیغام هشدار می دهد. این در حالی است که require() در صورت کار نکردن، اجرای اسکریپت را با یک خطای مهلک (fatal error) متوقف می کند. چیزی که نباید فراموش کنیم این است که include_once() و require_once() منابع بسیار زیادی را بر روی سرور مصرف می کنند. ما هم نمی توانیم کاری در این خصوص انجام دهیم. PHP به این صورت ساخته شده است. فقط به یاد داشته باشید این دو تابع منابع سیستمی زیادی را بر روی سرور مصرف می کنند. هر چه کدنویسی شما ساختاریافته تر باشد، نیاز شما به استفاده از include_once() و require_once() کمتر می شود.



    3) کار توسعه را فعال کردن Error Reporting پیش ببرید
    هنگامی که پروژه ای را آغاز می کنید یکی از اولین کارهایی که باید انجام دهید این است که گزینه Error Reporting را با مقدار E_ALL تنظیم کنید و البته فراموش نکنید که قبل از منتشر ساختن پروژه حتما این گزینه را غیرفعال کنید. با روشن کردن Error Reporting می توانید مطمئن شوید که هیچ خطای ریز و درشتی از تیررس شما به دور نمی ماند.


    4) در صورت نیاز از یک Framework استفاده کنید
    برخی بر این باور هستند که نباید از هیچ فریم ورکی استفاده کنیم چون فریم ورک ها سرعت و کارایی کدهای php را ندارند. با این وجود استفاده از آنها به ویژه برای برنامه نویسان و توسعه دهندگان تازه کار می تواند مزایایی هم داشته باشد. این framework ها می توانند کارهای زیادی را که انجام دادن آنها اغلب ممکن است برای شما ملال آور باشد انجام دهند. همچنین می توانید با ساختار یک framework آشنا شوید؛ شاید روزی framework خودتان را بسازید. و صد البته امکان بد کدنویسی کردن شما کاهش می یابد چون دیگران بیشتر کار کدنویسی را قبلا انجام داده اند.



    5) از توابع built-in یا درون-ساخته php استفاده کنید
    خب، فرض کنید که می خواهید تعداد کلیدهای درون یک آرایه را حساب کنید. برای این کار می توانید با استفاده از یک حلقه، تک تک عناصر آرایه را پیمایش کنید و به ازای هر عنصر، یک واحد به یک متغیر اضافه کنید. و یا اینکه می توانید از تابع درون ساخته php به اسم count() استفاده کنید که به راحتی تعداد عناصر درون یک آرایه را برمی گرداند. PHP توابع built-in زیادی دارد و با استفاده از این توابع کارهای متنوع زیادی می توانید انجام دهید و استفاده کردن از آنها سرعت اجرای بالاتری را به همراه دارد.


    6) از پایگاه داده تان محافظت کنید
    قبل از ذخیره کردن هر نوع داده ای درون پایگاه داده (database) مطمئن شوید که از تابع mysql_real_escape_string() استفاده کرده اید. کار این تابع این است که کاراکترهای ویژه ای که از آنها در ساختن درستورات SQL استفاده می شود و می توانند رشته متن شما را به صورت یک کد مخرب درآورند نادیده می گیرد. همچنین به یاد داشته باشید که همواره همه ی رشته متن های GET و POST را اعتبارسنجی کنید. هیچ وقت از $_REQUEST استفاده نکنید و قبل از دخیره داده های ارسال شده درون پایگاه داده مطمئن شوید که همگی از نوع و مقدار صحیحی برخورداند.



    7) از POST استفاده کنید نه از GET
    امکان اینکه همیشه از متد POST استفاده کنید وجود ندارد اما جاهایی که واقعا هیچ نیازی ندارید، از GET استفاده نکنید. دلیلش هم ساده است. دسترسی به پارامترهای GET خیلی ساده است. به راحتی می توان تغییر دادن آنها در نوار آدرس (Address Bar) پروژه ای را هک کرد. از Get بیشتر برای صفحه بندی (Pagination) و یا پایاپیوندها (Permalinks) استفاده کنید و برای ارسال داده های فرم از POST استفاده کنید.



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



    9) پروژه تان را کاملا درک کنید
    یک نقاش نمی تواند چیزی را که قبلا ندیده نقاشی کند. یک خواننده نمی تواند چیزی را که قبلا نشنیده بخواند. شما هم نمی توانید پروژه ای که کاملا درک نکنید را کدنویسی کنید. اگر درک درستی از نیازهای یک پروژه نداشته باشید نمی توانید آن را بسازید.



    10) کدنویسی، کدنویسی، کدنویسی
    اگر از میان همه مطالبی که بیان شد بتوانیم یک چیز را به شما تفهیم کنیم، آن یک چیز همین است: تا می توانید کدنویسی کنید. شما نمی توانید صرفا با مطالعه کردن توسعه دهنده خوبی شوید. نمی توانید تنها با تماشا کردن نحوه کار سایر برنامه نویسان و توسعه دهندگان، توسعه دهنده خوبی شوید. تنها روش مورد اطمینان و آزموده شده این است که خودتان هم دست به کار شوید و کدنویسی کنید. اما در این زمینه خوب دقت کنید: کاری که به آن علاقمند نیستید و یا در آینده قرار نیست از آن استفاده کنید را کدنویسی نکنید. چیزی را بسازید که دوستش دارید و از کار کردن با آن هیجان زده می شوید. آن وقت است که چیز یاد خواهید گرفت.
     
    n@der، Sheida و DaniyaL از این ارسال تشکر کرده اند.
  8. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,320
    تشکر شده:
    42,648
    امتیاز دستاورد:
    113
    اعتبار سنجی فرم ها با عبارات منظم در PHP
    یکی از مهمترین قسمتهای برنامه نویسی وب با PHP، اعتبار سنجی و کنترل داده های ورودی توسط کاربر است؛ فرم ها، اصلی ترین ابزار برقراری ارتباط با کاربران سایت میباشند و اطمینان از اینکه کاربر فرم را در قالب صحیح پر کرده باشد از مشکلات آتی جلوگیری میکند. علاوه بر این در مواقعی، فردی که فرم را پر میکند، لزوما کاربر اصلی سایت نیست و هدفی به غیر از هدف اصلی فرم دارد. باید توجه داشت که اگر داده های ورودی از فرم ها به خوبی بررسی و پاکسازی نشوند، میتوانند به عنوان مهمترین وسیله نفوذ به سیستم تلقی شوند. برای جلوگیری از این مسائل باید داده های ورودی از فرم ها را قبل از پردازش و ارسال به پایگاه داده، بررسی و پاکسازی کنیم. استفاده از عبارات منظم (Regular Expressions) میتواند برای این موضوع مناسب باشد، که در زیر به انواع داده های فرم و نحوه اعتبار سنجی آن توسط عبارات منظم در PHP اشاره شده است:

    ۱- اعتبار سنجی و پاکسازی و بررسی وجود ایمیل با PHP
    اعتبار سنجی فرم ایمیل:
    اعتبار سنجی فرم ایمیل را میوانید به ۳ روشی که در زیراشاره میشود انجام دهید. اولین روش به این صورت است:
    کد:
    function isValidEmail($email){
            return eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$', $email);
    }
    یک روش بهتر هم هست که میتوانید ازآن استفاده کنید:
    کد:
    function isValidEmail($email){
            return preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i', $email);
    }
    و اگر از PHP 5.2 به بالا استفاده میکنید میتوانید از این روش فرم ایمیل رو اعتبار سنجی کنید:
    کد:
    function fnValidateEmail($email)
    {
      return filter_var($email, FILTER_VALIDATE_EMAIL);
    }
    پاکسازی ایمیل:
    ما حتی میتوانیم برای اطمینان بیشتر ایمیل گرفته شده را پاکسازی کنیم:
    کد:
    function fnSanitizeEmaill($string) {
         return  preg_replace( '((?:\n|\r|\t|%0A|%0D|%08|%09)+)i' , '', $string );
    }
    و یا در PHP 5.2 به بالا از روش زیر برای پاکسازی استفاده کنید:
    کد:
    function fnSanitizeEmaill($url)
    {
      return filter_var($url, FILTER_SANITIZE_EMAIL);
    }
    بررسی وجود ایمیل با php :
    این کار امکان پذیر نیست ولی میشود تا حد زیادی با بررسی دامنه ایمیل از وجود آن مطلع شد:
    کد:
    function check_email($email)
    {
            $email_error = false;
            $Email = htmlspecialchars(stripslashes(strip_tags(trim($email)))); //parse unnecessary characters to prevent exploits
            if ($Email == '') { email_error = true; }
            elseif (!eregi('^([a-zA-Z0-9._-])+@([a-zA-Z0-9._-])+\.([a-zA-Z0-9._-])([a-zA-Z0-9._-])+', $Email)) { email_error = true; }
            else {
            list($Email, $domain) = split('@', $Email, 2);
                    if (! checkdnsrr($domain, 'MX')) { email_error = true; }
                    else {
                    $array = array($Email, $domain);
                    $Email = implode('@', $array);
                    }
            }
    
            if (email_error) { return false; } else{return true;}
    }

    ۲ – اعتبار سنجی و پاکسازی اعداد با PHP
    اعتبار سنجی اعداد:
    برای بررسی اعداد در یک فرم میتوانیم از توابع داخلی PHP استفاده کنیم:
    کد:
    function fnValidateNumber($value)
    {
            #is_ double($value);
            #is_ float($value);
            #is_ int($value);
            #is_ integer($value);
            return is_numeric($value);
    }
    و در PHP 5.2 وبالاتر به این شکل عمل میکنیم:
    کد:
    function fnValidateNumber($value)
    {
            #return filter_var($value, FILTER_VALIDATE_FLOAT); // float
            return filter_var($value, FILTER_VALIDATE_INT); # int
    }
    پاکسازی اعداد:با استفاده از تابع زیر میتوانیم اعداد داخل فرم را پاکسازی کنیم:
    کد:
    function fnSanitizeNumber($str)
    {
            #letters and space only
            return preg_match('/[^0-9]/', '', $str);
    }
    و در PHP 5.2 به بالا:
    کد:
    function fnSanitizeNumber($value)
    {
            #return filter_var($value, FILTER_SANITIZE_NUMBER_FLOAT); // float
            return filter_var($value, FILTER_SANITIZE_NUMBER_INT); # int
    }

    ۳ – اعتبار سنجی و پاکسازی رشته ها در PHP
    اعتبار سنجی رشته ها:
    بیشتر در اعتبار سنجی نام و نام خانوادگی و .. به کار میرود و فقط حروف و فاصله را قبول میکند:
    کد:
    function fnValidateStringr($str)
    {
            #letters and space only
            return preg_match('/^[A-Za-z\s ]+$/', $str);
    }
    پاکسازی رشته ها:
    برای پاک کردن فرم از کاراکترهای غیر رشته ای به کار میرود:
    کد:
    function fnSanitizeStringr($str)
    {
            #letters and space only
            return preg_replace('/[^A-Za-z\s ]/', '', $str);
    }
    در PHP 5.2 و بالاتر میتوان از توابع قدرتمند داخلی PHP استفاده کرد:
    کد:
    function fnSanitizeStringr($str)
    {
            return filter_var($str, FILTER_SANITIZE_STRIPPED); # only 'String' is allowed eg. '&lt;br&gt;HELLO&lt;/br&gt;' =&gt; 'HELLO'
    }
    ادامه دارد..................
     
    n@der، Sheida و DaniyaL از این ارسال تشکر کرده اند.
  9. Darkness

    تاریخ عضویت:
    ‏18/3/13
    ارسال ها:
    3,394
    تشکر شده:
    19,397
    امتیاز دستاورد:
    116
    جنسیت:
    مرد
    حرفه:
    B4A
    برنامه نویسی با php نسبت به سایر زبان های برنامه نویسی روان تر ، سریع تر و راحت تره در هر خطی از برنامه که خطا وجود داشته باشه با اجرای صفحه خطا مشخص میشه...

    ______________________

    مزیت های PHP :

    • PHP یک ابزار اپن سورس و رایگان است و به همین دلیل هاست هایی که میزبانی آن را انجام می دهند ، بسیار ارزانتر از هاست های .Net هستند .
    • پی اچ پی بر روی تمامی پلتفورم های معروف مثل Windows , Linux و iOs اجرا می شود .
    • PHP یک زبان ساخت یافته بوده و یادگیری آن بسیار ساده است .
    • ابزار کار با PHP همگی اپن سورس بوده و استفاده از آنها رایگان هستند .
     
    n@der، AftabGardoon و Sheida از این ارسال تشکر کرده اند.
  10. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,320
    تشکر شده:
    42,648
    امتیاز دستاورد:
    113
    افزایش سرعت لود با فعال کردن Gzip در php
    این روش احتمالا سریعترین و راحترین روش برای افزایش سرعت بارگذاری (Load) وبسایت شماست!
    هر کسی که از سالها پیش در کار طراحی و ساخت وبسایت هست، از اهمیت سرعت در بارگذاری صفحات وب آگاه است. اگر صفحه وبسایت شما سریع بارگذاری نشه، کاربر منتظر نمیمونه و بدون اینکه صفحه رو بینه بر روی دکمه بازگشت (Back) مرورگر کلیک میکنه . بنابراین یکی از بهترین راهها برای جلوگیری از بروز این مشکل فعال کردن فشرده سازی Gzip در php هست.

    فشرده سازی Gzip چیست؟فشرده سازی Gzip دقیقا مثل این میمونه که شما قبل از ارسال صفحات وب به مرورگر کاربر، اونارو Zip میکنید و این کار باعث افزایش سرعت ارسال داده ها میشه. تقریبا تمام مرورگرها نیز از Gzip حمایت میکنند و با اون سازگاری دارند. نا گفته نماند که Gzip کردن صفحه وب میتونه سرعت بارگذاری رو تا ۶۰% افزایش بده.

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

    PHP:
    <?php[/COLOR][/LEFT]
    [
    COLOR=#0000ff]
    [LEFT]ob_start("ob_gzhandler");
    ?>
     
    DaniyaL و n@der از این پست تشکر کرده اند.