Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Kod pengubahsuaian kata laluan log masuk PHP

Kod pengubahsuaian kata laluan log masuk PHP

WBOY
WBOYasal
2023-05-06 11:27:081104semak imbas

Dalam pembangunan laman web, untuk memastikan keselamatan akaun pengguna, selalunya perlu menyediakan fungsi menukar kata laluan log masuk. Artikel ini akan memperkenalkan kod pengubahsuaian kata laluan log masuk yang ditulis dalam PHP untuk membantu pembangun melaksanakan fungsi ini.

Pertama, kami memerlukan halaman log masuk di mana pengguna memasukkan nama pengguna dan kata laluan mereka untuk log masuk. Apabila pengguna berjaya log masuk, butang untuk menukar kata laluan akan dipaparkan Pengguna boleh mengklik butang untuk melompat ke halaman untuk menukar kata laluan.

Berikut ialah kod untuk halaman log masuk:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>登录页面</title>
    </head>
    <body>
        <h1>登录页面</h1>
        <form action="login.php" method="post">
            <label for="username">用户名:</label>
            <input type="text" id="username" name="username" required>
            <br>
            <label for="password">密码:</label>
            <input type="password" id="password" name="password" required>
            <br>
            <input type="submit" value="登录">
        </form>
    </body>
</html>

Dalam halaman ini, kami menghantar nama pengguna dan kata laluan kepada fail PHP bernama login.php melalui borang untuk menentukan log masuk pengguna. .

Berikut ialah kod fail login.php:

<?php
session_start();

if (isset($_POST['username']) && isset($_POST['password'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];

    // 连接数据库,判断用户名和密码是否正确
    $conn = mysqli_connect('localhost', 'root', 'password', 'my_db');
    if (!$conn) {
        die('连接数据库失败!');
    }

    $sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
    $result = mysqli_query($conn, $sql);

    if (mysqli_num_rows($result) == 1) {
        $_SESSION['username'] = $username;
        header('Location: changepassword.php');
    } else {
        echo '用户名或密码错误!';
    }

    mysqli_close($conn);
}
?>

Dalam fail ini, kami mula-mula mendayakan sesi, dan kemudian menentukan sama ada nama pengguna dan kata laluan diluluskan. Jika ya, kami menyambung ke pangkalan data dan menentukan sama ada nama pengguna dan kata laluan adalah betul. Jika betul, kami menyimpan nama pengguna dalam sesi dan melompat ke halaman tukar kata laluan changepassword.php. Jika tidak, kami menggesa pengguna bahawa nama pengguna atau kata laluan adalah salah.

Seterusnya, kami menulis fail changepassword.php untuk melaksanakan fungsi menukar kata laluan log masuk. Berikut ialah kod:

<?php
session_start();

if (!isset($_SESSION['username'])) {
    header('Location: login.php');
    exit();
}

if (isset($_POST['oldPassword']) && isset($_POST['newPassword'])) {
    $username = $_SESSION['username'];
    $oldPassword = $_POST['oldPassword'];
    $newPassword = $_POST['newPassword'];

    // 连接数据库,修改密码
    $conn = mysqli_connect('localhost', 'root', 'password', 'my_db');
    if (!$conn) {
        die('连接数据库失败!');
    }

    $sql = "UPDATE users SET password='$newPassword' WHERE username='$username' AND password='$oldPassword'";
    $result = mysqli_query($conn, $sql);

    if ($result) {
        echo '密码修改成功!';
    } else {
        echo '密码修改失败!';
    }

    mysqli_close($conn);
}
?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>修改密码页面</title>
    </head>
    <body>
        <h1>修改密码页面</h1>
        <form action="changepassword.php" method="post">
            <label for="oldPassword">旧密码:</label>
            <input type="password" id="oldPassword" name="oldPassword" required>
            <br>
            <label for="newPassword">新密码:</label>
            <input type="password" id="newPassword" name="newPassword" required>
            <br>
            <input type="submit" value="修改密码">
        </form>
    </body>
</html>

Dalam fail ini, kami mula-mula menentukan sama ada pengguna telah log masuk, dan jika tidak log masuk, kembali ke halaman log masuk. Kemudian kami menentukan sama ada pengguna telah menyerahkan borang untuk menukar kata laluan Jika ya, kami mendapat nama pengguna, kata laluan lama dan kata laluan baharu daripada sesi, menyambung ke pangkalan data, melakukan operasi menukar kata laluan, dan akhirnya meminta pengguna sama ada. operasi berjaya atau gagal.

Di atas ialah kod pengubahsuaian kata laluan log masuk yang ditulis dalam PHP Melalui kod ini, pengguna boleh mengubah suai kata laluan mereka selepas log masuk, sekali gus meningkatkan keselamatan akaun. Sudah tentu, dalam pembangunan sebenar, beberapa isu keselamatan perlu dipertimbangkan, seperti menyulitkan kata laluan pengguna dan menyekat kebenaran membaca dan menulis pada pangkalan data.

Atas ialah kandungan terperinci Kod pengubahsuaian kata laluan log masuk PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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 sebelumnya:Tetapkan tamat masa dalam phpArtikel seterusnya:Tetapkan tamat masa dalam php