0

一部のWebサイトをログインでブロックする必要があります。Web上のあらゆる場所にあるログインフォームを使用しました(ログイン後のホームページへのリダイレクトphpを参照) 。

いくつかの要素を更新しました($ _SESSIONなどを使用)

だから私のログインページはindex.htmlです

入れました

<?php
session_start();
if(!$_SESSION['username'] = $username){
header("location:index.html");
}
?>

このファイルのlogin_success.phpファイルの先頭で、Webサイトの他のすべてのページにアクセスできます。

私の質問は今です:

ウェブサイトのすべてのページの先頭に「session_start()など」を配置する必要がありますか?

そして、すべてのページに.htmではなく.phpが必要ですか?

(私は.htmを保持しようとしましたが、ページの名前を知っていれば、ログインしなくてもページにアクセスできます)

Webサイトのログイン保護のためのより良いスクリプトを知っている場合は、できればphpで知らせてください。

助けてくれてありがとう。

4

6 に答える 6

1

はい、あなたはあなたのウェブサイトのすべてのページの始めに「session_start()など」 を置く必要があります

はい、すべてのページに.php拡張子が必要です

于 2012-06-18T10:48:27.027 に答える
1

うん、あなたはすべてのページにそれを持っている必要があります。

すべてのページは.phpである必要があります。

一般的なアプローチは、session_start()を持つ'config.php'を持つことです。およびその他の構成/共通のもの。

したがって、ページは次のようになります。

<?php

include('config.php');

?>

一般に、すべてを.phpとして使用する方がクリーンであり、htmlファイルの拡張子を変更してもあまり影響はありません。必要に応じて、自分がphpであることを他のページに紹介できるようになります。

于 2012-06-18T10:49:37.410 に答える
1

はい、すべてのページにそのコードを配置する必要があります。あなたはそれをファイルに入れて、ログインを必要とする他のすべてのファイルにそれを含めることができます。

if条件部分に間違ったコードがあるため、すべてのページにアクセスできます。比較するのではなく、セッション変数に値を割り当てます。

次のコードを使用します。

<?php
session_start();
if($_SESSION['username'] != $username){
header("location:index.html");
}
?>

念のため、header()の前に出力をエコーし​​てはならないことを忘れないでください

于 2012-06-18T10:56:24.170 に答える
0

このスクリプトを入れてください:

<?php
session_start();
if($_SESSION['username'] != $username){
header("location:/index.php");
die("you should be login")
}
?>

check.phpと呼ばれるphpファイル内

公開されていない各ページにこれを追加します:

<?php
include_once("check.php");
?>
<html>
.....
于 2012-06-18T10:48:34.140 に答える
0

私の2セント:

  • ユーザーがログインするときにCookieを設定します。
  • htmlを生成するすべてのphpファイルには、ユーザーがすでにログインしているかどうかを確認するための関数check_loginなどが必要です-ログインしている場合は、ログインページにリダイレクトされない場合はページを生成します。

他のページにリダイレクトするには、<? header("location: http://.........."); ?>

于 2012-06-18T10:49:00.317 に答える
0

より良い解決策は、単一のindex.php(またはstartup.phpなど)を使用してページ要求を処理するフレームワークを使用することです。次に、ページ要求が処理される前に、これ内で1回だけ行う必要がstart_session()あります...check_login()index.php

于 2012-06-18T11:34:31.410 に答える