私は、人の名前とリクエストしたタイムスタンプを含む変数の配列を含む電子メールを送信するコントローラを手に入れました。電子メールはhtmlファイルを送信し、htmlファイルには「ここをクリックしてbla bla blaを削除します」というメッセージが表示されます。ライン。ユーザーがリンクをクリックすると、そのリンクがコントローラに送信され、コントローラから自分の名前がデータベースから削除されます。電子メールに自分の「退会」ボタンを作るにはどうすればいいですか?
今、私はこれをどうやってやろうとしているのかよく分かりません。
Click <a href='https://xxx.xx.xxx.xxx:8000/web/misc/request/delete/<?php echo $data['timestamp']; ?>/<?php echo $data['name']; ?>'> here</a> to delete bla bla bla.
その後、私のルーティングファイルで、私が持っているでしょう:このような何か私は明らかにでき
Route::get('/web/misc/request/delete/{time}/{name}', '[email protected]');
をそれから私はちょうど名前とタイムスタンプ、およびヴィオラと私のデータベースを照会することができます、削除します。
しかし、誰かが簡単にURLの名前やタイムスタンプを編集することはできますか?
これで私はPOSTを使いたいと思っていましたが、このシナリオでどのようにしたらいいのか分かりません。フォームを作成し、いくつかの入力を非表示に設定し、名前とタイムスタンプをそれらの入力値に格納することができます。私はかなりハッキリと聞こえるので、まだ試していない。 セッションを使用してもこの場合はうまくいかないでしょうか? これはクッキーを使用するのに良い時期でしょうか?または、ある種の鍵を使うべきですか?
ユーザーごとのURLに一意のIDが含まれていますが、これは推測するのは不可能または不可能です。または、登録解除の確認メールを送信します。 – deceze
あなたが送信しようとしている電子メールごとに、一意のIDまたはGUIDを作成し、それをあなたのデータベースに入れ、それをURLに添付して、そのエントリをデータベースに照会します。非常にありそうもなく、彼らはランダムにguidを変更し、別のエントリと一致します。 – Chris
私はエキスパートではありませんが、各電子メールアドレスにランダムな文字列を格納する方法と、削除するときにその文字列がURLによって正しく提供されているかどうかを確認する方法はありますか? – lucidbrot