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

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

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

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

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

解決済

3回答

2489閲覧

PHPでログインの保持、自動ログイン機能の追加方法について

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

0クリップ

投稿2020/07/09 01:34

編集2020/07/09 02:32

前提・実現したいこと

PHPを1か月前に始めたばかりの初心者です。
PHPを使用しログイン画面を作成中です。ログイン画面はできたのですが、
さらにログイン後、再度別ページで開いてもログイン画面になるようにしたく、検索した結果cookieを使うと自動ログインができるようで、Cookiyeに値を保存して自動ログインができることを確認したいのですがうまく動きません。

該当のソースコード

cookie記述していない文です。

PHP

1<?php 2//セッション開始 3session_start(); 4//変数の中を空にしている。 5$error_message = ""; 6//isset関数で変数に値が入っているかチェックする関数。かつNULLではないときTRUEを返す。入力フォームの入力の有無や、チェックボックスのチェックに使う。 7//確認ボタンが押されていれば 8if(isset($_POST["login"])) { 9 //$_POSTの値をsessionに格納 10 if($_POST["user_name"] == "id" && $_POST["password"] == "pass") { 11 $_SESSION["user_name"] = $_POST["user_name"]; 12 echo 'ログインに成功しました。<br />'; 13 echo 'ようこそ!'.$_POST["user_name"],'さん'; 14 exit; 15 }else{ 16 echo 'ログインに失敗しました。'; 17 } 18} 19?> 20<!doctype html> 21<html lang="ja"> 22<head> 23 <meta charset="UTF-8" /> 24</head> 25<body> 26 <form action="sess.php" method="POST"> 27 <p>ログインID:<input type="text" name="user_name"></p> 28 <p>パスワード:<input type="password" name="password"></p> 29 <input type="submit" name="login" value="ログイン"> 30 </form> 31</body> 32</html>

試したこと

初めにCookieを保持していなければログイン画面に。
持っていれば
echo 'ログインに成功しました。<br />';
echo 'ようこそ!'.$_POST["user_name"],'さん';
を出力しようとしましたがうまくいかず、、
ここからのcookieの実装についてアドバイスなどご教示いただけたらと思います。。

補足情報(FW/ツールのバージョンなど)

XAMPPで実施しています。

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

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

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

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

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

guest

回答3

0

ベストアンサー

Cookiy ではなく Cookie です。

このコードの延長線上でログイン状態を確認するのであれば、session["user_name"]に適切な値が入っていることを確認するの一般的です。
このコードの載っている教本の先で説明があると思うので、読み進めてください。

余談ですが、個人的にはこのコードの現時点だけ見ると、何点も気になるところがあるので、早く卒業して実務に耐えうるコードを学習することをオススメします。

投稿2020/07/09 02:22

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2020/07/09 02:34

誤字を修正しました。ご指摘ありがとうございます。 教本で学習はしていなく課題のみをだされ、やり方をNETで調べ初心者の状態で手探りでコードを書いています。。 プロゲートやドットインストールで自己学習をしてはおりますが、始めたばかりの初心者のため なにか良い学習本がありましたらご教示いただけたら幸いです。
退会済みユーザー

退会済みユーザー

2020/07/09 02:44

自身の環境に合った「デバッグ環境の構築」まで含む学習書を探すことをオススメします。 デバッグ環境が自分で作れるのであれば、公式マニュアルで良いかと https://www.php.net/manual/ja/index.php
退会済みユーザー

退会済みユーザー

2020/07/09 04:12 編集

ありがとうございます。参考になりました!
guest

0

sessionを使用してコードを作成しました。

<?php //セッション開始 session_start(); //変数の中を空にしている。 $error_message = ""; //isset関数で変数に値が入っているかチェックする関数。かつNULLではないときTRUEを返す。入力フォームの入力の有無や、チェックボックスのチェックに使う。 //確認ボタンが押されていれば if(isset($_POST["login"])) { //$_POSTの値をsessionに格納 if($_POST["user_name"] == "id" && $_POST["password"] == "pass"){ //sessionにTrueを代入している。 $_SESSION["name"] = TRUE; $_SESSION["username"] = $_POST["user_name"]; } } //sessionに値が入っているかチェック if(isset($_SESSION["name"])){ // if($_SESSION["name"] == TRUE){ echo 'ログインに成功しました。<br />'; echo 'ようこそ!'.$_SESSION["username"],'さん'; exit; }else{ echo 'ログインに失敗しました。'; } } ?> <!doctype html> <html lang="ja"> <head> <meta charset="UTF-8" /> </head> <body> <form action="login.php" method="POST"> <p>ログインID:<input type="text" name="user_name"></p> <p>パスワード:<input type="password" name="password"></p> <input type="submit" name="login" value="ログイン"> </form> </body> </html>

投稿2020/07/09 06:04

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

sessionを使用してコードを作成しました。

<?php //セッション開始 session_start(); //変数の中を空にしている。 $error_message = ""; //isset関数で変数に値が入っているかチェックする関数。かつNULLではないときTRUEを返す。入力フォームの入力の有無や、チェックボックスのチェックに使う。 //確認ボタンが押されていれば if(isset($_POST["login"])) { //$_POSTの値をsessionに格納 if($_POST["user_name"] == "id" && $_POST["password"] == "pass"){ //sessionにTrueを代入している。 $_SESSION["name"] = TRUE; $_SESSION["username"] = $_POST["user_name"]; } } //sessionに値が入っているかチェック if(isset($_SESSION["name"])){ // if($_SESSION["name"] == TRUE){ echo 'ログインに成功しました。<br />'; echo 'ようこそ!'.$_SESSION["username"],'さん'; exit; }else{ echo 'ログインに失敗しました。'; } } ?> <!doctype html> <html lang="ja"> <head> <meta charset="UTF-8" /> </head> <body> <form action="login.php" method="POST"> <p>ログインID:<input type="text" name="user_name"></p> <p>パスワード:<input type="password" name="password"></p> //ボタン <input type="submit" name="login" value="ログイン"> </form> </body> </html>

投稿2020/07/09 06:03

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問