28 February, 2014

fungsi readfile() pada php


Fungsi $_SERVER pada PHP yang sering kita gunakan mungkin untuk beberapa keperluan, diantaranya untuk mengetahui alamat IP user, mengetahui jenis browser dan OS yang digunakan user, mengetahui alamat url yang diakses oleh user, mengetahui url referal yang digunakan user untuk mengakses situs kita
Untuk melihat beberapa fungsi dari $_SERVER , kita bisa gunakan script dibawah kemudian kita jalankan pada komputer kita. $_SERVER merupakan sebuah fungsi array yang mempunyai key bermacam - macam seperti terlihat pada pembahasan berikut.

echo '
'

;
print_r($_SERVER);
echo '
';
?>



Jika kita jalankan aplikasi diatas pada komputer kita, maka akan ditampilkan hasil seperti terlihat pada daftar dibawah ini, masing - masing value pada $_SERVER akan berbeda pada setiap komputer, hal ini tergantung pada setting pada komputer yang digunakan


 Array
(
    [HTTP_HOST] => localhost
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    [HTTP_ACCEPT_LANGUAGE] => en-us,en;q=0.5
    [HTTP_ACCEPT_ENCODING] => gzip, deflate
    [HTTP_CONNECTION] => keep-alive
    [HTTP_COOKIE] => __atuvc=1td_persen7C4
    [HTTP_CACHE_CONTROL] => max-age=0
    [PATH] => C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Common Files\Adobe\AGL;C:\Program Files\QuickTime\QTSystem\;
    [SystemRoot] => C:\Windows
    [COMSPEC] => C:\Windows\system32\cmd.exe
    [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
    [WINDIR] => C:\Windows
    [SERVER_SIGNATURE] =>
Apache/2.2.8 (Win32) PHP/5.2.6 Server at localhost Port 80
    [SERVER_SOFTWARE] => Apache/2.2.8 (Win32) PHP/5.2.6
    [SERVER_NAME] => localhost
    [SERVER_ADDR] => 127.0.0.1
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => 127.0.0.1
    [DOCUMENT_ROOT] => D:/AppServ/www
    [SERVER_ADMIN] => admin@prm-dev.com
    [SCRIPT_FILENAME] => D:/AppServ/www/tutorial/server.php
    [REMOTE_PORT] => 49829
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] =>
    [REQUEST_URI] => /tutorial/server.php
    [SCRIPT_NAME] => /tutorial/server.php
    [PHP_SELF] => /tutorial/server.php
    [REQUEST_TIME] => 1359634055
    [argv] => Array
        (
        )
    [argc] => 0
)



fungsi readfile digunakan untuk membaca file, tapi dengan modikasi sedikit kita dapat menggunakan untuk force download (membatasi download), karena biasanya file yang akan di download terletak pada root folder..

dengan script ini kita dapat mencegah terjadinya direct download dan dapat mengurangi terjadinya hacking pada situs..

ini sedikit scriptnya..silahkan dimodifikasi sesuai dengan kebutuhan..

rgd


$file = ‘foder/data.txt’;
if (file_exists($file))

{

header(‘Content-Description: File Transfer’);

header(‘Content-Type: application/octet-stream’);

header(‘Content-Disposition: attachment; filename=’.basename($file));

header(‘Content-Transfer-Encoding: binary’);

header(‘Expires: 0′);

header(‘Cache-Control: must-revalidate, post-check=0, pre-check=0′);

header(‘Pragma: public’);

header(‘Content-Length: ‘ . filesize($file));

ob_clean();

flush();

readfile($file);

exit;

}

?>

No comments:

Post a Comment