BITCOIN BLABK COINS
BITCOIN BLABK COINS

Sabtu, 13 Februari 2016

Membuat Chat Online Sederhana dengan PHP-Sql

Mari belajar tentang cara membuat aplikasi Obrolan sederhana dengan menggunakan sistem login yang sudah ada. Ini akan solusi yang berguna dan yang paling sederhana. Kami akan dapat chatting dengan anggota login kami. Kami akan menggunakan database untuk menyimpan pesan.


Tahap-1 : Membuat Template dengan HTML, PHP
Ini untuk jendela obrolan utama. copy script dibawah ini dengan nama: index.php

    
<frameset rows="65%,35%" framespacing="1" frameborder="yes" border="1" bordercolor="#FF0000">
    <frame src="messages.php" name="main_frame">
    <frame src="main.php" name="login_frame" scrolling="no" noresize target="middle">
</frameset>


Selanjutnya buat form login, kopi kode dibwah ini dan beri nama: login_form.html

<link type="text/css" rel="stylesheet" href="styles.css" />

<form class="login_form" method="post" action="main.php">
 <div>Username: <input type="text" name="username" /></div>
 <div>Password: <input type="password" name="password" /></div>
 <div><input type="submit" value="Login" name="Login" /></div>
</form>
<div>You can use username "User1" or "User2" or "User3" and password "qwerty" to login in system</div>


Berikut adalah file 3 template untuk chatting (2 kotak pesan dan 1 untuk mengirim formulir pesan):

chat_begin.html
<link type="text/css" rel="stylesheet" href="styles.css" />

<div class="chat_main">
<h3>Chat</h3>


chat_end.html
</div>


chat_input.html
<link type="text/css" rel="stylesheet" href="styles.css" />

<form class="submit_form" method="post" action="main.php">
 <div><input type="text" name="s_message" /><input type="submit" value="Say" name="s_say" /></div>
</form>
<div>You can type anything in chat</div>


Tahap-2 : CSS
Kopi kode dibawah ini, simpan dengan nama: styles.css
.login_form {
 border: 1px solid #AAA;
 padding:10px;
}

h3 {margin-top:3px;}

.chat_main {
 border:1px solid #AAA;
 -moz-box-shadow:0 0 10px #ccc;
 -webkit-box-shadow: 0 0 10px #ccc;
 width:350px;
 padding:10px;
 background:#f3f3f3;
}

.message {
 border:1px solid #AAA;
 margin:4px;
 padding:5px;
 -moz-border-radius:7px;
 -webkit-border-radius:7px;
 background:#ffffff;
}

.textf {
-moz-box-shadow:0 0 10px #CCCCCC;
-webkit-box-shadow:0 0 10px #CCCCCC;
border:1px solid #CCCCCC;
height:40px;
}

.submit {
-moz-border-radius:7px;
-webkit-border-radius:7px;
background:#F3F3F3;
border:1px solid #CCCCCC;
font-size:16px;
font-weight:bold;
height:35px;
margin-left:10px;
padding:5px;
}
.message span {
 font-size:10px;
 color:#888;
 margin-left:10px;
}

.submit_form {
 margin:10px 0px;
}


Tahap-3 : Membuat Database
CREATE TABLE `s_chat_messages` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`user` VARCHAR(255) NOT NULL ,
`message` VARCHAR(255) NOT NULL ,
`when` INT(11) NOT NULL ,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Buatlah Database seperti dibawah ini:



Tahap-4 : Membuat Kode PHP
Anda ingat - untuk memiliki siap sistem otentikasi mudah. Saya pindah ke file library eksternal (inc / login.inc.php). Ini akan berguna bagi kita - sekarang kode lebih terstruktur dan nyaman untuk digunakan di tempat yang berbeda dari kode.

Setelah membuat perpustakaan baru untuk bekerja dengan chatting (inc / chat.inc.php). Kelas ini memiliki fungsi berikutnya:
menerima Pesan - fungsi menerima pesan yang dikirim dan menyimpannya dalam tabel DB
getMessages - daftar kembali dari 15 pesan terakhir

