簡體   English   中英

網址上的驗證電子郵件

[英]Validation email on url

我創建了一個由時事通訊電子郵件發送的調查,基本上,該應用會根據用戶的電子郵件記錄用戶數據,如果該路徑中不存在該電子郵件則無法填寫調查,但是我不確定是否即時消息以正確的方式進行操作並出於安全目的,也許我應該對電子郵件進行某種形式的驗證。 有人可以建議我什么是最佳實踐,或者我做的方式已經不錯了!

用戶輸入的網址如下:

http://domain.com/surveys/23/email@hotmail.com/show

這是我的代碼:

路線:

Route::get('surveys/{id}/{email}/show/', 'SurveyController@show');

控制器:

public function show($id,$email)
    {

        $survey = Survey::find($id);
        $email = $email;

        return view('admin.surveys.show', compact('survey','email'));
    }

視圖:

Html
...

@if(!empty($email))
show the survey form

@else
A message saying is not possibile fill without a email
@endif

注意:調查完全是新聞通訊系統的一部分,它們之間不能有任何形式的集成。

當然,您應該驗證是否提供了電子郵件。 在控制器中,您應該這樣做:

$this->validate($request, [
    'email' => 'required|email|exists:users,email',
]);

上面的示例將確保是否提供了電子郵件(必需),如果該電子郵件實際上是電子郵件,並且是否存在於數據庫中(表用戶,列電子郵件)。

您可以在文檔中閱讀有關此內容的更多信息。 在此頁面上,如果我錯過了可以使用的規則,還可以檢查所有可用規則。

編輯:請也記得添加“ Request $ request”作為方法參數,如下所示:

public function show(Request $request, $id,$email) {...}

關於Larans建議也要插入Request。也許在show方法中不需要它。 如果您覺得它與您的代碼混亂,則可以將其注入構造函數中。

private $request;

public function __construct(Request $request)
        {
            $this->request = $request;
        }

然后在show方法中進行驗證,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM