
Project Abandoned. 이 프로젝트는 버려졌으며 현재 표준과 보안 및 기능 등과 관련하여 구식이 될 수 있습니다. 앞으로이 프로젝트를 개선 할 수 있지만 현재는 더 이상 개발 계획이 없습니다.
KLIK는 PHP 기반 정보 풀 시스템 (또는 단순히 소셜 미디어 웹 사이트)으로 전체 로그인/등록 시스템, 사용자 프로필 시스템, 채팅방, 포럼 시스템 및 블로그/폴링/이벤트 관리 시스템으로 구성된 PHP 기반 정보 풀 시스템입니다.
이러한 모든 요구 사항은
Wamp또는Xampp등과 같은 서버 스택을 단순히 설치하여 한 번에 완료 할 수 있습니다.
includes 폴더에서 klik_database.sql 파일을 phpmyadmin으로 가져옵니다. .SQL 파일의 변경이 필요하지 않습니다. 이렇게하면 응용 프로그램이 작동하는 데 필요한 데이터베이스가 생성됩니다.
includes 폴더에서 dbh.inc.php 파일을 편집하여 데이터베이스 연결을 만듭니다. phpMyAdmin 의 현재 설치 내에서 사용중인 암호와 사용자 이름을 변경하십시오. 다른 것을 바꿀 필요가 없습니다.
$ 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 ());
}정상적인 상황에서는 포트 번호를 변경할 필요가 없지만 문제가 발생하거나 서버 스택이 다른 포트에 설치된 경우 자유롭게 변경하십시오.
includes 폴더에서 email-server.php 파일을 편집하고 그에 따라 변수를 변경하십시오.$SMTPuser : gmail 의 이메일 주소$SMTPpwd : 이메일 주소 비밀번호SMTPtitle : 가상 회사의 이름Domain : 로컬 서버의 LocalHost와 같은 웹 사이트의 도메인 또는 라이브 도메인에있는 경우 www.hysotheticalwebsite.com과 같은 웹 사이트 $ SMTPuser = ' [email protected] ' ;
$ SMTPpwd = ' some-example-password ' ;
$ SMTPtitle = " KLiK inc. " ;
$ Domain = ' localhost ' ;이 단계는 주로
contact및password reset system활성화하기위한 이메일 계정을 설정하는 것입니다.
응용 프로그램의 현재 단계에서
Gmail계정 만 지원됩니다.
데이터베이스 파일에는 이미 많은 샘플 데이터와 사용자가 포함되어 있습니다. 데이터베이스의 대부분의 사용자는 몇 가지를 제외하고 사용자 이름과 동일한 비밀번호를 가지고 있습니다. 우리는 그것이 악용 가능한 약점이라고 결정했기 때문에 응용 프로그램을 통해 관리자로 가입 할 수 없습니다. 따라서 계정을 생성하고 데이터베이스의 users 테이블로 이동하여 해당 계정의 사용자 레벨을 0 에서 1 로 변경해야합니다.
0 레벨은 일반 사용자를 의미하며 레벨 1은 관리자를 의미합니다.
모든 샘플 계정에 액세스하지 않고 모든 샘플 계정에 액세스하는 간단한 방법은 모든 샘플 데이터를 잃어버린 것입니다. 따라서 모든 샘플 데이터는 Phpmyadmin 내에서 유효한 이메일 주소로 email 수동으로 변경하는 것입니다. 그런 다음 잘못된 비밀번호를 사용하여 해당 계정으로 로그인을 시도하고 제공된 forgot password? link 계정 비밀번호를 재설정하려면 forgot password? link . 계정 이메일은 나중에 사소한 것으로 다시 안전하게 변경할 수 있습니다.
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)
Linux와 달리 Windows에 이미 설치되어 있지 않기 때문에
Windows localhost에서mail server작성하는 데 사용되었습니다. 이 플러그인은 LocalHost에서 이메일을 보내고받는 데 사용되었으며 라이브 영역에서는 필요하지 않습니다.
응용 프로그램의 중요한 기능에 대한 자세한 내용

