Tampilkan postingan dengan label Tutorial. Tampilkan semua postingan
Tampilkan postingan dengan label Tutorial. Tampilkan semua postingan
Script PHP Untuk Redirect  Visitor Berdasarkan Negara

Script PHP Untuk Redirect Visitor Berdasarkan Negara

Skrip PHP Untuk Mengetahui Negara Pengunjung berdasarkan IP address sudah pernah dibahas pada artikel sebelumnya disini. Sekarang sedot code ingin membagikan bagaimana cara redirect pengunjung berdasarkan negara menggunakan curl freegeoip.net.

Tutorial ini sebenarnya bisa juga untuk memblok visitor dari negara-negara tertentu. Jika anda adalah seorang internet marketer mungkin akan sering membutuhkan script bagaimana cara meredirect atau memblok visitor ini.


Mendapatkan IP, Validasi IP, dan GeoIP

Berikut adalah scriptnya:

<?php
function getGeoIP($ip = null, $jsonArray = false) {
    try {
        // If no IP is provided use the current users IP
        if($ip == null) {
            $ip   = filter_input(INPUT_SERVER, 'REMOTE_ADDR');
        }
        // If the IP is equal to 127.0.0.1 (IPv4) or ::1 (IPv6) then cancel, won't work on localhost
        if($ip == "127.0.0.1" || $ip == "::1") {
            throw new Exception('You are on a local sever, this script won\'t work right.');
        }
        // Make sure IP provided is valid
        if(!filter_var($ip, FILTER_VALIDATE_IP)) {
            throw new Exception('Invalid IP address "' . $ip . '".');
        }
        if(!is_bool($jsonArray)) {
            throw new Exception('The second parameter must be a boolean - true (return array) or false (return JSON object); default is false.');
        }
        // Fetch JSON data with the IP provided
        $url  = "http://freegeoip.net/json/" . $ip;
        // Return the contents, supress errors because we will check in a bit
        $json = @file_get_contents($url);
        // Did we manage to get data?
        if($json === false) {
            return false;
        }
        // Decode JSON
        $json = json_decode($json, $jsonArray);
        // If an error happens we can assume the JSON is bad or invalid IP
        if($json === null) {
            // Return false
            return false;
        } else {
            // Otherwise return JSON data
            return $json;
        }
    } catch(Exception $e) {
        return $e->getMessage();
    }
}
function get_ip_address() {
    $ip_keys = array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR');
    foreach ($ip_keys as $key) {
        if (array_key_exists($key, $_SERVER) === true) {
            foreach (explode(',', $_SERVER[$key]) as $ip) {
                // trim for safety measures
                $ip = trim($ip);
                // attempt to validate IP
                if (validate_ip($ip)) {
                    return $ip;
                }
            }
        }
    }

    return isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : false;
}
function validate_ip($ip)
{
    if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) === false) {
        return false;
    }
    return true;
}

Terlihat ada beberapa fungsi, setidaknya ada 3 fungsi(). mendapatkan ip address, validasi ip, dan menentukan lokasi negaranya. Sekarang tinggal kita eksekusi seperti ini.

//https://sedotcode.blogspot.com/2017/09/redirect-visitor-by-country.html
$ip = get_ip_address();
$userGeoData = getGeoIP($ip); 

echo "IP: " .$ip."<br>";

echo "Kode Negara: " .$userGeoData->country_code."<br>";

echo "Nama Negara: " .$userGeoData->country_name."<br>";

echo "Kota: " .$userGeoData->city."<br>";

PHP Redirect By Country 


// Tutorial => https://sedotcode.blogspot.com/2017/09/redirect-visitor-by-country.html
// Code Negara (2 Digit) indonesia = ID => https://countrycode.org/
$userGeoData = getGeoIP(get_ip_address()); 

// echo "Kode Negara: " .$userGeoData->country_code."<br>";

// echo "Nama Negara: " .$userGeoData->country_name."<br>";

$kode_negara = $userGeoData->country_code;

if ($kode_negara == 'ID' || $kode_negara == "dan seterusnya" ) {
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: //fb.com"); 
}

Penjelasan:
Setelah mendapatkan nama negara berdasarkan ip, maka kita bisa redirect ke halaman tertentu. Seperti pada contoh diatas. Jika pengunjung berasal dari Indonesia maka akan di arahkan ke facebook.com.

