Tampilkan postingan dengan label PHP. Tampilkan semua postingan
Tampilkan postingan dengan label PHP. Tampilkan semua postingan

Login Logout Register Menggunakan Session dengan PHP+MySQL


Disebagian forum diskusi dan grup facebook saya membaca banyak pertanyaan mengenai Login Logout Register menggunakan Session dengan password yang di enkripsi. Karena itu saya tertarik untuk menulis artikel tentang topik tersebut.


Berikut saya berikan contoh Code / Script untuk Login Logout dan Register.

Buat database baru, kemudian tambahkan table user.

user
CREATE TABLE IF NOT EXISTS `user` (
`id_user` int(11) NOT NULL,
  `nama` varchar(20) NOT NULL,
  `username` varchar(20) NOT NULL,
  `password` text NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;

Buat file konfigurasi database dan session. Sesuaikan koneksi database dengan milik anda.

config.php
<?php
// memulai pencatatan session
session_start();

// koneksi database
mysql_connect('localhost','root','');
mysql_select_db('myreport');

// yang akan dijadikan session adalah id_user
if(isset($_SESSION['id_user'])) {
$id_user = $_SESSION['id_user'];
} else {
$id_user = 0;
}

?>
Perhatikan yang berwana merah, pada kode diatas saya akan menjadikan id_user sebagai session. Kenapa id_user yang dijadikan session? Karena id_user ini adalah primary key dari data user. Jika anda sudah menjadikan id_user sebagai session anda tidak perlu lagi menambahkan session lain, misal untuk session level (jika login multi-user).


Kemudian buat file register.php

register.php
<?php
// ambil konfigurasi database dan session
include('config.php');

// cek apakah user sudah login atau belum
// jika sudah login nilainya bukan 0 tetapi id_user
// direct ke halaman index.php
if($id_user<>0) { header('location:index.php'); }

// jika tombol register diklik
if(isset($_POST['btnregister'])) {
$txtnama = $_POST['txtnama'];
$txtuser = $_POST['txtuser'];
// password di enkripsi dengan password_hash()
$txtpass = password_hash($_POST['txtpass'],PASSWORD_BCRYPT);
$user = mysql_query("SELECT * FROM user WHERE username='$txtuser'");
// apakah username yang dimasukan sudah ada dalam database ?
$cekuser = mysql_num_rows($user);
if($cekuser>0) {
// jika sudah ada username yang sama maka register ditolak
echo "<script>alert('Username ini sudah terdaftar!');</script>";
} else {
// jika belum ada username yang sama maka register diterima
// kemudian masukan kedalam database
$insert = mysql_query("INSERT INTO user (nama,username,password) VALUES ('$txtnama','$txtuser','$txtpass')");
if($insert) {
echo "<script>alert('Daftar berhasil! Silahkan login.');</script>";
} else {
echo "<script>alert('Daftar gagal! Silahkan ulangi.');</script>";
}
}
}
echo "
<!DOCTYPE html>
<html>
<head>
<title>Register</title>
</head>
<body>
<h3>REGISTER</h3>
<form action='' method='post'>
<label>Nama</label><br/>
<input type='text' name='txtnama' required='true'/><br/>
<label>Username</label><br/>
<input type='text' name='txtuser' required='true'/><br/>
<label>Password</label><br/>
<input type='password' name='txtpass' required='true'/><br/>
<br/>
<button type='submit' name='btnregister'>Register</button><br/>
</form>
<br/>
<a href='login.php'>Login</a>
</body>
</html>
";
?>
Perhatikan yang berwarna merah, pada kode diatas saya menggunakan password_hash() untuk meng-enkripsi passwordnya. Saya sudah tidak menggunakan MD5 lagi untuk meng-enkripsi password karena beberapa alasan. 


Baca: MD5 itu Berbahaya, Titik!

Teknik pada register ini adalah meng-insert data kedalam database seperti anda menambahkan data lainnya. Hanya saja sebelum di insert anda harus meng-enkripsi password terlebih dahulu.


Setelah register, user diperbolehkan untuk login. Silahkan buat file login.php

login.php
<?php
// ambil konfigurasi database dan session
include('config.php');

// cek apakah user sudah login atau belum
// jika sudah login nilainya bukan 0 tetapi id_user
// direct ke halaman index.php
if($id_user<>0) { header('location:index.php'); }

// jika tombol login diklik
if(isset($_POST['btnlogin'])) {
$txtuser = $_POST['txtuser'];
$txtpass = $_POST['txtpass'];
$user = mysql_query("SELECT * FROM user WHERE username='$txtuser'");
// apakah username yang dimasukan sudah ada dalam database ?
$cekuser = mysql_num_rows($user);
if($cekuser==0) {
// jika username belum ada dalam database
echo "<script>alert('Anda belum terdaftar!');</script>";
} else {
// jika username sudah ada dalam database
$getuser = mysql_fetch_array($user);
// menyocokan password yang di input dengan password di database
if(!password_verify($txtpass,$getuser['password'])) {
// jika password tidak cocok
echo "<script>alert('Password salah!');</script>";
} else {
// jika password cocok
// id_user dijadikan session
$_SESSION['id_user'] = $getuser['id_user'];
// direct ke halaman index.php
header('location:index.php');
}
}
}
echo "
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<h3>LOGIN</h3>
<form action='' method='post'>
<label>Username</label><br/>
<input type='text' name='txtuser' required='true'/><br/>
<label>Password</label><br/>
<input type='password' name='txtpass' required='true'/><br/>
<br/>
<button type='submit' name='btnlogin'>Login</button><br/>
</form>
<br/>
<a href='register.php'>Register</a>
</body>
</html>
";
?>
Perhatikan yang berwarna merah, fungsi password_verify() adalah untuk mencocokan password_hash() didalam database yang ter-enkripsi dengan password yang di input oleh user.
Yang berwarna biru itu menjadikan id_user sebagai session jika telah melewati beberapa kriteria.


Buat halaman index.php

index.php
<?php
// ambil konfigurasi database dan session
include('config.php');

// cek apakah user sudah login atau belum
// jika belum login nilainya adalah 0
// direct ke halaman login.php
if($id_user==0) { header('location:login.php'); }

// ambil data user sesuai id_user dari session
$user = mysql_fetch_array(mysql_query("SELECT * FROM user WHERE id_user='$id_user'"));

echo "
<!DOCTYPE html>
<html>
<head>
<title>Home</title>
</head>
<body>
<h3>HOME</h3>
Anda login sebagai <b>$user[nama]</b> dengan username <b>$user[username]</b>.<br/>
<br/>
<a href='logout.php'>Logout</a>
</body>
</html>
";
?>
Pada kode diatas menampilkan nama dan username dari user yang telah login.


Buat file logout.php untuk menghapus session.

logout.php
<?php
// ambil konfigurasi database dan session
include('config.php');

// hapus session saat ini
unset($_SESSION['id_user']);

// direct ke halaman login.php
header('location:login.php');
?>
Yang berwarna merah adalah fungsi untuk menghapus session id_user tadi.


Untuk demo dan download script menyusul jika ada permintaan.
Silahkan berkomentar.
Terimakasih.

Sistem Informasi Akademik (SIAKAD) Full Fitur, Full Source Code, Gratis + Video Tutorial




Fitur:

Master Data
  1. Gedung
  2. Ruangan
  3. Prodi
  4. Konsentrasi
  5. Dosen
  6. Kelompok matakuliah
  7. Grade nilai
  8. Tahun angkatan
Mahasiswa

Akademik
  1. Tahun akademik
  2. Matakuliah
  3. Jadwal kuliah
  4. Registrasi
  5. Kartu rencana studi
  6. Kartu hasil studi
Keuangan
  1. Form pembayaran
  2. Jenis pembayaran
  3. Biaya kuliah
  4. Laporan keuangan
Pengguna sistem


Catatan:
  • Menggunakan Framework Codeigniter 2.2
  • Database MySQL
  • Template Bootstrap
  • Multi-Level User

Download Tutorial Praktis OOP dalam PHP



OOP (Object Oriented Programming) adalah suatu metode pemrograman yang berorientasi kepada objek. Tujuan dari OOP diciptakan adalah untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada di kehidupan sehari-hari. Jadi setiap bagian dari suatu permasalahan adalah objek, nah objek itu sendiri merupakan gabungan dari beberapa objek yang lebih kecil lagi.

Saya ambil contoh Pesawat, Pesawat adalah sebuah objek. Pesawat itu sendiri terbentuk dari beberapa objek yang lebih kecil lagi seperti mesin, roda, baling-baling, kursi, dll. Pesawat sebagai objek yang terbentuk dari objek-objek yang lebih kecil saling berhubungan, berinteraksi, berkomunikasi dan saling mengirim pesan kepada objek-objek yang lainnya. Begitu juga dengan program, sebuah objek yang besar dibentuk dari beberapa objek yang lebih kecil, objek-objek itu saling berkomunikasi, dan saling berkirim pesan kepada objek yang lain. Selengkapnya....

Dalam tutorial ini dijelaskan OOP khusunya dalam PHP dengan gaya yang mudah dipahami. Untuk dapat memahami tutorial ini saya sarankan anda memperdalam dahulu tentang PHP dasar, meliputi function, variable, looping, dan conditional statement di sini.

Setelah anda paham tentang PHP dasar diatas, silahkan Download Tutorial Praktis OOP dalam PHP pada link dibawah ini.

DOWNLOAD

Jangan lupa komentar setelah berhasil mendownload.
Terimakasih.

Sumber

Membuat BOM SMS dengan Gammu dan PHP


siunus - Selamat malam blogger! Saya ingin mengisi kekosongan waktu saya dengan berbagi script php yang saya buat sendiri. Script ini berfungsi untuk melakukan bom sms atau sms bomber menggunakan Gammu.

Sedikit saya jelaskan cara kerja script ini. Teknik mengirim sms dengan Gammu itu sebenarnya tinggal memasukan data/record kedalam table outbox pada database gammu tersebut. Nomor tujuan masukan ke field DestinationNumber dan isi pesan masukan ke field TextDecoded, kemudian service Gammu akan memproses pesan anda. Dan jika pesan berhasil dikirim maka pesan tersebut akan pindah ke table sentitems.

Nah, dalam script ini saya menggunakan teknik looping (mengulang) dengan fungsi for(). Jadi, pesan yang anda kirim akan dimasukan ke table outbox secara berulang-ulang sesuai dengan jumlah yang anda inginkan.

Screenshot:

Sebelumnya Server SMS Gateway Gammu anda harus sudah siap digunakan. Bagaimana caranya? Baca artikel ini: [link]

Script:
bomsms.php
<html>
    <head>
        <title>BOM SMS with GAMMU by siunus</title>
        <style>
            body, table {
                font-family: Helvetica,Arial,'lucida grande',tahoma,verdana,arial,sans-serif;
                font-size: small;
            }
            table {
                border: 1px solid #090;
            }
            table th {
                background: #090;
                color: white;
            }
            td#td1 {
                border-top: 1px solid #090;
            }
            input, textarea {
                border: 1px solid #069;
                background: #39F;
            }
        </style>
    </head>
    <body>
    <form action='' method='post'>
        <table border='0' align='center'>
            <tr>
                <th colspan='3' align='center' valign='top'>BOM SMS</td>
            </tr>
            <tr>
                <td align='right' valign='top'>No Tujuan</td>
                <td align='right' valign='top'>:</td>
                <td align='left' valign='top'><input type='text' name='nomor' value='+62' size='26'/></td>
            </tr>
            <tr>
                <td align='right' valign='top'>Pesan</td>
                <td align='right' valign='top'>:</td>
                <td align='left' valign='top'><textarea name='pesan'></textarea></td>
            </tr>
            <tr>
                <td align='right' valign='top'>Jumlah Pesan</td>
                <td align='right' valign='top'>:</td>
                <td align='left' valign='top'>
                    <input type='text' name='loop' value='100' size='4'/>
                    <input type='submit' name='kirim' value='KIRIM'/>
                    <input type='reset' name='reset' value='RESET'/>
                </td>
            </tr>
    </form>
