認証の必要なコンテンツを表示するプログラムを作ってください。
ただし、http認証は用いず、フォームによる認証を用いるものとします。ユーザを少なくとも2人認証できることを条件とします。パスワードを入れ直すことなく、2種類の画面を遷移出来るものとする。
なんとなく作ってみましたが、この後どうすればいいのかよくわかりません。
<?php
$passlist=array( 'hogehoge' => 'hogepass', 'hoge2' => 'hoge2pass');
if (!isset($_POST['user']))
{
echo_auth_page("ログイン");
exit;
}
$user=$_POST['user'];
$pass=$_POST['pass'];
if ( (!isset($passlist[$user])) || $passlist[$user] != $pass)
{
echo_auth_page("パスワードが違います");
exit;
}
echo_hello_page($user);
////////////////////////////////////////////////////////////////////////
function echo_auth_page($msg)
{
echo <<<EOT
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>ページタイトル</title>
</head>
<body>
$msg
<form method="POST" action="sample.php">
username <input type="text" name="user" value=""><br>
password <input type="password" name="pass" value=""><br>
<button type="submit" name="login" value="login">Login</button>
</form>
</body>
</html>
EOT;
}
////////////////////////////////////////////////////////////////////////
function echo_hello_page($who)
{
echo <<<EOT
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>ページタイトル</title>
</head>
<body>
こんにちは $who さん
</body>
</html>
EOT;
}
?>
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
> パスワードを入れ直すことなく、2種類の画面を遷移出来る
"認証できた" という状態を保存するために、
セッション や SSO などの仕組みを導入しましょう。
参考) PHP のセッション機能
https://www.php.net/manual/ja/session.examples.b …
セッションで認証済と確認できたら、パスワードは必要ありません。
確認できないならパスワード認証を行って、認証済であるとセッションに状態を保存しましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP PHPプログラムの間違い 1 2022/10/06 14:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
前後の全角スペースを削除する...
-
phpでfopen()やfputs()が使えない
-
日付と年月日を選択するコード...
-
phpの画面表示が真っ白です
-
PHPの勉強中の初心者です。
-
CSSの画像をPHPで毎月自動で変...
-
PHP(smarty)についての質問(文...
-
フォントの色を変えるには?
-
PHPのWARNINGをcatchするには
-
onedrive にexcelファイルをア...
-
PHP8を使うと、大量のWarningが...
-
バッチを用いたフォルダの自動移動
-
CSV出力にHTMLが入ってしまう
-
「クラス関数」「メンバ関数」...
-
index.phpって何ですか? 具体...
-
現在位置より2つ上のディレク...
-
透過PNGが透過されない!!
-
PHP 文字列を代入した配列を変...
-
PHPのif文でその処理を途中で抜...
-
$_SESSION 有効期限をブラウザ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日付と年月日を選択するコード...
-
htmlのエラーについて(デバッグ)
-
文字コードの出力を変更したい
-
文字化けについて
-
前後の全角スペースを削除する...
-
XAMPP1.7.1上でPHPを実行すると...
-
php エラー
-
パスワード認証ページ作りたい...
-
PHP(smarty)についての質問(文...
-
ここでの ②if($su_d<>"")の比較...
-
phpの画面表示が真っ白です
-
mb_convert_variablesで変換出...
-
どうしたら確認ができますか!?
-
html内のphpスクリプトについて
-
機種依存文字の文字化けについて
-
エラー Warning: Cannot modif...
-
【PHP?】header("location : ...
-
javascriptからphpへ変数
-
ローカル環境で動くのに本番環...
-
PEARのXML/Unserializer.phpが...
おすすめ情報