2011-10-25 13 views
1

私はグーグルセッション変数です。私が理解しているように、私はそれらを使用してユーザー名やその他のデータを取得することができます。PHPセッションを使用して基本ACLを実装するにはどうすればよいですか?

特定のフィールドのレコードを変更する最後のユーザーのユーザー名を格納するために、データを使用したいと考えています。さらに、私は、特定のユーザーがサイト上で見るものを制限できるようにしたいと考えています。たとえば、ユーザーが作業指示書を生成した場合、そのユーザーは自分が作成した作業指示書だけを表示するように制限し、他のユーザーは表示しないようにしたいと考えています。

私はこのすべてで非常に新しいですし、私はあなたが私のために修正するかもしれないいくつかのコードを書くために十分な理解を持っていません。セッション変数に格納されたデータを$ _GETまたは$ _POSTとしてどのように送ることができますか?私がそのフォーマットでそれを持っていれば、私はそれをクエリに使うことができます(私は思っています)。

  1. "work_orders"という名前のテーブルには、 "updated_by"というフィールドがあります。レコードを更新した最後の人のIDを保存したいと思っています。
  2. 作業オーダーに権限を追加して、ユーザーが特定のユーザーによって作成されたレコードのみを表示できるようにすることもできます。

これは私の最初の年のWebデザインクラスで取り組んだプロジェクトです。授業では、他人の仕事にどのくらいのダメージを与えることが面白いと思う学生がいます。これは、私がそれらを生成する作業指示にのみアクセスできるようにするためです。

+0

あなたが特定の問題と解決策を探している間、あなたが試した、おそらくいくつかのコードを与えた場合、それは本当にあなたの質問に答えるに役立つだろう。あなたが書いた質問は非常に幅広く、答えるのが難しいです。 –

+0

申し訳ありません。より具体的に質問を編集します。返信いただきありがとうございます。 – Spud

答えて

0

ここで質問を混同しているようです。

まず、データベースはどこですか?たとえば、MySQlの場合は、作業オーダーテーブルに余分な列を追加する必要があります(個人的に、私はポーポイズを監査するためにタイムスタンプ列を追加します)。

私はPOSTよりもGETを優先します。なぜなら、1)より多くのデータを保持できるし、2)ユーザーが改ざんするのは簡単ではないからです。

だから、あなたが入力フィールドを持つフォームを持っている場合は、宣言

<form> 

名:

http://www.w3schools.com/html/html_forms.aspを参照してください)あなたがアクセスできる

$_POST['user_name']例えば
$sql = 'INSERT INTO work_order_table (user_name, ... <other column names>) VALUES($_POST['user_name'], .. <other values>)

私は良い本を手に入れることをお勧めします(安い秒)またはオンラインチュートリアルとあなたの方法を使用していた。

私が何かを逃したのか何かが明確でない場合は、私に知らせてください。がんばろう!


あなたdatbase

1にねじ込む学校の子供たちについてconcerendあるので)
2 MySQLをより安全にする方法については、グーグル)これはprepared staments
3が参加するヒントは)POSTを使うのではなく、あなたは、おそらく多くの学校レベルでのSQLインジェクションよりも危険性の(「ただ何が起こるかを見るために」http://192.1.68.1.1/applicationではなく、ユーザーがURLの周りマックする誘惑http://192.1.68.1.1/application?user=smithのようなURLを持つように、取得、しかし...あなたは
を知っていることはありません4)は、そのためにlibbraryを打つ完全な馬鹿の初心者のための24時間でダミーのためO'ReillyのPHP &のMySQLのようなhign - または神のオンラインチュートリアル
5を見つける。)READ「私は、彼らが発生しただけで作業指示を表示するには、その特定のユーザーを制限できるようにしたいと思います」 WHERE in SQL SELECT
6)MySqlのルートパスワードを変更するか、ルートのようなアクセス権を持つ新しいユーザーを追加してルートを削除する
7)生徒はサーバーにアクセスできないようにしてくださいあなたのMySqlユーザーに連絡してください&パスワード

+1

お返事ありがとうございます。データベースは、テーブルwork_ordersを持つMySQLです。私はそのテーブルに、最後の人のユーザー名を格納してデータを更新するフィールドを持っています。フィールド名はuserloginです。また、私は、その特定のユーザを生成した作業指示のみを表示するように制限したいと考えています。これは私が最初の年のウェブデザインに登録している学校プロジェクトのためのものです。クラスルームのデータを格納するために使用されます。そこには他の人の仕事をうんざりする人がいるので、私はできる限り多くの制限を設けようとしています。質問を編集してより明確にします。 feedback – Spud

+0

+1に感謝します。これは学校向けのものなので、誰もあなたにコードを渡すことはありません。実際には、あまりにも一般的な宿題に関する質問をすると、質問は閉じられる傾向があります。ここで人々が好きなのは、これまでの作業を示し、特定の問題について特定の質問をすることです。しかし...私は私の答えMySQLを確保にする方法について少し – Mawg

+0

1)グーグル(あなたはありがとう – Mawg

0

セッション変数の使用方法と使用方法を理解するのに役立つビデオチュートリアルを読んだり、見たりしてみてください。セッションに保存するデータは永遠に残ることはないので、ほとんどの情報をデータベースに保存する必要があります。アプリケーションにユーザーがサインしたら、セッションにユーザーIDを入れて:ここで

は、ほとんどの人が何をすべきかです。この方法で、あなたは彼らが誰であるかを知っています。サーバーはクッキーを使用してこの魔法を実行します。ユーザーがブラウザーを閉じると、サーバーはユーザーを忘れてセッションデータが失われます。したがって、この例では、セッションはユーザーの身元を追跡しています。

最後のフィールドを編集した人についての情報を格納するために、あなたはおそらく、その情報を格納するデータベースを使用したいと思うでしょう。セッション変数にその情報を格納することはありません。

関連する問題