<?php

// koneksi database
$host = "localhost";
$user = "root";
$pass = "";
$db = "sms";
$konek = mysql_connect($host,$user,$pass);
if(!$konek) {
    echo "<tr><td id='td1' colspan='3' align='center'>Koneksi mysql gagal.</td></tr>";
} else {
    $dbase = mysql_select_db($db);
    if(!$dbase) {
        echo "<tr><td id='td1' colspan='3' align='center'>Database tidak ditemukan.</td></tr>";
    } else {
        if(isset($_POST['kirim'])) {
            $nomor = $_POST['nomor'];
            $pesan = $_POST['pesan'];
            $loop = $_POST['loop'];

            if(empty($nomor) OR empty($pesan)) {
                echo "<tr><td id='td1' colspan='3' align='center'>Isi semua kolom.</td></tr>";
            } else {
                if($loop>1000) {
                    echo "<tr><td id='td1' colspan='3' align='center'>Maksimal 1000 pesan /1x kirim.</td></tr>";
                } else {
                    for ($i=1; $i<=$loop; $i++) {
                        echo "<tr><td id='td1' colspan='3' align='center'>";
                        echo "$nomor - ($i/$loop) $pesan ... ";
                        $kirim = mysql_query("INSERT INTO outbox(DestinationNumber, TextDecoded, CreatorID) VALUES('$nomor', '$pesan', 'siunus $i/$loop')");
                        if($kirim) {
                            echo "OK <br/>";
                        } else {
                            echo "NO <br/>";
                        }
                        echo "</td></tr>";
                        echo "<tr><td id='td1' colspan='3' align='center'>";
                        if($i==$loop) {
                            echo "Semua pesan telah dikirim.";
                        }
                        echo "</td></tr>";
                    }
                }
            }
        }
    }
}
?>
        </table>
    </body>
