Rumah > pangkalan data > tutorial mysql > Mengapa Borang Log Masuk PHP Saya Gagal Menyambung ke MySQL?

Mengapa Borang Log Masuk PHP Saya Gagal Menyambung ke MySQL?

Susan Sarandon
Lepaskan: 2025-01-03 18:50:39
asal
164 orang telah melayarinya

Why Is My PHP Login Form Failing to Connect to MySQL?

Mengapa Borang Log Masuk Saya Tidak Boleh Bersambung ke Pangkalan Data MySQL?

Borang log masuk anda tidak dapat menyambung ke pangkalan data MySQL kerana beberapa sebab. Respons berikut menyediakan penyelesaian yang komprehensif untuk menangani isu yang berpotensi:

Pengendalian Kata Laluan Selamat:

Adalah penting untuk melindungi kata laluan pengguna dengan menggunakan pencincangan kata laluan. menyimpannya dalam teks biasa. Gunakan fungsi seperti password_hash() untuk menyulitkan kata laluan secara satu arah, memastikan keselamatannya.

Pencegahan Suntikan SQL:

Elakkan menggunakan pengguna- data yang dibekalkan secara langsung dalam pertanyaan SQL anda. Gunakan pernyataan yang disediakan dan ikat parameter untuk menghalang serangan suntikan SQL yang berniat jahat, yang boleh menjejaskan pangkalan data anda.

Fungsi mysqli dengan Kod Contoh:

daftar.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();
Salin selepas log masuk

log masuk.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();
}
Salin selepas log masuk

Kefungsian pdo dengan Kod Contoh:

Rujuk sumber ini untuk contoh terperinci pengesahan pengguna menggunakan PDO: [Jawapan: Pengesahan Pengguna PDO](https://stackoverflow.com/questions/5926241/php-pdo-user -pengesahan/5927236#5927236)

Atas ialah kandungan terperinci Mengapa Borang Log Masuk PHP Saya Gagal Menyambung ke MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan