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

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

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

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

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

Q&A

解決済

1回答

623閲覧

ログインホームページの時に最後にSQLから文字を取り寄せて方が分からない。

Rwight

総合スコア63

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

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

0グッド

1クリップ

投稿2020/10/03 10:17

編集2020/10/08 13:25

使用アプリケーション・実現したいこと

使用アプリケーション:・XAMPP [ 7.4.10-0 ]
]           ・Brackets.app

PHPでログインページの後にアカウント情報(参照)をすぐに移したいのですがうまくいきません。
今はエラーが表示されていてもうつまずいてしまったので助けてください。よろしくお願いします。
ーーーーーーーーーーーーーーーー    補足    ーーーーーーーーーーーーーーーーー
[実現したいサイト][http://localhost/Account_login/Account_login.html]

**ログイン画面** アカウント名 [  ??  ] パスワード [  ??  ] [ 確認画面へ ]

[実現したいサイト][http://localhost/Account_login/Account_login_check.php]
でパスワードを調べて大丈夫だったら下のこのサイトに移したいのですがうまく行かないのですが、何がプログラムがされていないか分からないので教えてくれませんか?よろしくお願いします。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

[実現したいサイト][http://localhost/Account_login/Account_read_in.php]

**確認** アカウント コード [ ?? ] アカウント名 [ ?? ] 電話番号 [ ?? ] メールアドレス [ ?? ] 都道府県 [ ?? ] 郵便番号 [ ?? ] [ ログイントップへ ]

発生している問題・エラーメッセージ

Notice: Undefined index: Accountname in /Applications/XAMPP/xamppfiles/htdocs/Account_login/Account_read_in.php on line 24 Notice: Undefined index: code in /Applications/XAMPP/xamppfiles/htdocs/Account_login/Account_read_in.php on line 25 Notice: Undefined index: denwa in /Applications/XAMPP/xamppfiles/htdocs/Account_login/Account_read_in.php on line 26 Notice: Undefined index: email in /Applications/XAMPP/xamppfiles/htdocs/Account_login/Account_read_in.php on line 27 Notice: Undefined index: ken in /Applications/XAMPP/xamppfiles/htdocs/Account_login/Account_read_in.php on line 28 Notice: Undefined index: yuubin in /Applications/XAMPP/xamppfiles/htdocs/Account_login/Account_read_in.php on line 29

該当のソースコード

Account_login.html---ログイン画面プログラム

php

1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>アカウント ログイン</title> 6</head> 7<body> 8 9<h1>アカウント ログイン</h1> 10<form method="post" action="Account_login_check.php"> 11名前をご入力してください。<br /> 12<input type="text" name="name"><br /> 13パスワードをご入力してください。<br /> 14<input type="password" name="pass"><br /> 15<br /> 16<input type="submit" value="ログイン"> 17</form> 18 19</body> 20</html>

Account_login_check.php--ログインチェックプログラム

PHP

1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>ログイン エラー</title> 6</head> 7<body> 8 9 <?php 10 11 try 12 { 13 $Account_name=$_POST['name']; 14 $Account_pass=$_POST['pass']; 15 16 $Account_name= htmlspecialchars($Account_name,ENT_QUOTES,'UTF-8'); 17 $Account_pass= htmlspecialchars($Account_pass,ENT_QUOTES,'UTF-8'); 18 19 $Account_pass=md5($Account_pass); 20 21 $dsn = 'mysql:dbname=shop;host=localhost;charset=utf8'; 22 $user = 'root'; 23 $password = ''; 24 $dbh = new PDO($dsn,$user,$password); 25 $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 26 27 $sql= 'SELECT name FROM mst_staff WHERE name=? AND password=?'; 28 $stmt = $dbh->prepare($sql); 29 $data[] = $Account_name; 30 $data[] = $Account_pass; 31 $stmt->execute($data); 32 33 $dbh = null; 34 35 $rec = $stmt->fetch(PDO::FETCH_ASSOC); 36 37 if($rec==false) 38 { 39 print 'アカウント名かパスワードが間違えています。もう1度ご入力をお願いします。<br />'; 40 print '<a href="Account_login.html">ログインに戻る</a>'; 41 } 42 else 43 { 44 session_start(); 45 $_SESSION['login']=1; 46 $_SESSION['Accountname']=$Account_name; 47 $_SESSION['Accountname']=$rec['name']; 48 header('Location: Account_read_in.php'); 49 exit(); 50 } 51 } 52 catch(Exception $e) 53 { 54 print 'ただいま通信障害により応答ができません。復活をするまでお待ちください。'; 55 exit(); 56 } 57 58 ?> 59 60</body> 61</html>

Account_read_in.php--(※本題のエラー表示プログラム)アカウント情報参照

PHP

1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>ご確認</title> 6</head> 7<body> 8 9 <?php 10 11 try 12 { 13 14 $Account_name=$_POST['Accountname']; 15 $Account_code=$_GET['code']; 16 $Account_denwa=$_GET['denwa']; 17 $Account_email=$_GET['email']; 18 $Account_ken=$_GET['ken']; 19 $Account_yuubin=$_GET['yuubin']; 20 21 22 $dsn = 'mysql:dbname=shop;host=localhost;charset=utf8'; 23 $user = 'root'; 24 $password = ''; 25 $dbh = new PDO($dsn,$user,$password); 26 $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 27 28 $sql = 'SELECT name FROM mst_staff WHERE name=?'; 29 $stmt = $dbh->prepare($sql); 30 $data[] = $Account_name; 31 $stmt->execute($data); 32 33 $dbh = null; 34 35 } 36 catch(Exception $e) 37 { 38 print 'ただいま通信障害により接続ができなくなっています。復活をするまでしばらくおまちください。<br />'; 39 exit(); 40 } 41 42 ?> 43 44 <h1>確認</h1> 45 <br /> 46 アカウント コード<br /> 47 <?php print $Account_code; ?> 48 <br /> 49 アカウント名<br /> 50 <?php print $Account_name; ?> 51 <br /> 52 電話番号<br /> 53 <?php print $Account_denwa; ?> 54 <br /> 55 メールアドレス<br /> 56 <?php print $Account_email; ?> 57 <br /> 58 都道府県<br /> 59 <?php print $Account_ken; ?> 60 <br /> 61 郵便番号<br /> 62 <?php print $Account_yuubin; ?> 63 <br /> 64 <br /> 65 <form> 66 <input type="button" onclick="history.back()" value="元に戻る"> 67 </form> 68 69 70</body> 71</html>

試したこと

SQLのプログラムを変えてみたり、( (例)$Account_code=$_POST['name'] )の所を消してみたり[]の中の文字を変えてみたりしてみました。その他色々のプログラムを変えてみましたがダメでした。

最後に

もしも、言葉がうまく伝わっていなかったら申し訳ありませんが、質問・修正点 がありましたら質問をよろしくお願いします。
プログラムエラーを解消できるようにしたいです。
皆さんよろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

session_start()はセッションを利用したい全てのリクエストで宣言する必要があります。
画面遷移した先のコードが全てなのであれば、ログイン後のページ(リクエスト)ではsession_start()が宣言されていないのでセッションは利用できません。

投稿2020/10/03 10:51

編集2020/10/03 10:52
m.ts10806

総合スコア80875

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

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

Rwight

2020/10/03 10:58

ご回答ありがとうございます。これでどうプログラムに打てばいいかは分かりませんがご回答ありがとうございます。
m.ts10806

2020/10/03 11:08 編集

単にセッションを使いたいプログラム(正確には「リクエスト」)内でsession_start()を書けば良いだけです。 できれば冒頭に(なので1つ目はあまり望ましくない位置に書かれています) まず、自身の書いたコードを理解してください。
m.ts10806

2020/10/03 11:16

あと、headerでリダイレクトしてますが、GETリクエストのパラメータ何も送ってないのでSyntaxでてます。 セッションで一意となる情報(IDとかメールアドレスとか、必ず特定できる情報)保存して再検索するか、セッションにログインユーザ情報のオブジェクト自体を入れてセッションからすべて参照するようにしたら良いのでは。
m.ts10806

2020/10/03 11:18

あと、MacでXAMPPはやめましょう。 teratailでもそれで失敗している例を非常によく見かけます(逆にそれでうまくいった例を見ない)。 MacにはMAMP WindowsにはXAMPPです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問