</html>
Anda hanya tinggal mengatur koneksi database-nya saja.
Silahkan di kembangkan.
Jangan lupa komentarnya ya!

Semoga berhasil dan bermanfaat.
Terimakasih. :)

Modul: Membuat Program Aplikasi Input, Edit dan Hapus Data (CRUD) Sederhana dengan PHP dan MySQL

Judul :
Membuat Program Aplikasi Input, Edit dan Hapus Data (CRUD) Sederhana dengan PHP dan MySQL

Tanggal Terbit :
10 Februari 2014

Penulis :
Yunus Abdul Hanif (siunus)

Link Download :
http://adf.ly/deGxV

Catatan :
Saya sangat berharap modul ini bisa membantu dan bermanfaat bagi para pembacanya. Dan saya sangat menunggu kritik dan saran dari para pembaca. Karena dalam modul ini masih banyak sekali kesalahan dan kekurangan. :)

DOWNLOAD

Download Tutorial PHP dan MySQL Lengkap (340 Halaman) [pdf]

siunus - Selamat sore gan! Nih saya kasih lagi tutorial, kali ini tutotial tentang PHP dan MySQL. Ini cocok banget buat anda yang sedang belajar membuat Web Dinamis atau Program Aplikasi Sederhana dengan PHP MySQL. Atau buat Guru-guru yang sedang mencari referensi untuk bahan ajar kepada para muridnya.

