前提・実現したいこと
今、JavaScriptとPHPでログイン画面を作成しているのですが、ログイン情報をPHPでセッションで取得を調べているのですが、そのセッション情報をログイン画面や他の画面に移動をした際に取得するにはどうしたらいいですか?
発生している問題・エラーメッセージ
PHPのセッションの動きが分からない
該当のソースコード
_____login\.js_____
//変数宣言
var message_box = document\.getElementById\("message_box"\) ; //メッセージボックス
var worker_code = document\.getElementById\("worker_code"\) ; //社員コード
var password = document\.getElementById\("password"\) ; //パスワード
var button_login = document\.getElementById\("button_login"\) ; //ログインボタン
button_login\.onclick = function\(e\){
login\(\) ;
}
function login\(\){
if\( worker_code\.value == "" \){
message_box\.innerHTML = "社員コードを入力してください。" ;
return ;
}
if\( worker_code\.value != "" && password\.value == "" \){
common\.select\(
'password_NULL_select\.sql'
, \[worker_code\.value\]
, function\(jsondata\){
if\( jsondata != "" \){
alert\("パスワードが未設定です。パスワード変更画面に移行します。"\) ;
window\.location\.href = "password\.html\?" \+ escape\(worker_code\.value\) ;
} else {
message_box\.innerHTML = "パスワードを入力してください。" ;
return ;
}
}
\)
}
if\( worker_code\.value != "" && password\.value != "" \){
var php_data = {
worker_code : worker_code\.value
, password : password\.value
}
var params = {inputData: JSON\.stringify\(php_data\)} ;
common\.phpCall\(
"login\.php"
, params
, function\(jsondata\){
if\( jsondata == -1 \){
message_box\.innerHTML = "ログイン失敗しました。" ;
} else {
message_box\.innerHTML = "ログイン成功しました。" ;
alert\(jsondata\) ;
}
}
, function\(error\){
alert\(error\) ;
}
\)
}
}
_____login\.php_____
<\?php
#パラメータ退避
\$input = array_merge\(\$_GET , \$_POST\) ;
#JavaScriptから受け渡されたデータを配列に格納
#素の状態の場合、JSON文字列として渡されるので、配列に直してあげる
\$row = json_decode\(\$input\['inputData'\], JSON_FORCE_OBJECT\) ;
#結果用の空配列作成
\$result = array\(\) ;
\$sql1 = dirname\(__FILE__\)\.'/sql/login_user_select\.sql' ;
\$param1 = array\(
\$row\['worker_code'\]
, \$row\['password'\]
\) ;
//sqlの失敗
if\( !selectAllByFile\(\$sql1, \$result, \$param1\) \){
header\('Content-Type: application/json'\);
echo json_encode\("error"\);
exit\(\);
}
//ログイン失敗
if\(count\(\$result\) != 1\){
header\('Content-Type: application/json'\);
echo json_encode\(-1\);
exit\(\);
}
//ログイン成功
else{
session_start\(\);
\$_SESSION\['worker_name'\] = \$result\[0\]\['staff_name'\];
}
//JSON形式で出力する
header\('Content-Type: application/json'\);
echo json_encode\(\$_SESSION\['worker_name'\]\);
exit;
\?>
_____login_user_select\.sql
SELECT
staff_name
, staff_cd
FROM
M_STAFF
WHERE
staff_cd = \$1
and
password = \$2
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.09%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
退会済みユーザー
2017/03/02 04:40
マルチポスト http://okwave.jp/qa/q9299871.html
kei344
2017/03/02 05:27
マルチポストはteratailでは推奨されていません。 https://oshiete.goo.ne.jp/qa/9656126.html http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12171167267
Y.H.
2017/03/03 11:28
解決した質問は解決済みにしましょう。 https://teratail.com/help/question-tips#questionTips4
2017/04/13 20:19
複数のユーザーから「意図的に内容が抹消された質問」という意見がありました
解決後に編集機能を用いて質問内容を改変し関係のない内容にしたり、内容を削除する行為は禁止しています。
投稿していただいた質問は、後に他の誰かが困ったときに助けになる情報資産になると考えるからです。
「質問を編集する」ボタンから編集を行い、他のユーザにも質問内容が見えるように修正してください。
kei344
2017/04/13 23:01
回答が付いた質問の編集は慎重に行ってください。タイプミス程度なら修正する事もありますが、本文を削除するのはやめましょう。