2016-07-20 24 views
0

システムのユーザログインが可能なサイトで作業しています。 。これらは通常の場合には PHP URLリダイレクト

  • ログインしていない場合は、すべてのユーザーがデフォルトでhttps://www.example.com/homeにリダイレクトするログインに成功した場合

    • ユーザーAは、https://www.example.com/loginにリダイレクトされます。そして、私は以下のいくつかのシナリオに直面しています。ユーザーAがすでにログインしている場合

    ログインしていないか、ユーザーAは、電子メールにリダイレクトされる場合、Aは、電子メールのリンク(https://www.example.com/user/1)をクリックし、ユーザーは、ユーザーAは、ログインページにリダイレクトされます言わせた場合

  • は、URLをクリックしましたここでの質問は、デフォルトで https://www.example.com/homeではなく、ログイン成功後にユーザーAを電子メールでクリックされたURLにリダイレクトする方法です。

    私が間違っている場合は私を修正してください。

    +1

    ユーザーをログインにリダイレクトする前に、現在のURLをセッションに保存してください。成功したログイン後にそこからリダイレクトしてください。 – CBroe

    答えて

    1

    それを達成するための2つのアプローチがあります。

    1. GETリクエストでデータを送信:私はちょうどwww.example.comにGET情報を送信、多くの(大)のウェブサイトはそれをやっている見ます/ home、そのように見えるとしましょう:www.example.com/home?redirect=email、あなたはあなたが望むいくつの変数を送ることができます。また、より安全でユーザにとって読みにくくするためにハッシュを使うこともできます。この小さな問題のユーザーのためにSESSIONを作成してください。

    2.保存SESSIONに要求:ユーザがログインしていない場合は、使用している場合($_SESSIONを介して、または他の方法によって/homeにそのセッション変数を取得し、その後、リダイレクトするための所望の位置とのセッションを作成しますLaravelのようなフレームワーク)。

    私はアプローチ1で行くことをお勧めします、それは非常に一般的です。 私がそれがアプローチ2よりも優れていると思う理由は、このタスクがセッションのためではないからです。