質問: ### 前提・実現したいこと phpの初心者です。 Windowsを使用し、開発環境Eclipse、サーバーはXMAPPを使用しています。 現在、たにぐち まこと著「よくわかるPHPの教科書PHP5.5対応版」で学習を進めております。 「ログインの仕組みを作成する」の中で、ユーザーログインする際、画面初期表示でメールアドレス入力欄にエラーメッセージが表示されました。 もし、エラーメッセージを無視して、そのままログイン情報を入力後、ログインボタンを押下すると、画面にエラーメッセージが表示されました。 ### 発生している問題・エラーメッセージ 初期表示-エラーメッセージ. ``` Notice: Undefined variable: error in C:\pleiades\xampp\htdocs\xampp\workspace\mailForm\login.php on line 60 ``` 「ログインする」ボタン押下後. ``` Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, object given in C:\pleiades\xampp\htdocs\xampp\workspace\mailForm\login.php on line 17 Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, object given in C:\pleiades\xampp\htdocs\xampp\workspace\mailForm\login.php on line 18 Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in C:\pleiades\xampp\htdocs\xampp\workspace\mailForm\login.php on line 20 Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in C:\pleiades\xampp\htdocs\xampp\workspace\mailForm\login.php on line 20 ``` ### 該当のソースコード DB情報 データベース名:mini_bbs テーブル名:members | テーブル構造: | 定義 | AI | | --- | --- | --- | | id | INT(11) | ○ | | name | VARCHER(255) | | | email | VARCHER(255) | | | password | VARCHER(100) | | | picture | VARCHER(255) | | | created | DATETIME | | | modified | TIMESTAMP | | 手動でDBテーブルmemberに以下の情報を挿入しました。 | id | name | email | picture | created | modified | | --- | --- | --- | --- | --- | --- | | 1 | 管理者 | admin@test.com | | 2020-05-14 00:00:00 | 2020-05-14 22:59:59 | DB接続 ``` getMessage(); } ?> ``` ログイン画面 ``` メールアドレスとパスワードを記入してログインしてください。 入会手続きがまだの方はこちらからどうぞ »入会手続きをする メールアドレス " /> * メールアドレスとパスワードをご記入ください * ログイン失敗したした。正しくご記入ください。 パスワード " /> ログイン情報の記録 次回からは自動的にログインする ``` ### 試したこと > > //メールアドレス入力欄 > > " /> > > > //パスワード入力欄 > > " /> > > > 上記に提示しておりましたソースにvalue値を以下の通りで試して修正しましたが、解決しませんでした。 > > ?修正前: > > > > > > ▲修正後: > > > > > ### 補足情報(FW/ツールのバージョンなど) 環境情報について、以下の通りです。 ・Windows10 64bit ・Eclipse バージョン4.4 (PHP バージョン5.5) ・XAMPP:バージョン3.2.1 上記のコードの記述も全て確認しましたが、DBへの接続もできており、ミスしている箇所が見つけられません。 先人のお力をお借りしたく、質問させていただきます。 何卒宜しくお願い申し上げます。
回答: 接続がPDOで利用がmysqliでは整合性が取れません。 それぞれきちんとPHPマニュアルで確認の上、探す記事は新しめのもの、評価の高いものを選びましょう。 評価高い記事の例 PHPでデータベースに接続するときのまとめ 色々派生記事もありますが、しっかりおさえてください。 前の質問に回答してますが、 > > ・Eclipse バージョン4.4 (PHP バージョン5.5) > > ・XAMPP:バージョン3.2.1 > > > まず、PHPのバージョンはサポート切れでないものを選びましょう。 既に5.x系はサポート外です。今ならPHP7.2以上です。 PHPのリリース日とサポート期限 PHP7.2もサポート期限はあと半年程度なので、やはり最新であれば最新であるほど良いです。 学習目的であれば尚更、過去バージョンを使うメリットは一切ありません。 なので、書籍も変えるべきです。