[ad_1]
やあ、
私はPHPのマスターではありませんが、ログインフォームを作成しようとしていますが、次のエラーメッセージが表示されます:
Warning: Undefined variable $conn in C:\xampp\htdocs\BeravaPhp\phpfiles\login_ini.php on line 10 Fatal error: Uncaught Error: Call to a member function prepare() on null in C:\xampp\htdocs\BeravaPhp\phpfiles\login_ini.php:10 Stack trace: #0 {main} thrown in C:\xampp\htdocs\BeravaPhp\phpfiles\login_ini.php on line 10
login_ini.php のコードは次のとおりです。
PHP
<pre><?php include "dbconn.php"; if (isset($_POST['submit'])) { try { $cuid = $_POST['username']; $cpass = $_POST['password']; // Check if username exists in Clients table $stmt = $conn->prepare("SELECT * FROM Clients WHERE CUID = :cuid"); $stmt->execute(array(':cuid' => $cuid)); $result = $stmt->fetch(); if ($result) { if (password_verify($cpass, $result['CPass'])) { header("Location: dashboard.html"); exit; } else { echo "Invalid password"; } } else { // Check if username exists in SubUser table $stmt = $conn->prepare("SELECT * FROM SubUser WHERE SubUsrID = :cuid"); $stmt->execute(array(':cuid' => $cuid)); $result = $stmt->fetch(); if ($result) { if (password_verify($cpass, $result['SubUsrPass1'])) { header("Location: dashboard-Sub.html"); exit; } else { echo "Invalid password"; } } else { // Check if username exists in BervEmp table $stmt = $conn->prepare("SELECT * FROM BervEmp WHERE BerEmpID = :cuid"); $stmt->execute(array(':cuid' => $cuid)); $result = $stmt->fetch(); if ($result) { if (password_verify($cpass, $result['pass'])) { header("Location: empdashboard.html"); exit; } else { echo "Invalid password"; } } else { echo "Invalid username"; } } } } catch (PDOException $e) { echo "Error: " . $e->getMessage(); } } ?>
dbconn.php 内のコードは次のとおりです。
PHP
<pre>dsn = $dsn; $this->user = $user; $this->password = $password; } private function connect() { try { $this->pdo = new PDO($this->dsn, $this->user, $this->password); } catch (PDOException $e) { echo "Connection failed: " . $e->getMessage(); } } public function getPdo() { if (!$this->pdo) { $this->connect(); } return $this->pdo; } } $dsn = "pgsql:host=localhost;dbname=Beravaa"; $user = "postgres"; $password = "222333"; $db = new Db($dsn, $user, $password); $pdo = $db->getPdo(); if ($pdo) { echo "Connected to the database successfully"; } else { echo "Failed to connect to the database"; } ?>
私が試したこと:
それで、誰かがエラーとは何か、それを修正する方法をアドバイスできますか?
解決策 1
エラーは自明です: 変数 $conn
存在しない。
あなたが示すコードは $conn
– どの時点においても、それを宣言して値を割り当てることはありません:
PHP
$stmt = $conn->prepare("SELECT * FROM Clients WHERE CUID = :cuid");
PHP
$stmt = $conn->prepare("SELECT * FROM SubUser WHERE SubUsrID = :cuid");
PHP
$stmt = $conn->prepare("SELECT * FROM BervEmp WHERE BerEmpID = :cuid");
それらはそれへの唯一の参照です…
解決策 2
$conn 宣言されたことはありません。 $pdo関数に従って、宣言されています。
[ad_2]
コメント