Sebelum di download, saya mau kasih lihat dulu penampakannya (screenshot maksudnya)


Bisa anda lihat di screenshot diatas, tutorial ini sangat lengkap, sampai 340 halaman tetapi hanya berukuran 1,15 MB saja. Mulai dari penjelasan, installasi, function, dll. Jadi, Silahkan langsung di download aja ya!


Semoga berhasil dan bermanfaat.
Terimakasih.
Membuat Kata-kata Mutiara Acak (random quotes) Dengan PHP

Membuat Kata-kata Mutiara Acak (random quotes) Dengan PHP


siunus - Kali ini saya akan berbagi tentang cara membuat/menampilkan kata-kata mutiara secara acak (random). Dimana kata-kata ini akan mucul secara bergantian setiap kali halaman diperbarui.
Ada banyak cara untuk membuat hal seperti itu. Namun, disini saya menggunakan 2 cara yaitu dengan menggunakan fungs rand(), array() dan variable pada PHP.

Cara pertama.
Buat satu file .php dan isi dengan kode berikut.
<?php

    $x = rand(1,7);
   
    $kata = array(
            'Kata-kata pertama.',
            'Kata-kata kedua.',
            'Kata-kata ketiga.',
            'Kata-kata keempat.',
            'Kata-kata kelima.',
            'Kata-kata keenam.',
            'Kata-kata ketujuh.'
        );
       
    echo $kata[$x];
   
