Zulfan | Script Ninja

Simple PHP MYSQL Pagination

undefined

Pagination can get complicated depending on the size of records in the database, especially when you want to group number of links, display next/previous links etc. In this tutorial we’ll focus on creating simple PHP MYSQL pagination.

Let’s Create MYSQL Database

An SQL file is included in the complete script file attached. Please create a MYSQL database first, then import .sql file. (This is only for this tutorial purpose but you can use your own database as well if you have already created.)

Database Connection:

Let’s start with database connection file to store our MySql database username and password, and also to connect to MySQL using PHP mysqli_connect(). If you notice we are using PHP mysqli_connect() here, not regular mysql_connect(), i = stands for improved extension, developed to take advantage of new features found in newer MySQL systems. PHP encourages everyone to use mysqli_* instead of regular mysql_* extensions, which will be totally removed in the future PHP versions.

Create connection.php file and put that php code (provided below) in it.

$db_username = 'root'; // Your MYSQL Username.
$db_password = ''; // Your MYSQL Password.
$db_name = 'database_name_here'; // Your Database name.
$db_host = 'localhost';
$conDB = mysqli_connect($db_host, $db_username, $db_password,$db_name)or die('Error: Could not connect to database.');

Pagination function:

Let’s create pagination function and store it in your functions.php file. (We’re using functions.php file to store this function. We prefer this method because that way, we can easily add more helpfull functions to our file later.)

function pagination($query,$per_page=10,$page=1,$url='?'){   
    global $conDB; 
    $query = "SELECT COUNT(*) as `num` FROM {$query}";
    $row = mysqli_fetch_array(mysqli_query($conDB,$query));
    $total = $row['num'];
    $adjacents = "2"; 
      
    $prevlabel = "‹ Prev";
    $nextlabel = "Next ›";
    $lastlabel = "Last ››";
      
    $page = ($page == 0 ? 1 : $page);  
    $start = ($page - 1) * $per_page;                               
      
    $prev = $page - 1;                          
    $next = $page + 1;
      
    $lastpage = ceil($total/$per_page);
      
    $lpm1 = $lastpage - 1; // //last page minus 1
      
    $pagination = "";
    if($lastpage > 1){   
        $pagination .= "<ul class='pagination'>";
        $pagination .= "<li class='page_info'>Page {$page} of {$lastpage}</li>";
              
            if ($page > 1) $pagination.= "<li><a href='{$url}page={$prev}'>{$prevlabel}</a></li>";
              
        if ($lastpage < 7 + ($adjacents * 2)){   
            for ($counter = 1; $counter <= $lastpage; $counter++){
                if ($counter == $page)
                    $pagination.= "<li><a class='current'>{$counter}</a></li>";
                else
                    $pagination.= "<li><a href='{$url}page={$counter}'>{$counter}</a></li>";                    
            }
          
        } elseif($lastpage > 5 + ($adjacents * 2)){
              
            if($page < 1 + ($adjacents * 2)) {
                  
                for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++){
                    if ($counter == $page)
                        $pagination.= "<li><a class='current'>{$counter}</a></li>";
                    else
                        $pagination.= "<li><a href='{$url}page={$counter}'>{$counter}</a></li>";                    
                }
                $pagination.= "<li class='dot'>...</li>";
                $pagination.= "<li><a href='{$url}page={$lpm1}'>{$lpm1}</a></li>";
                $pagination.= "<li><a href='{$url}page={$lastpage}'>{$lastpage}</a></li>";  
                      
            } elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) {
                  
                $pagination.= "<li><a href='{$url}page=1'>1</a></li>";
                $pagination.= "<li><a href='{$url}page=2'>2</a></li>";
                $pagination.= "<li class='dot'>...</li>";
                for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) {
                    if ($counter == $page)
                        $pagination.= "<li><a class='current'>{$counter}</a></li>";
                    else
                        $pagination.= "<li><a href='{$url}page={$counter}'>{$counter}</a></li>";                    
                }
                $pagination.= "<li class='dot'>..</li>";
                $pagination.= "<li><a href='{$url}page={$lpm1}'>{$lpm1}</a></li>";
                $pagination.= "<li><a href='{$url}page={$lastpage}'>{$lastpage}</a></li>";      
                  
            } else {
                  
                $pagination.= "<li><a href='{$url}page=1'>1</a></li>";
                $pagination.= "<li><a href='{$url}page=2'>2</a></li>";
                $pagination.= "<li class='dot'>..</li>";
                for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) {
                    if ($counter == $page)
                        $pagination.= "<li><a class='current'>{$counter}</a></li>";
                    else
                        $pagination.= "<li><a href='{$url}page={$counter}'>{$counter}</a></li>";                    
                }
            }
        }
          
            if ($page < $counter - 1) {
                $pagination.= "<li><a href='{$url}page={$next}'>{$nextlabel}</a></li>";
                $pagination.= "<li><a href='{$url}page=$lastpage'>{$lastlabel}</a></li>";
            }
          
        $pagination.= "</ul>";        
    }
      
    return $pagination;
}

Displaying Database Records with pagination:

include_once('connection.php');
include_once('functions.php');
 
$page = (int)(!isset($_GET["page"]) ? 1 : $_GET["page"]);
if ($page <= 0) $page = 1;
 
$per_page = 10; // Set how many records do you want to display per page.
 
$startpoint = ($page * $per_page) - $per_page;
 
$statement = "`records` ORDER BY `id` ASC"; // Change `records` according to your table name.
  
$results = mysqli_query($conDB,"SELECT * FROM {$statement} LIMIT {$startpoint} , {$per_page}");
 
if (mysqli_num_rows($results) != 0) {
     
    // displaying records.
    while ($row = mysqli_fetch_array($results)) {
        echo $row&#91;'name'&#93; . '<br>';
    }
  
} else {
     echo "No records are found.";
}
 
 // displaying paginaiton.
echo pagination($statement,$per_page,$page,$url='?'); 

Simple CSS:

ul.pagination {
    text-align:center;
    color:#829994;
}
ul.pagination li {
    display:inline;
    padding:0 3px;
}
ul.pagination a {
    color:#0d7963;
    display:inline-block;
    padding:5px 10px;
    border:1px solid #cde0dc;
    text-decoration:none;
}
ul.pagination a:hover, 
ul.pagination a.current {
    background:#0d7963;
    color:#fff; 
}

Complete Pagination script

We just created a Simple PHP MYSQL Pagination function. You can download the complete script from right sidebar.

Click on Download 

Cara Memblokir Komentar Spam di PHP: The Definitive Solution

Komentar spam (juga dikenal sebagai 'link spam', 'blog spam', dan 'wikispam') terjadi ketika orang atau bots spam mengirim komentar pada suatu website Anda, atau buku tamu yang ber-tujuan untuk meningkatkan lalu lintas (traffic) dan mempromosikan peringkat mesin pencari yang lebih baik untuk situs mereka. Seperti spam email, itu bisa sangat mengganggu dan sulit untuk menangani.

Namum ada solusi untuk mencegah komentar spam di PHP untuk melindungi situs Anda, cara ini adalah yang paling sederhana dan efektif yang telah saya temukan sejauh ini. Ini terdiri dari listing Javascript untuk membuat cookie di dalam PC pengunjung. Jika sesi tidak akan mulai, ada kemungkinan besar pengunjung adalah bukan manusia , karena sebagian besar bots tidak menjalankan Javascript dan tidak menyimpan cookies.

Langkah Block Komentar SPAM

1. Masukkan kode ini di header dari situs Anda:

<script text="javascript">
document.cookie =
"human=" + encodeURIComponent("yes") +
"; max-age=" + 60*60*24*30 +
"; path=/; domain=yourwebsite.com" ;
</script>

2. Bila pengunjung mengirimkan komentar, sisiplkan kode ini dalam proses itu:

if ($_COOKIE['human'] == 'yes') {
   // there is a cookie, and the comment is accepted
} else {
   // there is no cookie, and the comment is rejected
}

File Browser Keren di Website

undefined

Ini adalah file browser yang keren untuk website Anda, seringkali kita menjumpai website yang berbagi dokumen, gambar dan file lainnya untuk pengunjung. namun kali ini saya berbagi model design yang berbeda. dimana nantinya pengunjung dapat menelusuri setiap folder dan file yang Anda upload dengan ke website Anda.

Aplikasi ini dibangun dengan PHP dan jQuery dan menggunakan CSS3 secara luas, ada gambar atau icon yang digunakan dalam desain, dan animasi yang halus dan bekerja dengan baik bahkan pada smartphone.

Cara menggunakannya di situs Anda

Scroll kebawah dan download script-nya terlebih dahulu. kemudian meng-upload ke server local Anda. Folder file adalah folder yang menempatkan segala sesuatu yang Anda ingin berbagi (seperti dokumen, gambar, atau file musik). perlu di igat, bahwa script ini tidak menggunakan database dan tidak ada konfigurasi yang diperlukan. yang Anda lalukan hanya upload file atau membuat sub folder di folder file.

Ide

Jika Anda ingin mempelajari lebih lanjut tentang cara kerjanya, di sini adalah gambaran tingkat tinggi dari fungsi tersebut:

  • Sebuah script PHP - scan.php - memindai (scanning) folder file dan mengembalikan semua file dan folder sebagai objek JSON.
  • kode JavaScript kami, dengan bantuan jQuery, mengambil JSON ini, dan mengubahnya menjadi grid file dan folder. Mengklik folder ulang merender tampilan dengan isinya.

Download Script

Membuat Sistem Template Sendiri Dengan PHP

undefined

Kali ini kita akan melihat sistem template dan bagaimana mereka dapat mengurangi jumlah pekerjaan yang harus Anda lakukan untuk membuat sebuah website. Saya memberitahu Anda bagaimana untuk membangun template yang sederhana dan kuat.
Setelah Anda memahami bab ini, DIharapkan kedepannya Anda bisa memperpanjang dan meng-gotak atik sistem template buatan Anda untuk menambah halaman yang lebih khusus atau bahkan lebih abstrak, sehingga Anda dapat menambahkan CSS dan elemen JavaScript dengan cepat, daripada melalui file eksternal individu.

MEMAHAMI SISTEM TEMPLATE

Ketika Anda membuat sebuah situs web, Anda sering menggunakan tata letak (LAYOUT) yang sama untuk seluruh situs. Anda memiliki bagian atas (HEADER), mungkin dengan menu (NAVIGASI); area konten utama dan bagian bawah (FOOTER), dan mungkin ditambahkan dengan link atau pemberitahuan hak cipta.

Masing-masing dan setiap halaman membutuhkan CSS yang sama dan HTML untuk membuat tampilan yang terintegrasi.
Ketika website Anda memiliki hanya beberapa halaman, mungkin itu baik untuk menjaga HTML dan CSS secara terpisah. Jika Anda perlu membuat perubahan, untuk menambahkan menu item atau mengubah tahun hak cipta, Anda hanya dapat mengedit setiap file di situs anda.
Yang menjadi masalah disini, bayangkan jika website Anda memiliki puluhan atau bahkan ratusan halaman. Ketika menambah item menu (atau apa pun hal lainnya) itu akan menjadi tugas yang menumpuk.

Jadi dapat disimpulkan disini, bahwa tanpa system template, membuat perubahan secara global itu sangat sulit. Dalam arti kata, kan gak mungkin kita harus ngedit setiap file jika kita butuh perubahan di situs kita….
Kira-kira udah dapat kan gambar sederhana-nya ?
Jadi, defenisi template itu adalah sebuah file yang berisi standar atau boilerplate informasi yang digunakan untuk membuat file lainya. Template Adalah cara untuk mengurangi penulisan kode secara berulang ulang.

Langkah 1 :
Buatkan dulu folder situs di htdocs Anda. Disini saya buat nama template_01 (atau nama lainnya sesuai keinginan Anda), dan kemudian buat folder bernama template yang didalamnya berisi 3 file php, yaitu : header.php, footer.php, dan sidebar.php

// FILE header.php
<?php
require_once  'my_function.php';

function get_header($judul = '', $meta = '', $css = array()){
echo '<!DOCTYPE html>
        <html>
        <head>
        <title>'. $judul . ' - '. site .'</title>
        <meta name="description" content="'. $meta .'">
        <link rel="stylesheet" type="text/css" href="layout.css">';
foreach($css as $v){
        echo '<link rel="stylesheet" type="text/css" href="'.  $v .'">';
}

echo '</head>
      <body>
      <div id="wrap">
      <div id="header"><h1>'.site.'</h1></div>';

//navigasi halaman
echo '
<div id="nav"><ul>
    <li><a href="'. project_dir .'">Home</a></li>
    <li><a href="about.php">About</a></li>
        <li><a href="contact_me.php">Contact me</a></li>
</ul>
</div>';
}

