• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPでhome以外のページのアクセス制限)

PHPでhome以外のページのアクセス制限

このQ&Aのポイント
  • PHPを使用して、ユーザーがhome以外のページにアクセスできないようにする方法について教えてください。
  • index.phpファイルにはheader.phpとfooter.phpがあり、ユーザーがログインしていない場合には、ユーザーがhome以外のページにアクセスできないようにしたいです。
  • しかし、この設計では「unexpected $end」というエラーが発生してしまいます。index.phpを直接開くと、header.phpとfooter.phpが正しくまとめられないためです。どのように解決すればいいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

if ( ログインしていない ) { header( 'location index.php?error' ); } 自分の場合はこうしています。

2B2B
質問者

お礼

ありがとうございます。参考になりました。今後とも宜しくお願いします。

その他の回答 (4)

回答No.4

ですからー 中略になっている部分に文法エラーがあると、エラーになるって言うことでしょう?

2B2B
質問者

お礼

いつもお返事いただいてありがとうございます。 header.phpをコメントにすれば、エラーがなくなるから、その中略の部分がエラーの原因ではないそうです。ですが、単独でheader.phpを使う訳でもないのに、どうしてheader.phpファイル自体でその括弧を閉じなければエラーになるのは、本当にミステリー...

2B2B
質問者

補足

追加: header.php / index.php /footer.php の内容をすべてコピーして単一のファイルに入れるとエラーがなくなるので、問題の原因は文法エラーではなくて、他にあるんじゃないかと思います。もしこのようにindex.php(中略の部分)を括弧に入れられないのなら、どうやってアクセスを制限できるのか別の方法を教えていただいたら助かります。

回答No.3

それなら書かれている部分以外の部分でしょう? 単純な文法エラーなのですから。

2B2B
質問者

お礼

header.phpの終りに }} ?>のように記述すればエラーがなくなりますが、その //....(中略) という部分はif文の対象にはなりません。その部分をif文の括弧の間に入れたいのです。異なる3つだからそういうエラーになるかな?

回答No.2

footerにある’}’がひとつ多い。

2B2B
質問者

お礼

回答狩りが問うございます。’}’を一つ抜いても動作しません。 けど二つで合ってるんじゃない? ひとつめはelse{を閉じて、二つ目は親ifであるif(!isset($_SESSION['app']['username']) || $_SESSION['app']['username']==''){を閉じます。 何が問題なのかな

回答No.1

ただの文法エラーです。 else 以降の括弧が閉じられていません。

2B2B
質問者

お礼

ご回答ありがとうございます。 header.phpファイルの終わりに括弧を閉じればエラーを表示しませんが コード(index.php) require('header.php'); //....(中略) require('footer.php); の「中略」の部分を括弧に入れたいのでheader.phpで閉じたくなくて、footer.phpで、header.phpが開いた括弧を閉じたいのです。つもり、if文の条件が満たされるなら、「中略」の部分を表示します。そうでなければ表示しません。 ほかに方法がないでしょうか?

関連するQ&A