?>
*Angka berwarna merah adalah jumlah kata-kata yang akan ditampilkan.
*Silahkan anda ubah kata-kata yang berada didalam fungsi array() diatas.


Cara kedua.
Buat satu lagi file .php kemudian isi dengan kode dibawah ini.
<?php

    $x = rand(1,7);
   
    $kata[1] = "Kata-kata pertama.";
    $kata[2] = "Kata-kata kedua.";
    $kata[3] = "Kata-kata ketiga.";
    $kata[4] = "Kata-kata keempat.";
    $kata[5] = "Kata-kata kelima.";
    $kata[6] = "Kata-kata keenam.";
    $kata[7] = "Kata-kata ketujuh.";
       
    echo $kata[$x];
   
?>
*Angka berwarna merah adalah jumlah kata-kata yang akan ditampilkan.
*Silahkan anda ubah kata-kata yang berada pada tiap-tiap variable diatas.

DOWNLOAD

Membuat Guestbook Sederhana dengan PHP Tanpa Database MySQL

Guestbook biasanya disebut dengan buku tamu On-line. Guestbook adalah fasilitas interaktif dalam sebuah web yang memungkinkan pengunjungnya menulis pesan, mengirim pesan, dan membaca pesan dari pengunung lain dengan kata lain yaitu mendata pengunjung situs yang mengisi buku tamu.
Dengan Guestbook ini pengunjung bisa menuliskan namanya, alamat e-mailnya dan juga alamat situs homepagenya (jika punya). Tidak hanya itu saja pengunjung juga dapat memberikan komentar terhadap homepage situs yang dikunjungi, contohnya kritik dan saran atau bagian mana yang masih kurang dan bagian mana yang menarik. (Temukan Pengertian)

Disini, saya akan menjelaskan bagaimana cara membuat guestbook tersebut secara sederhana dan mudah. Mengapa mudah? Karena ini tidak memerlukan database seperti MySQL. Tetapi disini saya gunakan file .html sebagai database-nya. Mengapa sederhana? Karena codding-nya tidak terlalu banyak dan tampilannya sangat sederhana.

Pertama, anda harus punya hosting terlebih dahulu. Jika belum punya silahkan daftar dan manfaatkan hosting gratis ini: [klik] . Jika sudah punya, silahkan login dan masuk ke file manager-nya (FTP).

Kemudian buat beberapa file dibawah ini:

* Sebaiknya jangan langsung meng-copy dan mem-paste-nya. Pelajarilah terlebih dahulu setiap baris kode yang anda lihat.

index.php
<html>
    <head>
        <title>Simple Guestbook by siunus</title>
        <link rel='stylesheet' href='style.css'/>
        <style>body { max-width: 500px; margin: auto; }</style>
    </head>
    <body>
   
        <div class='title' align='center'>
            <big>Simple Guestbook</big><br/>
            by: <a href='http://www.siunus.co.vu'>siunus</a>
        </div>

        <div class='gmenu'>
            <form action='post.php' method='post'>
                Nama : <input type='text' name='nama'/> <br/>
                Web : <input type='text' name='web' value='http://'/> <br/>
                Pesan : <input type='text' name='pesan'/> <br/>
                <input type='submit' value='kirim'/>
            </form>
        </div>
       
        <div class='maintxt'>
            <?php

                if(file_exists("db.html") && filesize("db.html") > 0){
                    $handle = fopen("db.html", "r");
                    $contents = fread($handle, filesize("db.html"));
                    fclose($handle);
                   
                    echo "$contents";
                }
                else {
                    echo "<div class='alarm'>no messages!<br/>be the first!</div>";
                }

            ?>
        </div>
       
        <div class='footer' align='center'>
            Copyright &copy; <a href='http://www.siunus.co.vu'>siunus</a> 2013
        </div>
   
    </body>
