How can debugging techniques like print_r() and var_dump() be used to troubleshoot PHP login issues?

When troubleshooting PHP login issues, debugging techniques like print_r() and var_dump() can be used to display the values of variables and arrays at different stages of the login process. This can help identify any incorrect data being passed or stored, which may be causing the login issues. By using these debugging functions strategically in the login script, developers can pinpoint the exact step where the problem occurs and make necessary adjustments to resolve it.

<?php
// Example of using print_r() and var_dump() for debugging PHP login issues

// Check if form is submitted
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $username = $_POST['username'];
    $password = $_POST['password'];

    // Debugging to check input values
    echo "Input values:";
    echo "<pre>";
    print_r($_POST);
    echo "</pre>";

    // Check if username and password match database records
    // Debugging to check database query results
    $query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
    $result = mysqli_query($conn, $query);
    
    echo "Database query result:";
    echo "<pre>";
    var_dump($result);
    echo "</pre>";

    if ($result && mysqli_num_rows($result) > 0) {
        // Login successful
        echo "Login successful!";
    } else {
        // Login failed
        echo "Login failed. Please check your username and password.";
    }
}
?>