대시 보드는 응용 프로그램의 대부분의 기능에 대한 중앙 인터페이스를 제공합니다. 화면의 왼쪽 상단에있는 User profile card 프로필 요약과 프로필 및 프로필 편집 페이지에 대한 링크를 제공합니다. 오른쪽 상단 코너의 Creator 버튼은 KLiK Creators 보여주는 팀 페이지에 대한 두드러진 링크를 제공합니다.
센터의 4 탭 인터페이스는 최신 Forums , Blogs , Polls 및 Events 에 대한 latest 포럼 또는 가장 최근에 액세스 할 수 있습니다. 구성 요소는 포럼의 전체 upvotes , 블로그의 likes , 여론 조사에 대한 votes 및 이벤트에 days remaining 과 같은 각 요소의 개별 특성을 보여줍니다. KLiK Forums (포럼의 중앙 인터페이스)과 KLiK Hub (블로그, 폴링 및 이벤트 관리 시스템의 중앙 인터페이스)로 이동하는 버튼이 2 개 더 있습니다.

Forum System :
Blog Management System :
Like (사용자는 블로그를 좋아하거나 좋아요를 제거 할 수 있습니다) Event Management System :
Poll Management System :

KLIK는 전체 로그인/등록 및 사용자 프로필 시스템을 지원합니다. 시작시 응용 프로그램은 이메일을 통해 로그인, 가입 또는 웹 사이트 관리자에게 연락하는 옵션을 보여줍니다. 각 사용자는 나중에 변경할 수없는 고유 한 사용자 이름을 만들 수 있습니다. 사용자 passwords 데이터베이스에 저장하기 전에 hashed 되므로 관리자조차 원래 암호에도 액세스 할 수 없습니다. 추가 사용자 정보에는 Full Name , email , Profile Image , Profile Headline , Gender 및 Bio 포함됩니다.
보안 Password Recovery System 도있어 사용자가 안전한 방식으로 비밀번호를 재설정 할 수 있습니다. 이 앱은 사용자가 사용할 때 비밀번호를 변경하기 위해 프롬프트하는 특정 만료 시간으로 임시 암호화 토큰 링크를 생성합니다. 그것은 또한 현재 암호가 필요하기 때문에 프로세스는 안전하고 착취 가능성이 줄어 듭니다.
이 앱은 가입 및 로그인에 여러 인증 방법을 사용합니다. empty fields , wrong username , wrong password , SQL errors , server errors 및 가입, corrupted image 또는 wrong image type 오류가 있는지 확인합니다.

Klik에는 완전한 User profile system 있습니다. 각 사용자는 가입시 프로필이 할당되며, 사용자는 포럼, 블로그, 이벤트 등을 만들고 앱의 기능과 상호 작용할 수 있습니다. 사용자의 이름, 헤드 라인 및 바이오 및 프로필 이미지는 선택 사항이므로 누구나 설정하지 않고 가입 할 수 있습니다. 이 경우 사용자에게 기본 사용자 이미지가 할당되며 헤드 라인, 바이오 및 전체 이름이 비어 있습니다.
user profile 탐색 표시 줄의 설정 메뉴의 옵션을 통해 또는 간단히 말해서 대부분의 페이지의 앱 화면의 왼쪽 상단에있는 사용자 프로필 카드의 사용자 이미지를 클릭하여 더 간단하게 액세스 할 수 있습니다. 프로필 페이지에는 사용자 이름, 성명, 성별, 헤드 라인 및 바이오와 같은 기본 사용자 정보가 표시됩니다. 그 외에도, 사용자가 참여한 Polls 와 함께 사용자가 만든 다양한 Forums 과 Blogs 보여줍니다. 사용자가 그 중 어느 것도하지 않았거나 새로 사용하는 경우, 페이지에는 '그러한 빈'캡션이있는 귀여운 작은 봉고 고양이가 더 활동적이어야한다는 것을 상기시켜줍니다 :)
사용자가 프로필 정보를 편집 할 수있는 Profile Editing System 도 있습니다. 내비게이션 바의 설정 메뉴에서 각 옵션을 통해 또는 프로필 카드의 사용자 프로필 이미지 옆에있는 연필 아이콘을 클릭하면 액세스 할 수 있습니다. 이 시스템을 통해 사용자는 변경할 수없는 사용자 이름을 제외하고 대부분의 정보를 변경할 수 있습니다. 모든 필드에는 이미 현재 정보가 있으므로 사용자가 현재 정보를 약간 편집하려는 경우 모든 것을 다시 입력 할 필요는 없습니다. 그러나보다 안전한 인터페이스를 유지하기 위해 현재 비밀번호를 제공하여 암호를 변경할 수도 있습니다.

