ログイン フォームが MySQL データベースに接続できないのはなぜですか?
次の理由により、ログイン フォームは MySQL データベースに接続できません。いくつかの理由があります。次の応答は、潜在的な問題に対処するための包括的なソリューションを提供します:
安全なパスワードの処理:
代わりにパスワード ハッシュを使用してユーザー パスワードを保護することが重要です。それらを平文で保存すること。 password_hash() などの関数を利用してパスワードを一方向に暗号化し、セキュリティを確保します。
SQL インジェクション防止:
user- SQL クエリで直接データを提供します。プリペアド ステートメントとバインド パラメータを使用して、データベースを侵害する可能性のある悪意のある SQL インジェクション攻撃を防ぎます。
コードによる mysqli の機能例:
register.php
// DB Credentials $servername = "localhost"; $username = "root"; $password = ""; $dbname = "user_accounts2"; // Secure Connection mysqli_report(MYSQLI_REPORT_ALL); error_reporting(E_ALL); ini_set("display_errors", 1); // Database Connection $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // User Registration if (isset($_POST['register'])) { $email = mysqli_real_escape_string($conn, $_POST['email']); $password = mysqli_real_escape_string($conn, $_POST['password']); // Password Hashing $hashed_password = password_hash($password, PASSWORD_DEFAULT); // Prepared Statement and Parameter Binding $stmt = $conn->prepare("INSERT INTO user_accounts2 (email, password) VALUES (?, ?)"); $stmt->bind_param("ss", $email, $hashed_password); // Query Execution $stmt->execute(); } // Close Connection $stmt->close(); $conn->close();
login.php
// DB Credentials and Secure Connection Same as register.php // User Login if (isset($_POST['login'])) { $email = mysqli_real_escape_string($conn, $_POST['email']); $password = mysqli_real_escape_string($conn, $_POST['password']); // Prepared Statement and Parameter Binding $stmt = $conn->prepare("SELECT * FROM user_accounts2 WHERE email = ?"); $stmt->bind_param("s", $email); // Query Execution $stmt->execute(); $result = $stmt->get_result(); if ($row = $result->fetch_assoc()) { // Password Verification if (password_verify($password, $row['password'])) { echo "Logged in successfully!"; } else { echo "Invalid credentials"; } } else { echo "User not found"; } // Close Statement and Connection $stmt->close(); $conn->close(); }
コードによる pdo 機能例:
PDO を使用したユーザー認証の詳細な例については、このリソースを参照してください: [回答: PDO ユーザー認証](https://stackoverflow.com/questions/5926241/php-pdo-user) -authentication/5927236#5927236)
以上がPHP ログイン フォームが MySQL に接続できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。