내 로그인 양식이 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 -인증/5927236#5927236)
위 내용은 내 PHP 로그인 양식이 MySQL에 연결되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!