
Project Abandoned. Proyek ini telah ditinggalkan dan mungkin ketinggalan zaman dengan standar saat ini dan sehubungan dengan keamanan dan fitur dll. Saya dapat mengubah proyek ini di masa depan tetapi tidak ada pengembangan lebih lanjut yang direncanakan saat ini.
Klik adalah sistem kumpulan informasi berbasis PHP (atau hanya situs web media sosial), yang terdiri dari sistem login/pendaftaran lengkap, sistem profil pengguna, ruang obrolan, sistem forum, dan sistem manajemen blog/jajak pendapat/acara.
Semua persyaratan ini dapat diselesaikan sekaligus dengan hanya menginstal tumpukan server seperti
WampatauXamppdll.
Impor file klik_database.sql di folder includes ke phpMyadmin. Tidak perlu perubahan dalam file .sql. Ini akan membuat database yang diperlukan agar aplikasi berfungsi.
Edit file dbh.inc.php di folder includes untuk membuat koneksi database. Ubah kata sandi dan nama pengguna menjadi yang digunakan dalam pemasangan phpMyAdmin saat ini. Tidak perlu mengubah hal lain.
$ serverName = " localhost " ;
$ dBUsername = " root " ;
$ dBPassword = " examplePassword " ;
$ dBName = " klik_database " ;
$ conn = mysqli_connect ( $ serverName , $ dBUsername , $ dBPassword , $ dBName , 3307 );
if (! $ conn )
{
die ( " Connection failed: " . mysqli_connect_error ());
}Nomor port tidak perlu diubah dalam keadaan normal, tetapi jika Anda mengalami masalah atau tumpukan server diinstal pada port lain, jangan ragu untuk mengubahnya, tetapi lakukan dengan hati -hati.
email-server.php di folder includes dan ubah variabel yang sesuai:$SMTPuser : alamat email di gmail$SMTPpwd : kata sandi alamat emailSMTPtitle : Nama Perusahaan HipotetisDomain : Domain Situs Web, seperti LocalHost di server lokal atau jika di domain langsung, sesuatu seperti www.hypotheticalwebsite.com $ SMTPuser = ' [email protected] ' ;
$ SMTPpwd = ' some-example-password ' ;
$ SMTPtitle = " KLiK inc. " ;
$ Domain = ' localhost ' ;Langkah ini terutama untuk menyiapkan akun email untuk mengaktifkan
password reset systemcontactdan kata sandi, yang semuanya memerlukan pengiriman.
Pada tahap aplikasi saat ini, hanya akun
Gmailyang didukung.
File database sudah berisi banyak data sampel dan pengguna. Sebagian besar pengguna dalam database memiliki kata sandi yang sama dengan nama pengguna mereka kecuali beberapa. Tidak mungkin untuk mendaftar sebagai administrator melalui aplikasi, karena kami memutuskan bahwa itu adalah kelemahan yang dapat dieksploitasi. Oleh karena itu, Anda harus membuat akun dan secara manual pergi ke tabel users dalam database untuk mengubah tingkat pengguna akun tersebut menjadi 1 dari 0 .
0 Level berarti pengguna normal dan level 1 berarti admin
Cara sederhana untuk mengakses semua akun sampel tanpa menghapusnya dan karenanya kehilangan semua data sampel adalah dengan mengubah email mereka secara manual dari dalam phpMyadmin ke alamat email yang valid. Kemudian coba login dengan akun itu menggunakan kata sandi yang salah, dan gunakan forgot password? link untuk mengatur ulang kata sandi akun. Email akun dapat diubah lagi dengan aman menjadi apa pun yang sepele di kemudian hari.
PHP 5.6.40
SQL 14.0
JavaScript ES 6
HTML5
CSS3
WampServer Stack 3.0.6
Windows 10
MySQL Database 8.0.13
phpMyAdmin 4.8.3
MySQLi APIs
JQuery v3.3.1
BootStrap v4.2.1
AJAX
[PHPMailer 6.0.6](https://github.com/PHPMailer/PHPMailer)
Ini digunakan untuk membuat
mail serverdiWindows localhost, karena tidak seperti di Linux, tidak ada yang sudah diinstal di Windows. Plugin ini digunakan untuk pengiriman dan penerimaan email di LocalHost, dan tidak diperlukan pada domain langsung
Detail fitur penting dari aplikasi ini

Dasbor menyediakan antarmuka pusat untuk sebagian besar fitur aplikasi. User profile card di sudut kiri atas layar memberikan ringkasan profil, serta tautan ke profil dan halaman pengeditan profil. Tombol pencipta di sudut kanan atas menyediakan tautan yang menonjol ke halaman tim, yang menampilkan KLiK Creators .
Antarmuka 4 tab di pusat menyediakan akses ke Forums , Blogs , Polls , dan Events latest , atau yang terbaru. Komponen menunjukkan karakteristik individu dari masing -masing elemen, seperti upvotes Total untuk Forum, likes blog, votes untuk jajak pendapat dan days remaining untuk acara. Ada 2 tombol lagi, yang masuk ke KLiK Forums (antarmuka pusat untuk forum) dan KLiK Hub (antarmuka pusat untuk sistem blog, jajak pendapat dan manajemen acara).

Forum System :
Blog Management System :
Like di blog (pengguna dapat menyukai blog atau menghapus suka mereka) Event Management System :
Poll Management System :

Klik mendukung sistem login/pendaftaran dan profil pengguna lengkap. Pada startup, aplikasi menunjukkan opsi untuk masuk, mendaftar atau menghubungi admin situs web melalui email. Setiap pengguna dapat membuat nama pengguna unik yang tidak dapat diubah nanti. passwords pengguna hashed sebelum disimpan dalam database sehingga admin tidak memiliki akses ke kata sandi asli juga. Informasi pengguna tambahan termasuk Full Name , email , Profile Image , Profile Headline , Gender dan Bio .
Ada juga Password Recovery System yang aman yang memungkinkan pengguna untuk mengatur ulang kata sandi mereka dengan cara yang aman. Aplikasi ini menghasilkan token-link yang dienkripsi sementara dengan waktu kedaluwarsa tertentu yang bila digunakan oleh pengguna yang diminta untuk mengubah kata sandi. Karena itu juga membutuhkan kata sandi saat ini, prosesnya aman dan memiliki peluang eksploitasi yang lebih rendah.
Aplikasi ini menggunakan beberapa metode otentikasi untuk mendaftar dan masuk. Ini memeriksa empty fields , wrong username , wrong password , SQL errors , server errors dan dalam hal mendaftar, corrupted image atau kesalahan wrong image type

Klik memiliki User profile system yang lengkap. Setiap pengguna diberi profil saat mendaftar, yang dengannya pengguna dapat membuat forum, blog, acara dll dan berinteraksi dengan fitur aplikasi. Nama lengkap pengguna, headline dan bio, serta gambar profil adalah opsional, artinya siapa pun dapat mendaftar tanpa mengaturnya. Dalam hal ini, pengguna akan diberi gambar pengguna default dan tajuk utama, bio dan nama lengkap akan kosong.
user profile dapat diakses melalui opsi di menu Pengaturan di bilah navigasi, atau lebih sederhana, dengan mengklik gambar pengguna pada kartu profil pengguna, yang ada di sudut kiri atas layar aplikasi di sebagian besar halaman. Halaman profil menunjukkan informasi pengguna dasar seperti nama pengguna, nama lengkap, jenis kelamin, tajuk utama, dan bio. Selain itu, ini menunjukkan berbagai Forums dan Blogs yang telah dibuat pengguna bersama dengan Polls yang telah ia ikuti. Jika jika pengguna belum melakukan semua itu atau baru, halaman tersebut menunjukkan kucing bongo kecil yang lucu dengan keterangan 'kosong' seperti itu untuk mengingatkan Anda bahwa Anda harus lebih aktif :)
Ada juga Profile Editing System yang memungkinkan pengguna untuk mengedit informasi profilnya. Ini dapat diakses melalui opsi masing -masing di menu Pengaturan di bilah navigasi atau hanya dengan mengklik ikon pensil di sebelah gambar profil pengguna pada kartu profil. Sistem memungkinkan pengguna untuk mengubah sebagian besar informasinya kecuali untuk nama pengguna, yang tidak dapat diubah. Semua bidang sudah memiliki informasi saat ini, sehingga pengguna tidak harus mengetik semuanya lagi jika dia hanya ingin sedikit mengedit informasi saat ini. Namun, kata sandi juga dapat diubah, hanya dengan memberikan kata sandi saat ini untuk mempertahankan antarmuka yang lebih aman.