$kode_negara  = SO 3166 Country Codes
A1,"Anonymous Proxy"
A2,"Satellite Provider"
O1,"Other Country"
AD,"Andorra"
AE,"United Arab Emirates"
AF,"Afghanistan"
AG,"Antigua and Barbuda"
AI,"Anguilla"
AL,"Albania"
AM,"Armenia"
AO,"Angola"
AP,"Asia/Pacific Region"
AQ,"Antarctica"
AR,"Argentina"
AS,"American Samoa"
AT,"Austria"
AU,"Australia"
AW,"Aruba"
AX,"Aland Islands"
AZ,"Azerbaijan"
BA,"Bosnia and Herzegovina"
BB,"Barbados"
BD,"Bangladesh"
BE,"Belgium"
BF,"Burkina Faso"
BG,"Bulgaria"
BH,"Bahrain"
BI,"Burundi"
BJ,"Benin"
BL,"Saint Bartelemey"
BM,"Bermuda"
BN,"Brunei Darussalam"
BO,"Bolivia"
BQ,"Bonaire, Saint Eustatius and Saba"
BR,"Brazil"
BS,"Bahamas"
BT,"Bhutan"
BV,"Bouvet Island"
BW,"Botswana"
BY,"Belarus"
BZ,"Belize"
CA,"Canada"
CC,"Cocos (Keeling) Islands"
CD,"Congo, The Democratic Republic of the"
CF,"Central African Republic"
CG,"Congo"
CH,"Switzerland"
CI,"Cote d'Ivoire"
CK,"Cook Islands"
CL,"Chile"
CM,"Cameroon"
CN,"China"
CO,"Colombia"
CR,"Costa Rica"
CU,"Cuba"
CV,"Cape Verde"
CW,"Curacao"
CX,"Christmas Island"
CY,"Cyprus"
CZ,"Czech Republic"
DE,"Germany"
DJ,"Djibouti"
DK,"Denmark"
DM,"Dominica"
DO,"Dominican Republic"
DZ,"Algeria"
EC,"Ecuador"
EE,"Estonia"
EG,"Egypt"
EH,"Western Sahara"
ER,"Eritrea"
ES,"Spain"
ET,"Ethiopia"
EU,"Europe"
FI,"Finland"
FJ,"Fiji"
FK,"Falkland Islands (Malvinas)"
FM,"Micronesia, Federated States of"
FO,"Faroe Islands"
FR,"France"
GA,"Gabon"
GB,"United Kingdom"
GD,"Grenada"
GE,"Georgia"
GF,"French Guiana"
GG,"Guernsey"
GH,"Ghana"
GI,"Gibraltar"
GL,"Greenland"
GM,"Gambia"
GN,"Guinea"
GP,"Guadeloupe"
GQ,"Equatorial Guinea"
GR,"Greece"
GS,"South Georgia and the South Sandwich Islands"
GT,"Guatemala"
GU,"Guam"
GW,"Guinea-Bissau"
GY,"Guyana"
HK,"Hong Kong"
HM,"Heard Island and McDonald Islands"
HN,"Honduras"
HR,"Croatia"
HT,"Haiti"
HU,"Hungary"
ID,"Indonesia"
IE,"Ireland"
IL,"Israel"
IM,"Isle of Man"
IN,"India"
IO,"British Indian Ocean Territory"
IQ,"Iraq"
IR,"Iran, Islamic Republic of"
IS,"Iceland"
IT,"Italy"
JE,"Jersey"
JM,"Jamaica"
JO,"Jordan"
JP,"Japan"
KE,"Kenya"
KG,"Kyrgyzstan"
KH,"Cambodia"
KI,"Kiribati"
KM,"Comoros"
KN,"Saint Kitts and Nevis"
KP,"Korea, Democratic People's Republic of"
KR,"Korea, Republic of"
KW,"Kuwait"
KY,"Cayman Islands"
KZ,"Kazakhstan"
LA,"Lao People's Democratic Republic"
LB,"Lebanon"
LC,"Saint Lucia"
LI,"Liechtenstein"
LK,"Sri Lanka"
LR,"Liberia"
LS,"Lesotho"
LT,"Lithuania"
LU,"Luxembourg"
LV,"Latvia"
LY,"Libyan Arab Jamahiriya"
MA,"Morocco"
MC,"Monaco"
MD,"Moldova, Republic of"
ME,"Montenegro"
MF,"Saint Martin"
MG,"Madagascar"
MH,"Marshall Islands"
MK,"Macedonia"
ML,"Mali"
MM,"Myanmar"
MN,"Mongolia"
MO,"Macao"
MP,"Northern Mariana Islands"
MQ,"Martinique"
MR,"Mauritania"
MS,"Montserrat"
MT,"Malta"
MU,"Mauritius"
MV,"Maldives"
MW,"Malawi"
MX,"Mexico"
MY,"Malaysia"
MZ,"Mozambique"
NA,"Namibia"
NC,"New Caledonia"
NE,"Niger"
NF,"Norfolk Island"
NG,"Nigeria"
NI,"Nicaragua"
NL,"Netherlands"
NO,"Norway"
NP,"Nepal"
NR,"Nauru"
NU,"Niue"
NZ,"New Zealand"
OM,"Oman"
PA,"Panama"
PE,"Peru"
PF,"French Polynesia"
PG,"Papua New Guinea"
PH,"Philippines"
PK,"Pakistan"
PL,"Poland"
PM,"Saint Pierre and Miquelon"
PN,"Pitcairn"
PR,"Puerto Rico"
PS,"Palestinian Territory"
PT,"Portugal"
PW,"Palau"
PY,"Paraguay"
QA,"Qatar"
RE,"Reunion"
RO,"Romania"
RS,"Serbia"
RU,"Russian Federation"
RW,"Rwanda"
SA,"Saudi Arabia"
SB,"Solomon Islands"
SC,"Seychelles"
SD,"Sudan"
SE,"Sweden"
SG,"Singapore"
SH,"Saint Helena"
SI,"Slovenia"
SJ,"Svalbard and Jan Mayen"
SK,"Slovakia"
SL,"Sierra Leone"
SM,"San Marino"
SN,"Senegal"
SO,"Somalia"
SR,"Suriname"
SS,"South Sudan"
ST,"Sao Tome and Principe"
SV,"El Salvador"
SX,"Sint Maarten"
SY,"Syrian Arab Republic"
SZ,"Swaziland"
TC,"Turks and Caicos Islands"
TD,"Chad"
TF,"French Southern Territories"
TG,"Togo"
TH,"Thailand"
TJ,"Tajikistan"
TK,"Tokelau"
TL,"Timor-Leste"
TM,"Turkmenistan"
TN,"Tunisia"
TO,"Tonga"
TR,"Turkey"
TT,"Trinidad and Tobago"
TV,"Tuvalu"
TW,"Taiwan"
TZ,"Tanzania, United Republic of"
UA,"Ukraine"
UG,"Uganda"
UM,"United States Minor Outlying Islands"
US,"United States"
UY,"Uruguay"
UZ,"Uzbekistan"
VA,"Holy See (Vatican City State)"
VC,"Saint Vincent and the Grenadines"
VE,"Venezuela"
VG,"Virgin Islands, British"
VI,"Virgin Islands, U.S."
VN,"Vietnam"
VU,"Vanuatu"
WF,"Wallis and Futuna"
WS,"Samoa"
YE,"Yemen"
YT,"Mayotte"
ZA,"South Africa"
ZM,"Zambia"
ZW,"Zimbabwe"