Setelah membuat 2 file terakhir: messages.php dan main.php. file pertama digunakan untuk menggambar daftar pesan. Ini memiliki pembaruan otomatis setiap 5 detik (saya hal ini cukup untuk chatting kami). bentuk imbang login kedua dan bidang masukan dari chatting. Di mana kita karena login dapat memasukkan teks dalam chat.

Ok, di sini adalah semua file PHP yang digunakan, dengan nama: 
main.php
<?php

// set error reporting level
if (version_compare(phpversion(), "5.3.0", ">=") == 1)
 error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
else
 error_reporting(E_ALL & ~E_NOTICE);

require_once('inc/login.inc.php');
require_once('inc/chat.inc.php');

// initialization of login system and generation code
$oSimpleLoginSystem = new SimpleLoginSystem();

$oSimpleChat = new SimpleChat();

// draw login box
echo $oSimpleLoginSystem->getLoginBox();

// draw chat application
$sChatResult = 'Need login before using';
if ($_COOKIE['member_name'] && $_COOKIE['member_pass']) {
 if ($oSimpleLoginSystem->check_login($_COOKIE['member_name'], $_COOKIE['member_pass'])) {
 $sChatResult = $oSimpleChat->acceptMessages();
 }
}
echo $sChatResult;

?>

messages.php
<meta http-equiv="refresh" content="5">
<?php

require_once('inc/chat.inc.php');
$oSimpleChat = new SimpleChat();
echo $oSimpleChat->getMessages();

?>

Buatlah direktori inc, isi file : chat.inc.php, login.inc.php
inc/chat.inc.php
<?php

// simple chat class
class SimpleChat {

    // DB variables
    var $sDbName;
    var $sDbUser;
    var $sDbPass;

    // constructor
    function SimpleChat() {
        //mysql_connect("localhost","username","password");
        $this->sDbName = 'database_name';
        $this->sDbUser = 'username';
        $this->sDbPass = 'password';
    }

    // adding to DB table posted message
    function acceptMessages() {
        if ($_COOKIE['member_name']) {
            if(isset($_POST['s_say']) && $_POST['s_message']) {
                $sUsername = $_COOKIE['member_name'];

                //the host, name, and password for your mysql
                $vLink = mysql_connect("localhost", $this->sDbUser, $this->sDbPass);

                //select the database
                mysql_select_db($this->sDbName);

                $sMessage = mysql_real_escape_string($_POST['s_message']);
                if ($sMessage != '') {
                    mysql_query("INSERT INTO `s_chat_messages` SET `user`='{$sUsername}', `message`='{$sMessage}', `when`=UNIX_TIMESTAMP()");
                }

                mysql_close($vLink);
            }
        }

        ob_start();
        require_once('chat_input.html');
        $sShoutboxForm = ob_get_clean();

        return $sShoutboxForm;
    }

    function getMessages() {
        $vLink = mysql_connect("localhost", $this->sDbUser, $this->sDbPass);

        //select the database
        mysql_select_db($this->sDbName);

        //returning the last 15 messages
        $vRes = mysql_query("SELECT * FROM `s_chat_messages` ORDER BY `id` ASC LIMIT 15");

        $sMessages = '';

        // collecting list of messages
        if ($vRes) {
            while($aMessages = mysql_fetch_array($vRes)) {
                $sWhen = date("H:i:s", $aMessages['when']);
                $sMessages .= '<div class="message">' . $aMessages['user'] . ': ' . $aMessages['message'] . '<span>(' . $sWhen . ')</span></div>';
            }
        } else {
            $sMessages = 'DB error, create SQL table before';
        }

        mysql_close($vLink);

        ob_start();
        require_once('chat_begin.html');
        echo $sMessages;
        require_once('chat_end.html');
        return ob_get_clean();
    }
}

?>

inc/login.inc.php
<?

// class SimpleLoginSystem
class SimpleLoginSystem {

    // variables
    var $aExistedMembers; // Existed members array

    // constructor
    function SimpleLoginSystem() {
        $this->aExistedMembers = array(
            'User1' => 'd8578edf8458ce06fbc5bb76a58c5ca4',
            'User2' => 'd8578edf8458ce06fbc5bb76a58c5ca4',
            'User3' => 'd8578edf8458ce06fbc5bb76a58c5ca4'
        );
    }