Jadi di header.php hanya berupa fungsi yang memiliki tiga parameter (judul, meta, css).
Tentunya setiap halaman web pasti membuat tag title dan tag meta nya dinamis kan, artinya nilainya bisa di gonta-ganti gitu, maka dari itu saya letakkan di fungsi. Lalu parameter css itu apa ?
Oke. Sekarang bayangkan anda punya web yang memiliki halaman tentang kami dan contact, dan di halaman contact, anda membutuhkan file css tambahan, yang mana di halaman tentang_kami tidak membutuhkan file css tersebut, disini lah parameter css yang kita buat di script atas berfungsi sebagai penampung file css tambahan supaya effective.

//FILE footer.php
function get_footer($javascript = array()){
echo '
    <div id="footer">
        <h3>hak cipta 2016 - '.site.'</h3>
    </div>
 
    </div><!-- ending div wrap di header -->';

echo '<script src="my_script_1.js"></script>';
// js diatas itu js default. artinya file javascript yg selalu ada di //setiap halaman kita
// biasanya file jquery.js

// file javascript tambahan,
// terkadang ada
foreach ($javascript as $v){
    echo '<script src="'.$v.'"></script>';
}

//tutup body dan html
echo '</body>
    </html>';
}

Script di atas adalah script footer.php, dia adalah sebuah fungsi yang menerima nama file yang diikuti dengan lokasi-nya.
Pemanggilan fungsinya seperti ini :

<?php
get_footer();

Jika ada file tambahan javascript, misalnya dihalaman contact situs kita ingin memuat file javascript dari si google map Untuk ditampilkan di halaman tersebut, maka caranya dengan melewatkan nama file & lokasinya sebagai variable array :

Begitu juga dengan header.php, Pemanggilan fungsinya seperti ini :

<?php
get_header();

Sudah paham kn !! untuk lebih jelas lagi, silahkan download & open listing di editor Anda. jika Anda memiliki kesenjangan jangan segan-segan untuk berkomentar !

Download script

Upload gambar dengan PHP

undefined

 

 

 

 

 

 

 

 

 

 

 

Proses meng-upload file merupakan salah satu bagian terpenting yang perlu tersedia di website. jadi pada kesempatan kali ini saya akan berbagi cara bagaimana mudahnya untuk menangani upload file dalam PHP.

HTML FORM

<form action="accept-file.php" method="post" enctype="multipart/form-data">
	Your Photo: <input type="file" name="photo" size="25" />
	<input type="submit" name="submit" value="Submit" />

Anda harus menggunakan nilai multipart/form-data pada enctype properti. Anda juga akan jelas membutuhkan setidaknya satu elemen input dari jenis file. Tag action form harus memberikan URL yang merujuk pada file yang berisi potongan PHP seperti di bawah ini.

PHP FILE (accept-file.php)

if($_FILES['photo']['name'])
{
	//if tidak ada error...
	if(!$_FILES['photo']['error'])
	{
		//sekarang modify dari nama file yang di upload
		$new_file_name = strtolower($_FILES['photo']['tmp_name']); //rename file
		if($_FILES['photo']['size'] > (1024000)) //can't be larger than 1 MB
		{
			$valid_file = false;
			$message = 'Oops!  file yg di upload terlalu besar.';
		}
		
		//jika file valid, maka jalankan peryataan di bawah ini
		if($valid_file)
		{
			//proses upload file ke folder
			move_uploaded_file($_FILES['photo']['tmp_name'], 'uploads/'.$new_file_name);
			$message = 'sukses!  Your file was accepted.';
		}else{ $message = 'upload file gagal, mohon periksa kembali.';  }
	}
	//if there is an error...
	else
	{
		//set that to be the returned message
		$message = 'Ooops!  Your upload triggered the following error:  '.$_FILES['photo']['error'];
	}
}
echo $message;

Oya, jangan lupa juga lupa buat folder yang namanya uploads. yang menampung file gambar yang di upload.


Catatan Penting
Pastikan untuk melakukan banyak validasi file ketika pengguna untuk meng-upload file.
jika ingin meng-upload lebih dari 5 Mb, pastikan Anda menyesuaikan ukuran file upload di PHP, dengan memodifikasi setinggan file php.ini dengan nilai "upload_max_filesize".

Home