前提・実現したいこと
WordPressのphp内にて、データベースを利用したログイン認証画面を作成したいです。
旧phpで使用していたMDB2.phpがそのまま利用できないことは、下記の質問でわかりました。
https://teratail.com/questions/69545
PODにて対応したいのですが、記述がそのままでは「PEAR::」の部分で引っ掛かってしまっているようです。
どのように対処すれば正常に動作するでしょうか?
発生している問題・エラーメッセージ
このサイトで重大なエラーが発生しました。 WordPress でのデバッグをさらに詳しく見る。
https://ja.wordpress.org/support/article/debugging-in-wordpress/
該当のソースコード
php
1//フォーム表示関数 2function form ($miss){ 3echo <<< EOT 4 5ログイン画面内容 6 7EOT; 8} 9 10//ログイン後の画面表示 11function login ($変数) { 12echo <<< EOT 13 14ログイン後画面内容 15 16EOT; 17} 18 19require 'MDB2.php'; 20 21$db = MDB2::connect('mysql://'.$user.':'.$password.'@'.$server.'/'.$db; 22 23if(PEAR::isError($db)){die("接続失敗:". $db->getMessage());} 24 25$id = $_POST['id']; 26$pw = $_POST['pw']; 27 28//SQLを実行する 29$q = $db->query("SELECT * FROM .$db. WHERE (id = $id) AND (pw = '$pw')"); 30 31//ログイン失敗時のフラグチェック 32if($_POST['login_flag']){ 33 $miss = '<span style="color:red;">ログイン情報が正しくありません。</span><br />'; 34} 35 36//ログイン判定1 37if(PEAR::isError($q)){ 38 //ログイン失敗の画面表示 39 form($miss); 40}else{ 41 //データベースから読み込んだデータを表示する 42 while($row = $q->fetchRow()){ 43 データ読み込み 44 } 45 46 //ログイン判定2 47 if($no == ""){ 48 form($miss); 49 }else{ 50 //変数にファイルパスを代入 51 代入中身 52 53 //ログイン後の画面表示 54 login($変数) 55 } 56}
試したこと
php
1try { 2 $db = new PDO('mysql://'.$user.':'.$password.'@'.$server.'/'.$db; 3} catch (PDOException $e) { 4 exit('データベースに接続できませんでした。' . $e->getMessage()); 5 die(); 6}
上記でエラーなくPDOで繋がるのは確認しましたが、ログイン判定部分のPDOへの書き換えで詰まってしまっております。
PDOにお詳しい方、ご教示頂けますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/29 07:32 編集
2021/03/29 09:38
2021/03/30 00:42
2021/03/30 00:45
2021/03/30 00:52