4

私はほとんどの機能を構築しましたが、今は立ち往生しています...

招待のみの登録システムを持つプライベート Web アプリケーションを作成しています。管理者ユーザーがユーザーに電子メールの招待状を送信し、ユーザーがリンクをクリックすると、電子メール アドレスにリンクされたアカウントを作成できるページに移動します。

フォームが送信され、検証エラーがなければ、データが初めてデータベースに挿入されます。招待テーブルの電子メール列は一意であるため、これはユーザーがアカウントを作成する権限を持っていることを確認するために必要なトークンです。

私が混乱している状況は、管理者ユーザーが同じメール アドレスに招待状を送信しようとしたときです。メールアドレス列は一意なので、SQL エラーが発生します。そのレコードをデータベースに挿入する前に、その電子メール アドレスをチェックする必要があるかどうか、または何をすべきかわかりません。

紛失したり、誤って削除したメールの再送信招待機能を作成したい。これが、管理者ユーザーが同じ人に重複した電子メールを送信できるようにしたくない理由です。むしろ、再送信機能を使用する必要があります。

これがすべて理にかなっていることを願っています。任意の洞察をいただければ幸いです。

4

5 に答える 5

3

紙とペンを使って、本当に欲しいものを視覚化します。流れが明確であれば、あなたはそれを作ることができると思います ;)

于 2009-10-28T08:54:02.007 に答える
1

フォーム内でバリデーターを使用するので、メールアドレスはすでに保存されているメールと照合されます。したがって、重複するエントリがあってはなりません。また、入力したすべてのアカウントと、作成時間とアクティブ化時間を素敵なテーブルに一覧表示するアクションを実装します。もちろん、アクションとビューはページ付けをサポートするため、データを簡単にナビゲートできます。エントリがまだアクティブ化されていない場合は、この特別なエントリの電子メールの再送信アクションへのリンク(おそらくアイコンも)があるはずです。また、まだアクティブ化されていないすべてのエントリに電子メールを再送信する別のアクションが便利です。最後になりましたが、レポートアクションを実装して、何が起こっているのかを簡単に把握できるようにします。

于 2009-11-05T18:37:51.633 に答える
1

挿入を試みる前に、そのアドレスがデータベースに既に存在するかどうかを確認するチェックを必ず追加します。例外をトラップすることもできますが、電子メール アドレスの存在を明示的にテストすることをお勧めします。

あなたへのアイデア... 電子メール アドレスが既に存在する場合、システムに招待状を再送信させることができます。そうすれば、追加の「招待の再送信」関数を記述する必要がないため、コードの繰り返しを減らすことができる場合があります。最初の招待リクエストで同じ「招待を送信」機能を呼び出すか、他の人が説明した「招待を再送信」リンクを呼び出すだけです。

また、他の人が「招待の再送信」、特に philipnorton42 の実装について既に言及しているというアイデアも気に入っています。

于 2009-10-29T17:36:12.693 に答える
0

うーん、招待を再送信するためのボタンを使用して、すべての「アクティベーション」が表示されるビューを作成しますか? データベース内のレコードを変更せずに。

于 2009-10-28T11:15:36.847 に答える
0

Valter が正しいと思います。おそらく、達成したいことを引き出す必要があります。

ただし、管理者がクリックして招待を再送信できる「招待を再送信」ボタンのすべての情報が配置されているようです (私が知る限り)。バックエンドでいくつかのレポートを作成し、送信された招待状、ユーザーに変換された招待状、およびまだ回答されていない招待状を表示できるようにします。個々の招待状を再送信するボタンをまだ回答していないレポートに追加することは、それほど難しいことではありません。

于 2009-10-28T09:18:39.620 に答える