</html>

post.php
<?php

    if(!empty($_POST['nama']) AND !empty($_POST['pesan'])) {
        $nama = $_POST['nama'];
        if($_POST['web'] != 'http://' OR !empty($_POST['web'])) { $web = $_POST['web']; } else { $web = "#"; }
        $pesan = $_POST['pesan'];
        $tgl = date('D, d M Y - H:i:s');
        $text = stripslashes(htmlspecialchars($pesan));
       
        $l = rand(1,2);

        $fp = fopen("db.html", 'a');
        fwrite($fp, "<div class='list$l'><div class='hr'><div align='right'>$tgl</div></div><img src='say.png'/> <a href='$web'><b>$nama</b></a> : $text </div>");
        fclose($fp);
    }
   
    header('location:index.php');
   
?>

db.html
Biarkan file ini kosong. Ini untuk menyimpan data nantinya.

Sampai disini guestbook-nya sudah jadi dan berfungsi dengan baik. Silahkan anda buka dan coba guestbook-nya. Tapi supaya lebih menarik berikan sedikit sentuhan dengan css.

style.css
body {
    color: #787878;
    font-size: 11px;
    font-family: Tahoma;
    margin: auto;
    border: 1px solid #e1e1e1;
    max-width: 500px;
    }
a, a:link, a:visited {
    color: #00bae8;
    text-decoration: none;
    }
input, textarea, select , button{
    color: #6d6d6d;
    background-color: #fbfbfb;
    border: 1px solid #e3e3e3;
    margin: 1px;
    }
hr, div.hr {
    margin-top: 2px;
    margin-bottom: 2px;
    border-bottom: 1px dotted #e3e3e3;
    border-right-style: none;
    border-right-width: 0;
    border-top-style: none;
    border-top-width: 0;
    border-left-style: none;
    border-left-width: 0;
    }
.title {
    text-align: center;
    text-transform: uppercase;
    font-weight: bold;
    color: #ffffff;
    text-shadow: #000000 1px 1px 1px;
    background-color: #84e2f8;
    margin-top: 1px;
    margin-bottom: 1px;
    padding: 2px;
    border: 1px solid #68e1ff;
    }
.gmenu {
    color: #75bf00;
    background-color: #fafff0;
    margin-top: 1px;
    margin-bottom: 1px;
    padding: 2px;
    border: 1px solid #d4eba1;
    }
.gmenu a {
    color: #6db900;
    border-bottom: 1px dotted#cfe798;
    }
.footer{
    color: #ffffff;
    text-shadow: #45cdf5 1px 1px 1px;
    margin-top: 1px;
    margin-bottom: 1px;
    padding: 2px;
    border: 1px solid #68e1ff;
    background-color: #84e2f8;
    }
.footer a {
    color: #fe8f17;
    text-decoration: none;
    border-bottom: 1px dotted #979797;
    }
.list1 {
    background-color: #f6f6f6;
    margin-top: 1px;
    margin-bottom: 1px;
    padding: 2px;
    border: 1px solid #e7e7e7;
    }
.list2 {
    background-color: #fdfdfd;
    margin-top: 1px;
    margin-bottom: 1px;
    padding: 2px;
    border: 1px solid #ececec;
    }
.maintxt {
    padding-right: 1px;
    padding-left: 1px;
    border: 1px solid #dadada;
    }
.alarm {
    color: #fd4646;
    background-color: #fff0f0;
    margin-top: 1px;
    margin-bottom: 1px;
    padding: 2px;
    border: 1px solid #ffd0d0;
    }


 Inilah screenshotnya.



Semoga berhasil dan bermanfaat.
Terimakasih.