会社の従業員(約20人)がログインして、現在および過去(必要な場合)の月の勤務スケジュールを入力できるWebサイトを構築するように依頼されました。もちろん、従業員は自分のスケジュールしか見ることができないはずですが、マネージャーはすべてのスケジュールにアクセスする権限を持っている必要があります。私はウェブ開発の経験がほとんどないので、アドバイスが必要です。私はすでにPHP/MySqlログインページを作成しました。それで?どうすればいいですか?いくつかのアーキテクチャまたは実装(必要な場合)のガイダンスをいただければ幸いです。
3 に答える
いくつかの間違いを避けるために、この方法でcakephpやsymfonyのようなフレームワークを選択することをお勧めします。自分で作成したい場合
まず、ニーズを満たすデータベースアーキテクチャを決定します。
phpオブジェクトとして各テーブルのクラッド機能を作成しようとするよりも。
これでうまくいくと思います
私は、従業員がログインして関連する会社の指標を表示できる、会社の内部ダッシュボードの設計に深く関わっていました。フレームワークとしてCodeIgniterを使用しましたが、非常にうまく機能しました。これは、MySQLを使用するPHPフレームワークであり、すでにPHPとMySQLの両方がサーバーにインストールされています。それは数年前であり、最新かつ最高の流行のフレームワークよりも確立されているため、私たちの会社にはすでにそれを経験した人が数人いました。開発へのMVCアプローチにより、見事に機能しました。GroceryCRUDを使用して家庭料理のデータベースに添付しました。ユーザー認証、セッション、およびセキュリティを処理するプラグインがあります。私たちはそれで非常に生産的であり、私は強くお勧めします。このフレームワークは、非常にカスタマイズ可能なものを作成したい開発者向けに設計されていることに注意してください。そうは言っても、それはあなたが必要とする基本的なものを提供しますが、あなたがより高いレベルのものをあなた自身で扱うことを可能にします。
実際の制約を満たすようにデータベースを設計する必要があります。MySQLを使用すると、ユーザーとその位置を反映するリレーショナルデータベースを作成できます。最初にERダイアグラムを作成して、会社の幹部が制約を視覚化し、データベースを介してビジネスをモデル化する方法を支援し、設計段階での議論に参加できるようにしました。
私はPHP/Mysqlでこれに似たアプリケーションを構築しましたが、Railsのようなものは使用が速く、マイクロ管理が少なくて済むかもしれませんが、それはそれに適したプラットフォームであると言えます。Wisdomが言うように、フレームワークを使用して、うんざりする作業の一部を切り取り、適切なセキュリティ慣行を遵守していることを確認します。
あなたが必要とするいくつかのことが頭に浮かびます。
- データベース構造がどのようになるかについての明確さ。次のことを特定してください。a)保存する必要のあるすべての情報(ユーザーの名前?ログイン情報?他のユーザーのエントリを表示するための「権限」レベル?)、b)どのテーブルに入ることができるか(「名前を付けることができる」 「作業時間」と「作業時間」は同じテーブルに表示されますか?分析レベルが異なる場合は、異なるテーブルに配置する必要がありますか?これらの2つの情報は何らかの形で接続されていますか?その場合、その接続をどのように表現する必要がありますか?)リレーショナル設計はあなたの友人、特にあなたが後で改訂されるかもしれない何かを構築しているなら。それが何であるかを理解するために時間をかけてください。
- さまざまな「タイプ」のアクティビティのページ(ビュー)から始めるとよいでしょう。したがって、「スケジュールを表示する」ページがあり、「時間エントリを追加する」ページと「その時間エントリを編集する」ページへのリンクがあります。私の経験では、「表示」ページのコードをできるだけ小さく、読みやすくするように努めることで、コード構造をより適切に計画することができます。
クエリ文字列に挿入する値はすべてサニタイズする必要があります。したがって、値を検索または選択するクエリでは、常に「クリーニング」構造でフィルタリングされたPHP変数を使用する必要があります。
$ query = sprintf( "SELECT * FROM table1 WHERE識別子=%s"、mysql_real_escape_string($ id));
それよりも:
$ query = "SELECT * FROM table1WHERE識別子="。$id
ユーザーがオンラインで検索フィールドまたは挿入フィールドに入力するテキストは、クエリに含まれる場合、クエリの一部として実行される可能性があるためです。ハッカーはこれを使用して、他のセキュリティ機能を役に立たなくする可能性があります。