    function getLoginBox() {
        ob_start();
        require_once('login_form.html');
        $sLoginForm = ob_get_clean();

        $sLogoutForm = '<a href="'.$_SERVER['PHP_SELF'].'?logout=1">logout</a>';

        if ((int)$_REQUEST['logout'] == 1) {
            if (isset($_COOKIE['member_name']) && isset($_COOKIE['member_pass']))
                $this->simple_logout();
        }

        if ($_REQUEST['username'] && $_REQUEST['password']) {
            if ($this->check_login($_REQUEST['username'], MD5($_REQUEST['password']))) {
                $this->simple_login($_REQUEST['username'], $_REQUEST['password']);
                return 'Hello ' . $_REQUEST['username'] . '! ' . $sLogoutForm;
            } else {
                return 'Username or Password is incorrect' . $sLoginForm;
            }
        } else {
            if ($_COOKIE['member_name'] && $_COOKIE['member_pass']) {
                if ($this->check_login($_COOKIE['member_name'], $_COOKIE['member_pass'])) {
                    return 'Hello ' . $_COOKIE['member_name'] . '! ' . $sLogoutForm;
                }
            }
            return $sLoginForm;
        }
    }

    function simple_login($sName, $sPass) {
        $this->simple_logout();

        $sMd5Password = MD5($sPass);

        $iCookieTime = time() + 24*60*60*30;
        setcookie("member_name", $sName, $iCookieTime, '/');
        $_COOKIE['member_name'] = $sName;
        setcookie("member_pass", $sMd5Password, $iCookieTime, '/');
        $_COOKIE['member_pass'] = $sMd5Password;
    }

    function simple_logout() {
        setcookie('member_name', '', time() - 96 * 3600, '/');
        setcookie('member_pass', '', time() - 96 * 3600, '/');

        unset($_COOKIE['member_name']);
        unset($_COOKIE['member_pass']);
    }

    function check_login($sName, $sPass) {
        return ($this->aExistedMembers[$sName] == $sPass);
    }
}

?>

Demikian Membuat Chat Online Sederhana dengan PHP-SQl, semoga bermanfaat.

1 komentar:

  1. Assalamualaikum Salam sejahtera untuk kita semua,
    Sengaja ingin menulis sedikit kesaksian untuk berbagi, barangkali ada teman-teman yang sedang kesulitan masalah keuangan
    Awal mula saya mengamalkan Pesugihan Tanpa Tumbal karena usaha saya bangkrut dan saya menanggung hutang sebesar 750juta saya sters hampir bunuh diri tidak tau harus bagaimana agar bisa melunasi hutang saya, saya coba buka-buka internet dan saya bertemu dengan MBAH BAYU HAJI SAKTI MANGKURAT awalnya saya ragu dan tidak percaya tapi selama 3 hari saya berpikir, saya akhirnya bergabung dan menghubungi
    MBAH BAYU HAJI SAKTI MANGKURAT kata MBAH pesugihan yang cocok untuk saya adalah pesugihan penarikan uang gaib 3Milyar dengan tumbal hewan, Semua petunjuk saya ikuti dan hanya 1 hari Astagfirullahallazim, Alhamdulilah akhirnya 3M yang saya minta benar benar ada di tangan saya semua hutang saya lunas dan sisanya buat modal usaha. sekarang rumah sudah punya dan mobil pun sudah ada. Maka dari itu, setiap kali ada teman saya yang mengeluhkan nasibnya, saya sering menyarankan untuk menghubungi MBAH BAYU HAJI SAKTI MANGKURAT di No. 0853-9715-7203 agar di berikan arahan. Toh tidak langsung datang ke jawa timur, saya sendiri dulu hanya berkonsultasi jarak jauh. Alhamdulillah, hasilnya sama baik, jika ingin seperti saya coba hubungi MBAH BAYU HAJI SAKTI MANGKURAT

    BalasHapus

Dengan segala kerendahan hati menerima saran dan kritik yang bersifat membangun, silahkan berikan saran dan kritik Anda pada kolom komentar

Artikel Lainnya

Analisis Data

 Materi Pelajaran Informatika SMA/MA/SMK Kelas X 1.       Pengertian Analisis data adalah proses inspeksi, pembersihan dan pemodelan data ...

BITCOIN BLABK COINS