質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1128閲覧

PHP 簡易ログイン機能後のページについて

jly517

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2021/09/03 03:19

編集2021/09/03 05:17

前提・実現したいこと

このページのコード http://keylopment.com/faq/1197/
を参考にしてログインシステムを作成しておりますが、ログイン後の他のページを作成したいのですがどのようにすればよいでしょうか?
例えば、example.jp/index.phpが以下のとおりで、example.jp/about/index.phpを作成したい時に、どのようにしたらよいかわかりません。

index.phpのソースコード

<?php session_start(); $message = ''; $user = 'ユーザー名の文字列'; $password = 'パスワードをMD5に変換した文字列'; if(isset($_POST['login'])){ if ($_POST['user'] == $user && md5($_POST['password']) == $password){ $_SESSION["LOGIN"] = 'ON'; $message = 'ログインしました。'; } else{ $message = 'ユーザー名かパスワードが間違っています。'; } } if( !empty( $_SESSION['LOGIN'] ) && $_SESSION['LOGIN'] == "ON" ): $message = 'ログインしています。'; endif; if(isset($_POST['logout'])){ if( !empty( $_SESSION['LOGIN'] ) && $_SESSION['LOGIN'] == "ON" ): session_destroy(); session_start(); $message = 'ログアウトしました。'; endif; } ?> <!DOCTYPE html> <html> <head> <title>ログイン認証</title> </head> <body> <h1>ログイン認証</h1> <?php if( !empty( $_SESSION["LOGIN"] ) && $_SESSION["LOGIN"] == "ON" ): ?> <div class="section"> <p style="color: red;"><?php echo $message; ?></p> <form method="post" action="./"> <input type="submit" name="logout" value="ログアウトする"> </form> </div> <?php else: ?> <div class="section"> <p style="color: red;"><?php echo $message; ?></p> <form method="post" action="./"> <label for="user">ユーザー名</label> <input id="user" type="text" name="user"> <br> <label for="password">パスワード</label> <input id="password" type="password" name="password"> <br> <input type="submit" name="login" value="ログイン"> </form> </div> <?php endif; ?> </body> </html> ```PHP ソースコード ```

example.jp/about/index.phpに試したこと

body直下に

<?php session_start(); if(!isset($_SESSION["user_name"])) { $no_login_url = "index.php"; header("Location: {$no_login_url}"); exit; } ?>

とつけましたがエラーになります。
PHPは勉強初めたばかりでよくわからないのですみません。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AbeTakashi

2021/09/03 03:41

「エラーになる」とありますが、そのようなエラーが出ているのでしょうか? エラーログにエラーの原因が書いてあるので、まずはエラーの原因を見てください。エラーの内容を見ても分からないのであれば質問文に追記してください。あと、コードはmarkdownを使って整形した形で表示されるようにしてください。 参考) https://teratail.com/help/question-tips#questionTips3-7 「コード」を使えば整形されます これ以外も含めて質問方法について詳しく書いてあるので、一度読まれるといいと思います。現状では情報が足りなくて回答が付きにくいかな?と思います。
m.ts10806

2021/09/03 04:07

>ログイン後の他のページを作成したいのですがどのようにすればよいでしょうか? なんとなくでも設計されたほうが良いと思います。 何も考えないまま、まとめないまま作れるものではないです。 どんなページにしたいのかを持っているのはあくまであなたです。
jly517

2021/09/03 06:19

Abe様、m.ts10806様、コメントありがとうございます。投稿方法がちゃんとしてなくすみません。まずは動きましたので、解決済みにしました。
m.ts10806

2021/09/03 06:31 編集

質問は編集できますので指摘内容は対応しておいてくださいか(特にコードのマークダウン)。 あと、「とりあえず動けば良い」だけだと後で大事故になりますし、さらに「なぜかわからないけど」だと、自身では何も理解してないということになります。 プログラムは書いたとおりにしか動かないので、動くには動くなりの動かないには動かないなりの確固たる理由があります。 まずは自身が書いたコードを説明できるようになりましょう。そこからがスタートです。
guest

回答1

0

自己解決

正解かわかりませんが、下記でどおりに動きました。

PHP

1<body> 2<?php 3session_start(); 4 5if(isset($_SESSION["user_name"])) { 6$no_login_url = "../"; 7header("Location: {$no_login_url}"); 8exit; 9} 10?> 11 <?php 12if( !empty( $_SESSION["LOGIN"] ) && $_SESSION["LOGIN"] == "ON" ): 13?> 14<main> 15コンテンツ(省略) 16</main> 17 <?php 18else: 19?> 20<?php 21session_start(); 22 23if(!isset($_SESSION["user_name"])) { 24$no_login_url = "../"; 25header("Location: {$no_login_url}"); 26exit; 27} 28?> 29 30<?php 31endif; 32?> 33<footer> 34省略

投稿2021/09/03 06:16

jly517

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ockeghem

2021/09/03 06:24

$_SESSION["user_name"] は設定されることがないのに、それを参照しているのは明らかにおかしいです。動けばよいというものではありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問