Klik juga memiliki chatbox, yang menggunakan PHP & AJAX untuk mengobrol real-time dengan pengguna lain. Bagian di sebelah kiri adalah daftar semua pengguna yang saat ini ada di situs web, sedangkan layar obrolan kanan adalah untuk menampilkan pesan ingoing dan keluar. Seorang pengguna dapat mengakses obrolan dengan pengguna tertentu dengan mengkliknya di daftar pengguna, yang akan mengambil semua pesan obrolan dari database. Pesan ingoing dan keluar ditata secara berbeda untuk mempertahankan keterbacaan. Obrolan dilakukan secara real-time, tanpa perlu menyegarkan halaman terus menerus.
Kemungkinan perbaikan :
optimization : Semua pesan obrolan diambil sekaligus, dan ini dapat menyebabkan penundaan jika obrolan besar. Ini dapat diperbaiki dengan menerapkan beban pesan tambahan untuk memuat hanya pesan yang ditampilkan di layar.user search : Fitur pencarian dapat diimplementasikan dalam daftar pengguna untuk secara langsung mencari pengguna tertentu, sehingga menghemat waktu. Password hashing sebelum disimpan dalam database.
Reset kata sandi dilakukan melalui encrypted tokens yang dibuat secara individual yang dikirim melalui email sebagai bentuk tautan. Token memiliki tanggal kedaluwarsa tertentu setelah itu tidak dapat digunakan.
Penyaringan informasi yang diperoleh dari metode $_GET dan $_POST untuk mencegah header injection .
Implementasi MySQLi Prepared Statements untuk keamanan database tingkat lanjut .
Contoh:
$ sql = " select uidUsers from users where uidUsers=?; " ;
$ stmt = mysqli_stmt_init ( $ conn );
if (! mysqli_stmt_prepare ( $ stmt , $ sql ))
{
header ( " Location: ../signup.php?error=sqlerror " );
exit ();
}
else
{
mysqli_stmt_bind_param ( $ stmt , " s " , $ userName );
mysqli_stmt_execute ( $ stmt );
mysqli_stmt_store_result ( $ stmt );
}Daftar semua fitur aplikasi utama dan file front-end dan back-end masing-masing.
| Fitur | File front-end | File back-end |
|---|---|---|
| Dasbor | index.php (Main Dashboard) , Forum.php , Hub.php | N/a |
| Sistem Forum | categories.php , create-category , topics.php , create-topic.php , posts.php | create-category.inc.php , create-topic.inc.php , delete-category.php , delete-forum.php , delete-post.php |
| Sistem Blog | blog-page.php , blogs.php , create-blog | blog-vote.inc.php , create-blog.inc.php |
| Sistem Acara | event-page.php , events.php , create-event.php | create-event.inc.php |
| Sistem jajak pendapat | poll.php , polls.php , poll-voters.php | create-poll.inc.php , delete-poll.inc.php , poll.class.php , post-vote.inc.php |
| Ruang obrolan | message.php | post_message_ajax.php , get_message_ajax.php , script.js |
| Pendaftaran/ login | signup.php , login.php | signup.inc.php , login.inc.php , logout.inc.php |
| Sistem Profil | profile.php , edit-profile.php | profileUpdate.inc.php |
| Reset Kata Sandi | reset-pwd.php , create-new-pwd.php | reset-request.inc.php |
| Unggahan gambar | N/a | upload.inc.php |
| Showcase Pencipta | team.php , KLiK_anas-imran.php , KLiK_anas-kamal.php , KLiK_saad.php , KLiK_ubaid.php | N/a |
| Menemukan pengguna | users-view.php | N/a |
CATATAN: File GUI ada di
root directory, danbackend filesada di folderincludes. Demikian pula, semua file CSS dan JS hadir di direktoricss&jsprespektif mereka. Hanya file pembuat di_KLiK Creators folderyang memiliki file CSS sendiri. File penataan HTML utama adalahHTML-head.phpdanHTML-footer.php, yang juga berada di folder termasuk
LaravelVue.js untuk ruang obrolan.Jika Anda menyukai pekerjaan saya, silakan tunjukkan dukungan dengan membintangi repositori! Itu sangat berarti bagi saya, dan semua saya minta.
Terima kasih banyak kepada tim yang luar biasa yang tanpanya seluruh proyek ini tidak mungkin terjadi. Lihat profil kami dan bintang repo kami! :)
![]() | ![]() | ![]() | ![]() |
|---|---|---|---|
| MSAAD1999 | Skamal16 | Ubaidasim | Aitasadduq |