Klik에는 또한 다른 사용자와 실시간 채팅을 위해 PHP & AJAX 사용하는 ChatBox도 있습니다. 왼쪽의 섹션은 현재 웹 사이트에있는 모든 사용자의 목록이며 오른쪽 채팅 화면은 잉거 및 나가는 메시지를 표시하는 것입니다. 사용자는 사용자 목록에서 자신을 클릭하여 특정 사용자와 채팅에 액세스 할 수 있으며 데이터베이스에서 모든 채팅 메시지를 검색합니다. 잉거 및 나가는 메시지는 가독성을 유지하기 위해 다르게 스타일링됩니다. 채팅은 페이지를 지속적으로 새로 고칠 필요없이 실시간으로 수행됩니다.
가능한 개선 :
optimization : 채팅의 모든 메시지는 한 번에 검색되므로 채팅이 커지면 지연 될 수 있습니다. 이는 화면에 표시되는 메시지 만로드하기 위해 증분 메시지로드를 구현하여 수정할 수 있습니다.user search : 검색 기능을 사용자 목록에서 구현하여 특정 사용자를 직접 검색하여 시간을 절약 할 수 있습니다. 데이터베이스에 저장하기 전에 Password hashing .
비밀번호 재설정 개별적으로 생성 된 encrypted tokens 통해 링크 형식으로 전송 된 암호화 토큰을 통해 수행됩니다. 토큰은 특정 만료 날짜를 가지고 그 후에 사용할 수 없습니다.
header injection 방지하기 위해 $_GET 및 $_POST 방법에서 얻은 정보 필터링.
고급 데이터베이스 보안을위한 MySQLi Prepared Statements 구현.
예:
$ 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 );
}모든 주요 응용 프로그램 기능 및 해당 프론트 엔드 및 백엔드 파일 목록.
| 특징 | 프론트 엔드 파일 | 백엔드 파일 |
|---|---|---|
| 계기반 | index.php (Main Dashboard) , Forum.php , Hub.php | N/A |
| 포럼 시스템 | 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 |
| 블로그 시스템 | blog-page.php , blogs.php , create-blog | blog-vote.inc.php , create-blog.inc.php |
| 이벤트 시스템 | event-page.php , events.php , create-event.php | create-event.inc.php |
| 설문 조사 시스템 | poll.php , polls.php , poll-voters.php | create-poll.inc.php , delete-poll.inc.php , poll.class.php , post-vote.inc.php |
| 채팅방 | message.php | post_message_ajax.php , get_message_ajax.php , script.js |
| 가입/ 로그인 | signup.php , login.php | signup.inc.php , login.inc.php , logout.inc.php |
| 프로필 시스템 | profile.php , edit-profile.php | profileUpdate.inc.php |
| 비밀번호 재설정 | reset-pwd.php , create-new-pwd.php | reset-request.inc.php |
| 이미지 업로드 | N/A | upload.inc.php |
| 제작자 쇼케이스 | team.php , KLiK_anas-imran.php , KLiK_anas-kamal.php , KLiK_saad.php , KLiK_ubaid.php | N/A |
| 사용자 찾기 | users-view.php | N/A |
참고 : GUI 파일은
root directory에 있으며backend filesincludes폴더에 있습니다. 마찬가지로, 모든 CSS 및 JS 파일은 Presectivecss&js디렉토리에 존재합니다._KLiK Creators folder의 Creator 파일 만 자체 CSS 파일이 있습니다. 주요 HTML 구조화 파일은HTML-head.php및HTML-footer.php이며 포함 폴더에도 있습니다.
Laravel 과 같은 고급 프레임 워크의 통합Vue.js 구현.내 작품이 마음에 들면 저장소 주연으로 지원을 보여주십시오! 그것은 나에게 많은 것을 의미하며, 모두가 요구하고 있습니다.
이 전체 프로젝트가 불가능했던 훌륭한 팀 덕분에 큰 감사를드립니다. 프로파일을 확인하고 저장소를 별표하십시오! :)
![]() | ![]() | ![]() | ![]() |
|---|---|---|---|
| MSAAD1999 | Skamal16 | 우 바이 다심 | Aitasadduq |