Cara login menggunakan facebook 4shared

Anda pernah download file di 4shared? Anda pasti pernah diwajibkan untuk login saat mau download di 4shared kan, Nah ada beberapa pilihan login yang dapat digunakan di 4shared salah satunya adalah dengan login with facebook, Itulah yang akan kita buat kali ini :D.

Kali ini ane siapin Demo dan Source code :D, Silahkan klik di //rizalfakhricdn.com untuk melihat demo dan //files.rizalfakhri.com/download_with_fb_login.zip untuk mendownload source code, di dalam file source code gak ane kasih index.php ya karena index.php bisa kalian sesuaikan dengan homepage website kalian :D

Jika kamu udah baca tutorial tentang membuat fitur login with facebook di //www.rizalfakhri.com/2016/07/cara-membuat-fitur-login-with-facebook.html Maka anda sudah tau susunan directory facebook sdk kan, Dan tentunya kalian juga udah punya file yang digunakan untuk request ke server facebook, Tapi tenang aja, Saya udh sedian source code kok yang tinggal plug & play :p

File inti terdiri dari 3 file, config.php, show_file.php, dan download.php (belum termasuk file untuk request ke server facebook) Biar lebih mudah silahkan download source codenya saja ya.

Buat database terlebih dahulu terserah namanya apa, Lalu jalankan query dibawah ini untuk menyimpan informasi filenya.

