
Project Abandoned。このプロジェクトは放棄されており、現在の基準とセキュリティや機能などに関しては時代遅れである可能性があります。将来このプロジェクトを改良することができますが、現時点ではさらに開発は計画されていません。
Klikは、完全なログイン/登録システム、ユーザープロファイルシステム、チャットルーム、フォーラムシステム、ブログ/世論調査/イベント管理システムで構成されるPHPベースの情報プールシステム(または単にソーシャルメディアWebサイト)です。
これらの要件はすべて、
WampやXamppなどのサーバースタックをインストールするだけで一度に完了できます。
klik_database.sqlファイルをincludesて、フォルダーを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のようなWebサイトのドメイン、またはライブドメイン上の場合、www.hypotheticalwebsite.comのようなもの $ SMTPuser = ' [email protected] ' ;
$ SMTPpwd = ' some-example-password ' ;
$ SMTPtitle = " KLiK inc. " ;
$ Domain = ' localhost ' ;このステップは、主にメールアカウントを設定して、
contactとpassword reset systemを有効にするためのものであり、そのすべてが郵送が必要です。
アプリケーションの現在の段階では、
Gmailアカウントのみがサポートされています。
データベースファイルには、すでに多くのサンプルデータとユーザーが含まれています。データベース内のほとんどのユーザーは、少数を除いてユーザー名と同じパスワードを持っています。アプリケーションを通じて管理者としてサインアップすることはできません。これは、それが搾取可能な弱点だと判断したからです。したがって、アカウントを作成し、データベースのusersテーブルに手動で移動して、そのアカウントのユーザーレベルを0から1に変更する必要があります。
0レベルは通常のユーザーを意味し、レベル1は管理者を意味します
すべてのサンプルアカウントを削除せずにすべてのサンプルデータを失うことなくアクセスする簡単な方法は、すべてのサンプルデータ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は、プロファイルの概要と、プロファイルとプロファイル編集ページへのリンクが提供されます。右上隅の作成者ボタンは、 KLiK Creators紹介するチームページへの顕著なリンクを提供します。
センター内の4つのタブインターフェイスは、 latest 、または最近作成されたForums 、 Blogs 、 Polls 、 Eventsへのアクセスを提供します。コンポーネントは、フォーラムの合計upvotes 、ブログのlikes 、投票のvotes 、イベントのdays remainingなど、それぞれの要素の個々の特性を示しています。さらに2つのボタンがあり、 KLiK Forums (フォーラムの中央インターフェイス)とKLiK Hub (ブログ、投票、イベント管理システムの中央インターフェイス)に送信されます。

Forum System :
Blog Management System :
Like (ユーザーはブログが好きであるか、そのようなものを削除することができます) Event Management System :
Poll Management System :

Klikは、完全なログイン/登録およびユーザープロファイルシステムをサポートしています。起動時に、アプリケーションには、メールでWebサイト管理者にログイン、サインアップ、または連絡するためのオプションが表示されます。各ユーザーは、後で変更できない一意のユーザー名を作成できます。ユーザーの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ナビゲーションバーの[設定]メニューのオプションからアクセスできます。より簡単に、ほとんどのページのアプリ画面の左上隅にあるユーザープロファイルカードのユーザーイメージをクリックすることでアクセスできます。プロファイルページには、ユーザー名、フルネーム、性別、見出し、バイオなどの基本的なユーザー情報が表示されます。それとは別に、ユーザーが作成したさまざまなForumsとBlogsを示しています。ユーザーが参加したPollsを示しています。ユーザーがそのいずれかを行っていないか、新しい場合、ページには「そのような空の」キャプションを持つかわいい小さなボンゴ猫が表示され、よりアクティブである必要があることを思い出させることができます:)
また、ユーザーがプロファイル情報を編集できるProfile Editing Systemもあります。ナビゲーションバーの設定メニューのそれぞれのオプションから、またはプロファイルカードのユーザープロファイル画像の横にある鉛筆アイコンをクリックするだけでアクセスできます。このシステムにより、ユーザーは、変更できないユーザー名を除き、ほとんどの情報を変更できます。すべてのフィールドにはすでに現在の情報があるため、ユーザーは現在の情報をわずかに編集したい場合にすべてを再度入力する必要はありません。ただし、パスワードは、より安全なインターフェイスを保持するための現在のパスワードを提供することによってのみ変更できます。

Klikには、他のユーザーとのリアルタイムチャットにPHPとAJAXを使用するチャットボックスもあります。左側のセクションは、現在Webサイト上のすべてのユーザーのリストですが、適切なチャット画面は、インゴのメッセージと発信メッセージを表示するためのものです。ユーザーは、ユーザーリストで自分をクリックすると、特定のユーザーとのチャットにアクセスでき、データベースからすべてのチャットメッセージを取得できます。 Ingoingおよび発信メッセージは、読みやすさを維持するために異なる方法でスタイルとなっています。チャットは、ページを継続的に更新する必要なく、リアルタイムで行われます。
考えられる改善:
optimization :チャットのすべてのメッセージは一度に取得されます。これにより、チャットが大きい場合は遅延が発生する可能性があります。これは、画面上に表示されるメッセージのみをロードするために、メッセージの増分負荷を実装することで修正できます。user search :検索機能をユーザーリストに実装して、特定のユーザーを直接検索して時間を節約できます。データベースに保存する前にPassword hashing 。
個別に作成されたencrypted tokensを介して送信されたパスワードリセットは、電子メールでリンクの形式として送信されます。トークンには特定の有効期限があり、その後使用できません。
header injectionを防ぐための$_GETおよび$_POSTメソッドから得られた情報のフィルタリング。
MySQLIの実装は、高度なデータベースセキュリティのための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ファイルは、Pespectivecss&jsディレクトリに存在します。_KLiK Creators folderの作成者ファイルのみが独自のCSSファイルを持っています。主なHTML構造化ファイルはHTML-head.phpおよびHTML-footer.phpで、インクルードフォルダーにも存在します
Laravelのような高度なフレームワークの統合Vue.jsを実装します。あなたが私の仕事が気に入ったら、リポジトリ主演のサポートを見せてください!それは私にとって大きな意味があり、すべてが求めています。
このプロジェクト全体が不可能だった素晴らしいチームに感謝します。プロファイルをチェックして、私たちのレポスに出演してください! :)
![]() | ![]() | ![]() | ![]() |
|---|---|---|---|
| MSAAD1999 | skamal16 | ウバイダシム | aitasadduq |