0

PHPを使って登録フォームとログインフォームを作りました。登録フォームはユーザーの情報をデータベースに保存します。

しかし、私はPHPにかなり慣れていないので、これを実現したいと考えています。私はまた、電子商取引ウェブサイトのテンプレート/テーマ全体を作成しましたが、入り口ページとしてこの登録フォームを作成し、アクセスを許可すると、電子商取引ウェブサイトのコンテンツ全体を表示できるようにしたいと考えています.登録フォームのフィールドを渡されたときにアクセスを許可すると言って、パスワードを送信するまでウェブサイトにアクセスすることはできません。それを守るためにすることは?登録フォームにコードを追加する必要があるということですか? ログインフォームまたはテンプレート/テーマで?

ありがとう!

4

4 に答える 4

3

$_SESSION 変数を使用してみてください。たとえば、最初は false である $_SESSION['loggedIN'] 変数を作成します。ページは常にその変数を検証して、コンテンツへのアクセスを許可または拒否します。

ログインフォームもあると思いますよね?

したがって、ログイン フォーム アクションで許可されると、アクセス ($_SESSION['loggedIN']=TRUE) のみが許可されます。もちろん、すべての検証とデータベース アクセス プロセスがありますが、それは問題を解決するための単純なアイデアです。

于 2012-07-24T16:11:50.230 に答える
2

登録プロセスを追跡する必要があります。たとえば、追跡します

  • メールはユーザーに送信されましたか?
  • 電子メールがユーザーに送信されたのはいつですか?
  • ユーザーは登録を確認しましたか?

次に、列の値verified=(boolean)をメインの users テーブルに設定して、ユーザーが検証されているかどうかをクエリで確認し、ログインに成功した後にセッションを使用してデータを保存しますsession_start()。アクセスを制限したり、コンテンツの表示を無効にしたりするには、単純な IF を作成する必要があります。

    if(USER_HAS_ROLE){
     // display_content 
    }else{
     // don't display content
    }
    //----------------
    if(USER_IS_LOGGED_IN){
     // access website
    }else{
     // redirect to login page
    }
于 2012-07-24T16:17:43.143 に答える
2

ログインページにコードを追加する必要があります。コードは次を処理する必要があります。

  1. $_SESSION[] を作成
  2. $_COOKIE[] を作成
  3. セッションと Cookie が偽造されていないことを知るための秘密の方法 (データベース) を作成します。

ログインしている方のみにアクセスを制限したり、

$_SESSION、$_COOKIE を秘密の方法 (データベース) に対して確認します。

于 2012-07-24T16:15:54.270 に答える
0

言及されていないように思われることの 1 つは、ユーザーのブラウザーが Location: ヘッダーを無視した場合に備えて、header() リダイレクトの後にセッションの loggedIn 変数が false の場合、スクリプトは die() する必要があるということです。

于 2012-07-24T19:37:09.340 に答える