Demikian Script PHP Untuk Redirect  Visitor Berdasarkan Negara. Semoga bermanfaat.
Read more
Install FFmpeg Ubuntu 12.04 - 14.04 dan 16.04

Install FFmpeg Ubuntu 12.04 - 14.04 dan 16.04

Cara Install FFmpeg Ubuntu 12.04 - 14.04 and 16.04, bagaimana cara menginstall aplikasi ffmpeg pada linux ubuntu versi 12.04 - 14.04 dan 16.04.

Install FFmpeg Ubuntu 12.04 and 16.04

Untuk ffmpeg versi 12 dan 16 caranya sama.
sudo apt-get install ffmpeg


Install FFmpeg Ubuntu 14.04

Untuk menginstall FFmpeg Ubuntu 14.04, kita harus Add FFmpeg Repo terlebih dahulu

Add FFmpeg Repo

sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next

Update Sources

sudo apt-get update

Install FFmpeg

sudo apt-get install ffmpeg

Demikian bagaimana cara install FFmpeg untuk linux / ubuntu versi 12.04 - 14.04 dan 16.04
Read more

Cara Membuat Login PHP Sederhana

Bagaimana cara membuat login php sederhana, pada kesempatan ini sedot code ingin coba berbagi bagaimana cara membuat form login menggunakan php. Sistem login dengan php menggunakan database mysql dengan password md5.

MD5 ialah fungsi hash kriptografik yang digunakan secara luas dengan hash value 128-bit. Contohnya md5 dari kata "admin" adalah 21232f297a57a5a743894a0e4a801fc3.

Ada dua contoh Login PHP Sederhana:

  1. Login PHP Sederhana Tanpa md5
  2. Login PHP Sederhana Dengan md5
Sekarang kita bahas yang pertama....

Login PHP Sederhana Tanpa md5


Database MYSQL


CREATE TABLE admin
(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(30) UNIQUE,
passcode VARCHAR(255)
);

Atau bisa dibuat melalui phpmyadmin seperti gambar berikut ini:


Cara Membuat Login PHP Sederhana
phpmyadmin 
Setelah membuat database dan tabel, jangan lupa isi dengan data user dan password
insert data phpmyadmin
insert data phpmyadmin

Konfigurasi Koneksi Database 

<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'username');
define('DB_PASSWORD', 'password');
define('DB_DATABASE', 'database');
$db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
?>

Sesuaikan dengan konfigurasi masing-masing, defaultnya:
DB_SERVER = localhost
DB_USERNAME = root
DB_PASSWORD = kosong
DB_DATABASE=namadatabase


Login.php

<?php

include("config.php");
session_start();

if ($_POST)
    {

    // username and password sent from form

    $myusername = $_POST['username'];
    $mypassword = $_POST['password'];
    $sql         = "SELECT id FROM admin WHERE username='$myusername' and passcode='$mypassword'";
    $result     = mysqli_query($db, $sql);
    $row         = mysqli_fetch_array($result, MYSQLI_ASSOC);
    $active     = $row['active'];
    $count         = mysqli_num_rows($result);

    // If result matched $myusername and $mypassword, table row must be 1 row

    if ($count == 1)
        {
        $_SESSION['login_user'] = $myusername;
        header("location: welcome.php");
        }
      else
        {
        $error = "Your Login Name or Password is invalid";
        }
    }

?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Login</title>
    <link rel="stylesheet" href="">
</head>
<body>
    <form action="" method="post">
    <label>UserName  :</label><input type="text" name="username" class="box"/><br /><br />
    <label>Password  :</label><input type="password" name="password" class="box" /><br/><br />
    <input type="submit" value=" Submit "/><br />
    </form>

    <!--Pesan Kesalahan-->
    <div>
        <?php echo !empty($error) ? $error: ''; ?>
    </div>
</body>
</html>

Lock.php

File ini berfungsi untuk verification session, jika session tidak ada maka akan di arahkan ke login.php
<?php
include('config.php');
session_start();
$user_check=$_SESSION['login_user'];

$ses_sql=mysqli_query($db,"select username from admin where username='$user_check' ");

$row=mysqli_fetch_array($ses_sql,MYSQLI_ASSOC);

$login_session=$row['username'];

if(!isset($login_session))
{
header("Location: login.php");
}
?>


Welcome.php

Jika session tidak ada, maka halaman ini tidak bisa di akses, akan di arahkan ke halaman login.php , ini dikarenakan adanya kode lock.php yang di include.
<?php
include('lock.php');
?>
<body>
<h1>Welcome <?php echo $login_session; ?></h1>
</body>

Logout.php

Menghapus session
<?php
session_start();
if(session_destroy())
{
header("Location: login.php");
}
?>


Login PHP Sederhana Dengan md5

Tidak banyak beda dengan script di atas, untuk menjalankan md5 kita harus mencocokkan kembali password yang diimput dengan password database, saat kita mengetikkan password pada kolom inputan, maka php akan membaca dan mengubahnya menjadi md5.

Kita harus menyesuaikan pada file login.php, lihat baris berikut ini:
if ($_POST)
    {

    // username and password sent from form

    $myusername = $_POST['username'];
    $mypassword = md5($_POST['password']);
....
....

dan jangan lupa untuk membuat password di phpmyadmin (database) menjadi md5. Bisa menggunakan tool ini. MD5 Encrypt

atau bisa juga membuat md5 dengan cara mengedit data sebelumnya.

md5 dengan phpmyadmin
1
md5 dengan phpmyadmin
2

Demikian Cara Membuat Login PHP Sederhana menggunakan php dan mysql database. Pada tulisan sebelumnya kita sudah membahas bagaimana cara kembali kehalaman sebelumnya setelah melakukan login. Kembali kehalaman sebelumnya setelah login

Source code bisa di download disini Download

Read more
Tutorial Cara Membuat URL Cantik Menggunakan .htaccess

Tutorial Cara Membuat URL Cantik Menggunakan .htaccess

Bagaimana cara mengubah sebuah url yang mempunyai parameter berupa id menjadi sebuah url yang clean alias pretty url. clean url adalah manipulasi link url pada sebuah aplikasi web agar menjadi lebih seo friedly(lebih bagus tampilannya di pencarian google)

Misal url seperti ini

domain.com/index.php?p=artikel&id=1

ingin kita ubah menjadi seperti ini

domain.com/artikel-1.html atau domain.com/news/artikel-1.html.

Dari kedua contoh diatas tentu yang contoh nomor dua lebih bagus dan lebih enak dilihat, dengan teknik clean url ini kita juga bisa menyimpan beberapa informasi yang tidak ingin kita perlihatkan secara umum, seperti id database dan lainnya.

Untuk membuatnya seperti itu bisa kita akali caranya dengan menggunakan file htaccess, sebuah file tanpa extensi dan berada pada root folder website kita.

Contoh htaccess

Agar lebih mudah dipahami saya akan membuat sebuah contoh penerapan langsung bagaimana htaccess rewrite ini berkerja, kita akan membuat sebuah script page dinamis. Source ini dari malasngoding.com.

Silahkan buat sebuah folder dengan nama "cleanurl" didalam folder root anda (www, htdoc).

Kemudian buat sebuah file index.php, copy paste script berikut ini.

<!DOCTYPE html>
<html>
<head>
    <title>Membuat Halaman Web Dinamis Dengan PHP | www.malasngoding.com</title>
    <!-- menghubungkan dengan file css -->
    <link rel="stylesheet" type="text/css" href="style.css">
    <!-- menghubungkan dengan file jquery -->
    <script type="text/javascript" src="jquery.js"></script>
</head>
<body>
<!-- 
Author : diki alfarabi hadi 
Site : www.malasngoding.com
-->
<div class="content">
    <header>
        <h1 class="judul">SedotCode</h1>
        <h3 class="deskripsi">Membuat Halaman Web Dinamis Dengan PHP</h3>
    </header>

    <div class="menu">
        <ul>
            <li><a href="index.php?page=home">HOME</a></li>
            <li><a href="index.php?page=tentang">TENTANG</a></li>
            <li><a href="index.php?page=tutorial">TUTORIAL</a></li>
        </ul>
    </div>

    <div class="badan">


    <?php 
    if(isset($_GET['page'])){
        $page = $_GET['page'];

        switch ($page) {
            case 'home':
                include "halaman/home.php";
                break;
            case 'tentang':
                include "halaman/tentang.php";
                break;
            case 'tutorial':
                include "halaman/tutorial.php";
                break;            
            default:
                echo "<center><h3>Maaf. Halaman tidak di temukan !</h3></center>";
                break;
        }
    }else{
        include "halaman/home.php";
    }

     ?>

    </div>
</div>
</body>
</html>

Terlihat ada tiga halaman, yaitu:

  • index.php?page=home
  • index.php?page=tentang
  • index.php?page=tutorial

Jika ingin mempercantik tampilannya , gunakan code css berikut dan simpan dengan nama style.css

body{
    background-color:#f9f9f9;
    font-size:16px
    color:#444;
    font-family: sans-serif;
}

.content{
    width: 80%;
    margin: 10px auto;
}

/*header*/
header{
    background-color: white;
    padding: 20px 10px;
    border-radius: 5px;
    border: 1px solid #f0f0f0;
    margin-bottom: 10px;
}

header h1.judul,
header h3.deskripsi{
    text-align: center;    
}

/*menu navigasi*/
.menu{
    background-color: #87CEFA;
    border: 1px solid #f0f0f0;
    border-radius: 8px;    
    margin-bottom: 10px;
}

div.menu ul {
    list-style:none;
    overflow: hidden;
}


div.menu ul li {
    float:left;        
    text-transform:uppercase;
}

div.menu ul li a {
    display:block;    
    padding:0 20px;
    text-decoration:none;
    color:#2c2c2c;
    font-family: sans-serif;
    font-size:13px;
    font-weight:400;
    transition:all 0.3s ease-in-out;
}

div.menu ul li a:hover,
div.menu ul li a.hoverover {    
    cursor: pointer;    
    color:#fff;
}


div.badan{
    background-color: white;
    border-radius: 5px;
    border: 1px solid #f0f0f0;
    margin-bottom: 10px;
}

div.halaman{
    text-align: center;
    padding: 30px 20px;    
}

Lalu bagaiamana cara membuatnya menjadi url yang cantik, ikuti step by stepnya berikut ini:

Metode URL Rewriting yang kita gunakan menggunakan sebuah fitur yang disediakan server yang menjalankan Apache. Artinya bila anda menggunakan Windows anda memerlukan WAMP atau XAMP nyala dan bila anda menggunakan OSX anda memerlukan MAMP atau XAMP nyala. Untungnya hampir semua host server memiliki support bagi Apache.

Cara memulai adalah dengan membuat sebuah file bernama .htaccess dan file ini harus disimpan di root dari folder website anda. Ingat nama file hanya .htaccess tanpa ada format file apapun. Hati-hati juga karena terkadang file .htaccess akan dihide secara otomatis dan anda perlu melakukan setting di komputer anda agar anda dapat melihat hidden files.

.htaccess sendiri merupakan sebuah file konfigurasi milik Apache dimana kita dapat memberikan rules dan command pilihan kita sendiri yang nantinya akan diaplikasikan ke semua file dan sub-folder di dalam folder dimana file .htaccess berada. 

Didalam .htaccess sendiri kita menggunakan sebuah modul milik Apache bernama mod_rewrite. Sebelum melakukan metode ini, pastikan anda memiliki modul mod_rewrite. Tetapi tidak perlu dipusingkan karena hampir semua virtual server dan web host memiliki modul ini.

Cara mengaktifkan modul rewrite jika belum aktif.

  1. Temukan file "httpd.conf" didalam instalasi apache anda (xampp: C:\xampp\apache\conf)
  2. Temukan baris "#LoadModule rewrite_module modules/mod_rewrite.so" bisa kita cari menggunakan ctrl+f "mod_rewrite" (sublime text)
  3. Hapus tanda pagar untuk mengaktifkannya
  4. Now restart the apache server. Anda bisa melihatnya sudah terenable dengan phpinfo();


Memulai Rewrite dengan htaccess

Untuk memulai, pastikan anda sudah membuat file .htaccess didala folder root anda (contoh dalam kasus ini adalah didalam folder "cleanurl".

Pada baris pertama :

RewriteEngine On

Baris command ini akan memulai modul mod_rewrite. Di bawah baris ini kita bisa menulis semua rule dari URL rewrite yang kita perlukan.

Rule dari URL rewrite dasarnya adalah seperti ini:

RewriteRule URL/yang/ingin/di/cocokan URL/yang/digunakan/bila/cocok [option], sehingga file htaccessnya menjadi seperti ini:

RewriteEngine on
RewriteRule ^home$ index.php?page=home [QSA] 
RewriteRule ^tentang$ index.php?page=tentang [QSA]
RewriteRule ^tutorial$ index.php?page=tutorial [QSA]

Restart Apache.

Silahkan akses url
localhost/cleanurl/index.php?page=home
dan
localhost/cleanurl/home

hasilnya akan sama saja.

Langkah terakhir silahkan ubah semua url menjadi seperti yang sudah di rewrite pada htaccess.
<li><a href="index.php?page=home">HOME</a></li>
<li><a href="index.php?page=tentang">TENTANG</a></li>
<li><a href="index.php?page=tutorial">TUTORIAL</a></li>

Menjadi Seperti ini;
<li><a href="home">HOME</a></li>
<li><a href="tentang">TENTANG</a></li>
<li><a href="tutorial">TUTORIAL</a></li>


Contoh rewrite htaccess mempercantik url dari database

Jika sudah memahami bagaimana rewrite diatas, tentu tidak ada bedanya dengan dan tanpa database. Untuk yang ingin melihat penerapannya dengan database bisa melihat source code web berita yang sudah kami share sebelumnya: Web Portal Berita

Penutup

Demikian Tutorial Cara Membuat URL Cantik Menggunakan .htaccess yang bisa kami bagikan pada kesempatan ini. Untuk copaser atau tim penyedot rss atau agc bangwilwulwal mohon untuk tidak membuang waktu anda menyedot isi artikel sedotcode

UPDATE!
Untuk yang tidak ingin pusing, bisa menggunakan mod rewriter generator

Useful link
https://mod-rewrite-cheatsheet.com/
https://www.addedbytes.com/blog/url-rewriting-for-beginners
Read more

SSL (https) Gratis Dari EasyEngine (Let’s Encrypt)

SSL (https) Gratis Dari EasyEngine (Let’s Encrypt), untuk mendapatkan https gratis dari easy engine sangatlah mudah. Walaupun gratis hanya selama 3 bulan (90 hari) , tapi kita bisa melakukan renew saat sudah mendekati masa expire.

Apa itu Easyengine?

Easyengine adalah webpanel berbasis Nginx tanpa Graphics User Interface (GUI) dan Lebih banyak menggunakan command Line, EasyEngine merupakan salah satu script autoinstaller populer untuk stack LEMP (Linux, Nginx, MySQL, PHP).

Kebutuhan EasyEngine

Agar teman teman mudah memahami dan bisa bisa mengikuti tutorial ini maka silahkan simak dulu apa saja yang diperlukan.
  1. VPS (untuk vps bagus di digital ocean, saya sendiri menggunakan Vultr), VPS dengan RAM Minimal 512MB 
  2. Os distro Linux Ubuntu (12.04/14.04) atau Debian 7/8. 
  3. Sudah mengarahkan A record untuk nama domain ke servernya lebih dahulu

Memasang Https di EasyEngine

Sebelum memasang https di easyengine pastikan bahwa situs web anda tidak menggunakan cloudflare, jika menggunakan cloudflare maka https di easyengine tidak akan berkerja. Karena Let’s Encrypt melakukan validasi lewat DNSnya.

Jika ingin menggunakan cloudflare, bisa melihat artikel berikut ini https cloudflare

Saat menambahkan web baru maka kita harus menambahkan parameter lets encrypt seperti ini.

ee site create nama_domain.com --letsencrypt


Nanti akan muncul seperti ini:

Successfully created site http://nama_domain.com
Letsencrypt is currently in beta phase.
Do you wish to enable SSl now for nama_domain.com?
Type "y" to continue [n]:y
Downloading LetsEncrypt         
........
.
 [Done]

Jika gagal maka akan keluar tulisan seperti ini, ini dikarenakan situs anda menggunakan cloudflare.

Please Wait while we fetch SSL Certificate for your site.
It may take time depending upon network.
Unable to setup, Let's Encrypt
Please make sure that your site is pointed to
same server on which you are running Let's Encrypt Client
 to allow it to verify the site automatically.

Bagaimana kalau sudah ada website di EasyEngine? Jadi untuk situs yang lama dan belum menggunakan HTTPS dari Let’s Encrypt maka solusinya cukup mudah :

ee site update nama_domain.co --letsencrypt


Sedangkan untuk menonaktifkan Let’s Encrypt di EasyEngine:

ee site update nama_domain.co --letsencrypt=off


Auto Renew

Untuk masa gratis hanya 90 hari, tapi kita bisa melakukan renew, biar tidak manual maka kita bisa menggunakan cron (otomatis) , silahkan ketik baris perintah berikut ini:

~# crontab -l

Untuk seluruh web yang menggunakan https akan diset otomatis dengan kode berikut ini:

0 12 * * * ee site update --le=renew --all 2> /dev/null # Renew letsencrypt SSL cert. Set by EasyEngine


Jika tidak menyukai cron, dan ingin melakukan secara manual silahkan coba cara ini saat sudah mendekati expired.

ee site update example.com --letsencrypt=renew

Perpanjangan ssl ini terkadang tidak berhasil, maka silahkan anda periksa email yang anda gunakan saat menginstal easyengine.

Contoh email jika renew tidak berhasil:

Hey Hi,

SSL Certificate renewal for https://domain_anda.com was unsuccessful.
Please check easyengine log for reason. Your SSL Expiry date : Sun Mar 30 16:53:00 IST 2017

For support visit https://easyengine.io/support/ .


Your's faithfully,
EasyEngine

Contoh email jika renew berhasil:

Hey Hi,

Your SSL Certificate has been renewed for https://domain_anda.com .
Your SSL will Expire on : Sun Mar 20 16:53:00 IST 2017


Your's faithfully,
EasyEngine

Jangan lupa memeriksa tanggal expire dengan cara seperti ini:

~# ee site info domain_anda.com
Information about domain_anda.com:

Nginx configuration     wp wpredis (enabled)

. . .

SSL                      enabled
SSL PROVIDER             Lets Encrypt
SSL EXPIRY DATE          Wed Mar 30 11:25:00 IST 2017

. . .

Kesimpulan

  1. Let’s Encrypt tidak akan berkerja jika cloudflare enable
  2. Silahkan poiting www.example.com dan example.com ke ip server sebelum request ssl.
Read more

Cara Install ionCube di VPS Linux / Ubuntu All Version

Cara Install ionCube di VPS Linux / Ubuntu All Version, ionCube adalah modul extension php yang bertujuan untuk meload atau membaca script php yang ter-encrypted dan juga untuk speeds up halaman web. Hal ini sering diperlukan untuk aplikasi berbasis PHP, pada kesempatan ini kita akan menginstal ionCube pada server Ubuntu 16.04.

Untuk mengikuti tutorial ini diperlukan sistem operasi ubuntu dan server web sudah terinstal seperti apache atau nginx.
Cara Install ionCube di VPS Linux / Ubuntu All Version
IonCube

Langkah 1 - Memilih Versi ionCube yang Tepat

Sangat penting bahwa versi ionCube yang Anda pilih sesuai dengan versi PHP Anda, jadi yang pertama, Anda perlu tahu:

Versi PHP server web dalam keadaaan berjalan, 32-bit atau 64-bit.

Jika Anda memiliki server Ubuntu 64-bit, Anda mungkin menjalankan PHP 64-bit, tapi mari kita pastikan. Untuk melakukannya, kita akan menggunakan skrip PHP untuk mengambil informasi tentang konfigurasi PHP server saat ini.

Buat file bernama file info.php di direktori root server web Anda (kemungkinan /var/www/html , kecuali jika Anda telah mengubahnya) menggunakan nano atau editor teks favorit Anda.

Intinya file ini harus bisa anda akses melalui browser. Cara membuat file di ubuntu bisa menggunakan nano atau vi (text editor).

sudo nano /var/www/html/info.php

Kemudian paste skrip berikut :
<?php
phpinfo();

Jika berhasil maka penampakannya seperti ini
Cara Install ionCube di VPS Linux / Ubuntu All Version
info.php
Dari halaman seperti gambar diatas, lihat header di bagian atas yang bertuliskan PHP Version . Dalam kasus ini, sedot code menjalankan  5.6. Lalu, lihatlah System line. Jika diakhiri dengan x86_64 , kita menjalankan PHP 64-bit; Jika diakhiri dengan i686 , itu artinya 32-bit. Silahkan sesuaikan dengan version ioncubenya nanti.

Dengan informasi ini kita bisa melanjutkan dengan download dan installasi.


Langkah 2 - Menyiapkan ionCube

Kunjungi halaman download ionCube dan temukan link download yang sesuai berdasarkan OS Anda. Dalam contoh diatas, kita membutuhkan versi Linux 64-bit ini . Salin link tar.gz di situs dan download file tersebut.

wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

Selanjutnya, kita ekstrak arsipnya!

tar xvfz ioncube_loaders_lin_x86-64.tar.gz

Perintah diatas akan membuat sebuah folder yang bernama ioncube, yang berisi berbagai macam file untuk berbagai versi PHP. Pilih file yang tepat untuk kebutuhan anda. Dalam contoh kasus ini saya akan menggunakan versi 5.6, yaitu ioncube_loader_lin_5.6.so, kita akan mengcopy file ini kedalam folder ekstensi PHP.

Untuk menemukan folder ekstensi php kita harus membuka file info.php yang sudah kita buat sebelumnya, caranya buka http://your_server_ip/info.php atau http://your_domain/info.php cari extension_dir !!


Dalam contoh kasus ini /usr/lib/php/20131226, jadi kita akan copy file kesini, caranya:
sudo cp ioncube/ioncube_loader_lin_5.6.so /usr/lib/php/20131226

Agar PHP bisa meload ekstensi, kita perlu menambahkannya ke konfigurasi PHP. Kita bisa melakukannya di file konfigurasi php.ini PHP utama, tapi lebih baik kita membuat file terpisah. Kita dapat mengatur file terpisah ini untuk dimuat sebelum ekstensi lain menghindari kemungkinan konflik.

Untuk mengetahui di mana kita harus membuat kustom file konfigurasi, lihat http://your_server_ip/info.php atau http://your_domain/info.php lagi dan cari Scan this dir untuk file .ini

Ioncube Sudah Terpasang
Scan this dir untuk file .ini

Jadi, kita akan membuat file bernama 00-ioncube.ini di dalam /etc/php/5.6/fpm/conf.d arti 00 di awal nama file memastikan file ini akan dimuat sebelum file konfigurasi PHP lainnya.
sudo nano /etc/php/5.6/fpm/conf.d/00-ioncube.ini

Tambahkan baris berikut, kemudian simpan dan tutup:
zend_extension = "/usr/lib/php/20131226/ioncube_loader_lin_5.6.so"

Jika menggunakan text editor nano,cara menyimpan CTRL+X Kemudian Ketik Y dan Enter!

Langkah selanjutnya adalah me-restart server web!
Jika Anda menggunakan Apache, jalankan:
sudo systemctl restart apache2.service

Jika Anda menggunakan Nginx, jalankan:
sudo systemctl restart nginx

Jika pake EasyEngine, bisa jalankan :
sudo ee stack restart

Atau restart php-fpm, jalankan:
systemctl restart php5.6-fpm.service

Akhirnya instalasi ioncube sudah berhasil, sekarang kita pastikan dengan memeriksanya.

Buka kembali http://your_server_ip/info.php atau http://your_domain/info.php refresh halaman dan cari kata kunci "ionCube". Anda sekarang harus melihat dengan ionCube PHP Loader (enabled) :

Ioncube Sudah Terpasang
Ioncube Sudah Terpasang

Final-Berhasil

Semoga berhasil, demi keamanan informasi web server, silahkan hapus file info.php.
sudo rm /var/www/html/info.php

Dan jangan lupa menghapus file ioncube yang didownload tadi.
Sudo rm ioncube_loaders_lin_x86-64.tar.gz
Sudo rm -rf ioncube_loaders_lin_x86-64

Kesimpulan

Setelah ekstensi PHP ionCube telah terinstal, Anda dapat melanjutkan aplikasi PHP yang memerlukannya seperti salah satu plugin semi wallpaper yang saya gunakan.
Read more

Cara Membuat Virtual Host Di Xampp Terbaru 100% Pasti Work

Sedot code, membuat virtual host dixampp atau apache tentu sangat mudah, namun walaupun mudah kita sering sekali lupa bagaimana cara membuat virtual host xampp di windows.

Teringat saat pertama kali belajar pemrograman saya mencari istilah virtual host ini sangatlah susah, saya sendiri awalnya tidak mengetahui sebenarnya kita bisa membuat ala domain di localhost, www di localhost, web dilocalhost.

Jika anda pengguna linux/ubuntu tentu akan berbeda dengan panduan berikut ini, panduan membuat virtual host kali ini kita fokuskan untuk windows terutama windows 7.

Contoh Virtual Host

Jika tidak pakai virtual host, maka anda bisa mengakses nama folder secara langsung seperti ini.

http://localhost/sedotcode


Jika menggunakan virtual host, anda bisa membuatnya menjadi lebih bagus, misalnya anda ingin mengubah menjadi sedotcode.com , sedotcode.blog, sedotcode.dev dan lainnya.

http://sedotcode.dev

Saat kedua url diatas kita akses maka akan menghasilkan hal yang sama.

Mengapa harus menggunakan virtual host?

Tujuan Virtual Host


Sebelum meng-onlinekan sebuah website tentu kita tidak ingin mengalami berbagai macam error, seperti error path, path pada saat redirect atau path-path untuk file, seperti css, js dan lainnya. Maka disinilah virtual host sangat bisa kita jadikan uji coba untuk menghindari hal demikian.

Cara Membuat Virtual Host

Sebelum membuat virtual host, berikut yang dibutuhkan:
  • Text editor (Notepad, Sublime, dll)

1. Menambah Domain (Nama Alias/URL)
  • Buka file hosts yang berada didalam folder C:\Windows\System32\drivers\etc 
  • Caranya sangat simple. Tekan tombol Windows+R, 
  • Paste
    notepad C:\Windows\System32\drivers\etc\hosts

Cara Membuat Virtual Host Di Xampp Terbaru 100% Pasti Work
Windows+R 
Cara Membuat Virtual Host Di Xampp Terbaru 100% Pasti Work
Atur Nama Domain

2. Membuat Virtual Host Xampp

  • Buka File httpd-vhosts.conf , lokasinya C:\xampp\apache\conf\extra
  • Setting menjadi seperti ini
<VirtualHost *:80>
  
    DocumentRoot "C:/xampp/htdocs/sedotcode"
    ServerName sedotcode.dev
  
</VirtualHost>

Lihat gambar berikut:
Cara Membuat Virtual Host Di Xampp Terbaru 100% Pasti Work
Silahkan sesuaikan folder document root anda, dan servername harus sama dengan langkah pertama di atas.

Untuk nama domain/alamat webnya tidak harus dev. anda bisa juga menggunakan dot net (.net) dot com (.com).

Jika anda menggunakan nama .com, hindari penamaan dengan nama website yang sebenarnya, misalnya histats.com, maka anda tidak akan bisa membuka alamat histats.com yang sebenarnya online.

Saya lebih menyukai penamaan .dev, tandanya masih develop.

Selesai, demikian panduan dan penjelasan mengenai cara membuat virtual host di xampp.

....

Sampai disni sudah selesai, namun jika anda ingin opsi atau ada kendala lain, maka coba simak panduan berikut ini.

    <VirtualHost *:80>
    ServerAdmin admin@sedotcode.dev
    DocumentRoot "C:\xampp\htdocs\sedotcode.dev"
    ServerName sedotcode.dev
    ServerAlias www.sedotcode.dev
    ErrorLog logs/sedotcode.dev.log
    CustomLog logs/sedotcode.dev.log combined
    <Directory "C:\xampp\htdocs\sedotcode.dev">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>
    </VirtualHost>

Jika terjadi error, mungkin saja pengaturan berikut ini terlupakan.

  1. Buka control panel XAMPP kemudian pilih config pada apache (httpd.conf)
  2. Cari include conf/extra/httpd-vhosts.conf  kemudian hapus tanda # (jika ada)


Read more