CREATE TABLE IF NOT EXISTS `file` ( `file_id` int(13) NOT NULL AUTO_INCREMENT, `nama_file` varchar(255) NOT NULL, `owner` varchar(255) NOT NULL, `uploaded_date` varchar(255) NOT NULL, `downloaded` varchar(255) NOT NULL, `file_url` tinytext NOT NULL, `invalid_token` tinytext NOT NULL, PRIMARY KEY (`file_id`), UNIQUE KEY `file_id` (`file_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

,/code>

1. show_file.php 

File ini digunakan untuk menampilkan data file yang akan di download dan mengkonfrmasinya, Cara memilih filenya yaitu dengan parameter $_GET yaitu file_id jadi jika kalian akan menampilkan file yang ber id 5 di database yang harus kalian akses adalah show_file.php?file_id=5 kira2 seperti itu :), Copy code dibawah ini.

<?php session_start(); require_once 'config.php'; $db = new db(); $id = $_GET['file_id']; if($db->validateRequest($id) == true) { $data = $db->mysqli->query("SELECT * FROM file WHERE file_id = '$id'"); if($data->num_rows > 0 ) { if($data = mysqli_fetch_array($data)) { $nama_file = $data['nama_file']; $owner = $data['owner']; $tanggal_upload = $data['uploaded_date']; $download = $data['downloaded']; $file_path = $data['file_url']; ?> <html> <head> <title><?php echo $nama_file; ?> - Download</title> <link rel='stylesheet' href='//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css'> <script src='//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js'></script> <script src='//www.google.com/recaptcha/api.js'></script> </head> <body> <style> body { background: url(//il8.picdn.net/shutterstock/videos/8543482/thumb/1.jpg) no-repeat center center fixed; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; } .panel-default { opacity: 0.9; margin-top:30px; } .form-group.last { margin-bottom:0px; } </style> <div class='container'> <div class='row'> <div class='col-md-12'> <div class='panel panel-default'> <div class='panel-heading'> <span class='glyphicon glyphicon-option-vertical'></span> <?php echo $nama_file; ?> </div> <div class='panel-body' style='word-wrap: break-word;'> <div class='col-md-12'> <table class="table table-condensed table-responsive"> <thead> <tr> <th>Nama File</th> <th>Owner</th> <th>Diupload Pada</th> <th>Didownload Sebanyak</th> </tr> </thead> <tbody> <tr> <td><?php echo $nama_file; ?></td> <td><?php echo $owner; ?></td> <td><?php echo $tanggal_upload; ?></td> <td><?php echo $download; ?> Kali</td> </tr> </tbody> </table> <a class='btn btn-success' href='download.php?download_id=<?php echo $id; ?>&token_code=<?php echo md5(uniqid()); ?>' style='width:100%;'>DOWNLOAD</a> </div> <div class='form-group'> <div class='col-md-12'> <hr> <p style='text-align:center;'>Copyright &copy; <?php echo date("Y"); ?> rizalfakhri</p> </div> </div> </div> </div> </div> </div> </div> </body> </html> <?php } } else { ?> <html> <head> <title>File Not Found</title> <link rel='stylesheet' href='//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css'> <script src='//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js'></script> <script src='//www.google.com/recaptcha/api.js'></script> </head> <body> <style> body { background: url(//il8.picdn.net/shutterstock/videos/8543482/thumb/1.jpg) no-repeat center center fixed; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; } .panel-default { opacity: 0.9; margin-top:30px; } .form-group.last { margin-bottom:0px; } </style> <div class='container'> <div class='row'> <div class='col-md-12'> <div class='panel panel-default'> <div class='panel-heading'> <span class='glyphicon glyphicon-option-vertical'></span> FILE TIDAK ADA </div> <div class='panel-body' style='word-wrap: break-word;'> <div class='col-md-12'> <div class='alert alert-danger'> Maaf, File yang anda cari tidak terdapat di arsip :) </div> </div> <div class='form-group'> <div class='col-md-12'> <hr> <p style='text-align:center;'>Copyright &copy; <?php echo date("Y"); ?> rizalfakhri</p> </div> </div> </div> </div> </div> </div> </div> </body> </html> <?php } } else { echo "SQL INJECTION DETECTED! FU*K YOU BIT*H!"; } 


2. download.php

Karena script bekerja berdasarkan session, Maka di file ini kita akan memvalidasi apakah terdapat session atau tidak, JIka tidak maka kita akan disuruh login dengan facebook, JIka terdapat session, Maka kita akan dibawa ke download page.

Contoh jika tidak terdapat session.

Contoh jika terdapat session.

Paste code dibawah ini.

<?php session_start(); require_once 'config.php'; if(empty($_SESSION['someSession'])) { ?> <html> <head> <title>Untuk download file harus login</title> <link rel='stylesheet' href='//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css'> <script src='//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js'></script> <script src='//www.google.com/recaptcha/api.js'></script> </head> <body> <style> body { background: url(//il8.picdn.net/shutterstock/videos/8543482/thumb/1.jpg) no-repeat center center fixed; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; } .panel-default { opacity: 0.9; margin-top:30px; } .form-group.last { margin-bottom:0px; } </style> <div class='container'> <div class='row'> <div class='col-md-12'> <div class='panel panel-default'> <div class='panel-heading'> <span class='glyphicon glyphicon-option-vertical'></span> HARUS LOGIN </div> <div class='panel-body' style='word-wrap: break-word;'> <div class='col-md-12'> <div class='alert alert-danger'> Maaf, Anda harus login untuk mendownload file. Silahkan pilih option login social media kami :) </div> <a class='btn btn-success' href='/fb/login_fb.php?id=<?php echo $_GET['download_id']; ?>&token=<?php echo $_GET['token_code']; ?>' style='width:100%'>LOGIN DENGAN FACEBOOK</a> </div> <div class='form-group'> <div class='col-md-12'> <hr> <p style='text-align:center;'>Copyright &copy; <?php echo date("Y"); ?> rizalfakhri</p> </div> </div> </div> </div> </div> </div> </div> </body> </html> <?php } else { $db = new db(); $id = $_GET['download_id']; $token = $_GET['token_code']; if($db->validateRequest($id)== TRUE) { if($db->validateToken($token) == TRUE) { $data = "SELECT * FROM file WHERE file_id = '$id'"; if($data = $db->mysqli->query($data)) { if($data->num_rows > 0) { if($data = mysqli_fetch_array($data)) { $url = $data['file_url']; $invalid_token = $data['invalid_token']; if(preg_match('/' . $token . '/',$invalid_token) == true) { echo " <html> <head> <title>Invalid Token Code</title> <link rel='stylesheet' href='//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css'> <link href='//maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css' rel='stylesheet' integrity='sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1' crossorigin='anonymous'> <script src='//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js'></script> <script src='//www.google.com/recaptcha/api.js'></script> </head> <body> <style> body { background: url(//il8.picdn.net/shutterstock/videos/8543482/thumb/1.jpg) no-repeat center center fixed; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; } .panel-default { opacity: 0.9; margin-top:30px; } .form-group.last { margin-bottom:0px; } </style> <div class='container'> <div class='row'> <div class='col-md-12'> <div class='panel panel-default'> <div class='panel-heading'> <span class='glyphicon glyphicon-option-vertical'></span> INVALID TOKEN </div> <div class='panel-body' style='word-wrap: break-word;'> <div class='col-md-12'> <center><i class='fa fa-times' style='color:#D9534F;font-size:250px;'></i></center> <h2 style='text-align:center'>OUR SYSTEM DETECTED AN INVALID TOKEN <br />HTTP/1.0 401 UNAUTHORIZED</h2> </div> <div class='form-group'> <div class='col-md-12'> <hr> <p style='text-align:center;'>Copyright &copy; ". date('Y') . " rizalfakhri</p> </div> </div> </div> </div> </div> </div> </div> </body> </html> "; } else { echo " <html> <head> <title>Success Downloads......</title> <link rel='stylesheet' href='//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css'> <link href='//maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css' rel='stylesheet' integrity='sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1' crossorigin='anonymous'> <script src='//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js'></script> <script src='//www.google.com/recaptcha/api.js'></script> </head> <body> <style> body { background: url(//il8.picdn.net/shutterstock/videos/8543482/thumb/1.jpg) no-repeat center center fixed; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; } .panel-default { opacity: 0.9; margin-top:30px; } .form-group.last { margin-bottom:0px; } </style> <div class='container'> <div class='row'> <div class='col-md-12'> <div class='panel panel-default'> <div class='panel-heading'> <span class='glyphicon glyphicon-option-vertical'></span> SUCCESS DOWNLOAD </div> <div class='panel-body' style='word-wrap: break-word;'> <div class='col-md-12'> <center><i class='fa fa-check' style='color:#5cb85c;font-size:250px;'></i></center> <h2 style='text-align:center'>THANK YOU FOR YOUR DOWNLOADS...</h2> </div> <div class='form-group'> <div class='col-md-12'> <hr> <p style='text-align:center;'>Copyright &copy; ". date('Y') . " rizalfakhri</p> </div> </div> </div> </div> </div> </div> </div> </body> </html> "; $db->mysqli->query("UPDATE file SET invalid_token = '$invalid_token, $token' WHERE file_id = '$id'"); $db->mysqli->query("UPDATE file SET downloaded = downloaded + 1"); $db->download($url); } } } } } } }

Selanjutnya kita akan membuat file php yang berisi APP ID dan SECRET ID app facebook kita serta berisi database credential di file config.php

3. config.php

Silahkan replace app dan secret id kamu, Dan juga replace myhost,myuser,mypass,mydb dengan database credential kamu ya.

<?php require_once 'fb/sdk/autoload.php'; // load file autoload dari facebook $appId = "APP ID KAMU"; // replace dengan app id yang kamu dapatkan di facebook developer $appSecret = "SECRET ID KAMU"; // replace dengan secret key yang kamu dapatkan di facebook developer class db { function __construct() { $this->mysqli = new mysqli('myhost','myuser','mypass','mydb'); if(mysqli_connect_error()) { die("Could Not Connect To Database Due Error Code ". mysqli_connect_errno()); } } function validateRequest($request_id) { if(is_int(abs($request_id))) { return true; } else { return false; } } function validateToken($token) { if(preg_match('/^[a-f0-9]{32}$/', $token)) { return true; } else { return false; } } function download($url) { echo "<script type='text/javascript'>window.top.location='" . $url . "';</script>"; } }

Untuk file yang digunakan untuk berkomunikasi dengan server facebook silahkan download source codenya saja ya. struktur filenya sperti itu.

SELESAI!.

Mari saya jelaskan alur code diatas.  Dimulai dari show_file.php silahkan perhatikan code potongan code show_file.php dibawah


<?php session_start(); // menginisialisasi session require_once 'config.php'; // menginclude / memanggil config.php $db = new db(); // menginisialisasi class db yang akan digunakan untuk berkomunikasi dengan database $id = $_GET['file_id']; // kita akan menampilkan file berdasarkan id yang didapat dari parameter $_GET['file_id'] if($db->validateRequest($id) == true) { // Memanggil function validateRequest() untuk menghindari sql injection $data = $db->mysqli->query("SELECT * FROM file WHERE file_id = '$id'"); // menjalankan query ke database untuk fetch data berdasarkan id if($data->num_rows > 0 ) { // mengecek apakah data yang kita querykan ada atau tidak, Jika ada maka kita akan menyimpan datanya dalam variable if($data = mysqli_fetch_array($data)) { // fetch data ke dalam array $nama_file = $data['nama_file']; // menyimpan data nama file ke dalam variable $nama_file $owner = $data['owner']; // menyimpan data owner file ke dalam variable $owner $tanggal_upload = $data['uploaded_date']; // menyimpan data tanggal diupload ke dalam variable $tanggal_upload $download = $data['downloaded']; // menyimpan data berapa kali file di download ke dalam variable $download

Kira2 cara kerja show_file.php seperti ini, misal kita akan mengakses show_file.php?file_id=3 lalu server akan menegecek apakah ada data di database yang id nya 3, Jika ada maka show_file.php akan menampilkan soseti dibawah ini.

Lalu jika tidak ada data di database yang ber id 3 maka show_file.php akan menampilkan seperti dibawah ini.

Kira2 seperti itu cara kerja script show_file.php

2. download.php

Sepertinya cara kerja file ini sudah tidak perlu saya kasih tau karena sudah saya kasih tau di penjelasan diatas, Jika ada session maka download jika tidak maka kita disuruh login.

3. config.php

apalagi ini sudah tidak akan saya jelaskan, karena cara kerja file ini hanya membangun koneksi ke database mendefined class dll.

Cara menggunakan source code, Silahkan download lalu extract, dan edit config.php sesuai data yang kamu dapatkan di developers.facebook.com

Code PHP ini hanya untuk sistem downloadnya, Untuk sistem mengupload filenya tidak saya buat, Jadi silahkan berkreasi :D

TERIMAKASIH SUDAH MENGIKUTI TUTORIAL KALI INI ^_^ SEMOGA BEMANFAAT UNTUK KALIAN SEMUA :)

Postingan terbaru

LIHAT SEMUA