Cara membuat form login di php

Skrip login php digunakan untuk menyediakan otentikasi untuk halaman web kami. Script dijalankan setelah mengirimkan tombol login pengguna

Halaman masuk

Halaman login harus seperti berikut dan berfungsi berdasarkan sesi. Jika pengguna menutup sesi, itu akan menghapus data sesi

Dalam tutorial sebelumnya, Anda telah mempelajari cara membuat formulir yang memungkinkan pengguna untuk mendaftar akun. Setelah pengguna berhasil mendaftar, Anda mengarahkan mereka ke halaman login sehingga mereka dapat menggunakan nama pengguna dan kata sandi untuk masuk

Halaman login akan berisi form yang terdiri dari input username dan password serta tombol login seperti berikut

Cara membuat form login di php
Cara membuat form login di php

Untuk masuk, pengguna harus memasukkan nama pengguna dan kata sandi mereka dan mengklik tombol masuk

Jika nama pengguna dan kata sandi cocok, Anda dapat mengalihkannya ke halaman yang dilindungi kata sandi. Jika tidak, Anda mengarahkan pengguna kembali ke halaman login dengan pesan kesalahan

Cara membuat form login di php
Cara membuat form login di php

Perhatikan bahwa lebih aman untuk mengeluarkan pesan umum (nama pengguna atau kata sandi tidak valid) ketika nama pengguna atau kata sandi tidak cocok

Buat formulir login

Pertama, buat halaman

<?php $inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
_4 di folder

<?php $inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
5

Kedua, tentukan form login dengan input username dan password serta tombol login

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="https://www.phptutorial.net/app/css/style.css"> <title>Login</title> </head> <body> <main> <form action="login.php" method="post"> <h1>Login</h1> <div> <label for="username">Username:</label> <input type="text" name="username" id="username"> </div> <div> <label for="password">Password:</label> <input type="password" name="password" id="password"> </div> <section> <button type="submit">Login</button> <a href="register.php">Register</a> </section> </form> </main> </body> </html>

Code language: HTML, XML (xml)

Seperti halaman

<?php $inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
6, Anda dapat menggunakan kembali file

<?php $inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
7 dan

<?php $inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
8 dari folder

<?php $inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
9 dan menggunakan fungsi

$inputs = []; $errors = [];

Code language: PHP (php)
0 untuk memuatnya ke halaman

<?php $inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
4 sebagai berikut

<?php require __DIR__ . '/../src/bootstrap.php'; ?> <?php view('header', ['title' => 'Login']) ?> <main> <form action="login.php" method="post"> <h1>Login</h1> <div> <label for="username">Username:</label> <input type="text" name="username" id="username"> </div> <div> <label for="password">Password:</label> <input type="password" name="password" id="password"> </div> <section> <button type="submit">Login</button> <a href="register.php">Register</a> </section> </form> </main> <?php view('footer') ?>

Code language: PHP (php)
_

Formulir login dikirim ke

<?php $inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
4. Oleh karena itu, Anda dapat memeriksa apakah metode permintaan HTTP adalah POST sebelum memproses formulir

Untuk memproses formulir, Anda membuat

<?php $inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
4 di folder

$inputs = []; $errors = [];

Code language: PHP (php)
4

<?php $inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)

Bagaimana itu bekerja

Pertama, tentukan dua variabel untuk menyimpan data yang disanitasi dan pesan kesalahan

$inputs = []; $errors = [];

Code language: PHP (php)

Kedua, periksa apakah metode permintaan HTTP adalah POST menggunakan fungsi

$inputs = []; $errors = [];

Code language: PHP (php)
5

if (is_post_request()) { // ... }

Code language: PHP (php)

Ketiga, bersihkan dan validasi input pengguna menggunakan fungsi

$inputs = []; $errors = [];

Code language: PHP (php)
6

[$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]);

Code language: PHP (php)

Keempat, jika nama pengguna atau kata sandi tidak diberikan, alihkan pengguna ke halaman

<?php $inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
4 menggunakan teknik post-redirect-get (PRG) dan atur

$inputs = []; $errors = [];

Code language: PHP (php)
8 dan

$inputs = []; $errors = [];

Code language: PHP (php)
9 dalam sesi menggunakan fungsi

if (is_post_request()) { // ... }

Code language: PHP (php)
0

if ($errors) { redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)

Kelima, panggil fungsi

if (is_post_request()) { // ... }

Code language: PHP (php)
_1 untuk memverifikasi nama pengguna dan kata sandi

Jika nama pengguna atau kata sandi tidak cocok, setel pesan kesalahan dengan kunci

if (is_post_request()) { // ... }

Code language: PHP (php)
2 dan alihkan pengguna kembali ke halaman

<?php $inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
4

<?php if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)

Ketujuh, jika nama pengguna dan kata sandi cocok, arahkan pengguna ke halaman

if (is_post_request()) { // ... }

Code language: PHP (php)
4

redirect_to('index.php');

Code language: PHP (php)

if (is_post_request()) { // ... }

Code language: PHP (php)
_4 adalah halaman yang dilindungi kata sandi. Artinya, hanya pengguna yang masuk yang dapat mengaksesnya—lebih lanjut tentang ini di bagian selanjutnya

Terakhir, dapatkan

$inputs = []; $errors = [];

Code language: PHP (php)
9 dan

$inputs = []; $errors = [];

Code language: PHP (php)
8 dari sesi jika metode permintaan HTTP adalah GET

[$errors, $inputs] = session_flash('errors', 'inputs');

Code language: PHP (php)

Tampilkan data & pesan kesalahan yang dimasukkan saat login. halaman php

if (is_post_request()) { // ... }

Code language: PHP (php)
_8 perlu diubah menjadi berikut ini untuk menunjukkan masukan pengguna serta pesan kesalahan

<?php require __DIR__ . '/../src/bootstrap.php'; ?> <?php view('header', ['title' => 'Login']) ?> <main> <form action="login.php" method="post"> <h1>Login</h1> <div> <label for="username">Username:</label> <input type="text" name="username" id="username"> </div> <div> <label for="password">Password:</label> <input type="password" name="password" id="password"> </div> <section> <button type="submit">Login</button> <a href="register.php">Register</a> </section> </form> </main> <?php view('footer') ?>

Code language: PHP (php)
_0

Karena fungsi

if (is_post_request()) { // ... }

Code language: PHP (php)
_1 tidak ada, kita perlu mendefinisikannya

Tentukan fungsi login()

Fungsi

if (is_post_request()) { // ... }

Code language: PHP (php)
_1 menerima nama pengguna dan kata sandi dan mengembalikan nilai true jika valid. Logika dari fungsi

if (is_post_request()) { // ... }

Code language: PHP (php)
_1 adalah sebagai berikut

  • Pertama, temukan nama pengguna di tabel

    [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]);

    Code language: PHP (php)
    2. Jika pengguna ada, lanjutkan ke langkah 2
  • Kedua, verifikasi apakah kata sandi cocok
  • Ketiga, jika nama pengguna tidak ada atau kata sandi tidak cocok, keluarkan pesan kesalahan

Untuk menemukan pengguna dari tabel

[$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]);

Code language: PHP (php)
_2 dengan nama pengguna, Anda dapat menentukan fungsi

[$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]);

Code language: PHP (php)
4 di file

[$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]);

Code language: PHP (php)
5

<?php require __DIR__ . '/../src/bootstrap.php'; ?> <?php view('header', ['title' => 'Login']) ?> <main> <form action="login.php" method="post"> <h1>Login</h1> <div> <label for="username">Username:</label> <input type="text" name="username" id="username"> </div> <div> <label for="password">Password:</label> <input type="password" name="password" id="password"> </div> <section> <button type="submit">Login</button> <a href="register.php">Register</a> </section> </form> </main> <?php view('footer') ?>

Code language: PHP (php)
_1

Jika nama pengguna ada di tabel

[$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]);

Code language: PHP (php)
2, fungsi

[$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]);

Code language: PHP (php)
4 mengembalikan array asosiatif dengan dua elemen yang kuncinya adalah nama pengguna dan kata sandi. Jika tidak, itu mengembalikan false

Karena Anda menyimpan hash kata sandi dalam database, Anda perlu menggunakan fungsi

[$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]);

Code language: PHP (php)
8 bawaan untuk mencocokkan kata sandi biasa dengan hash

Fungsi

[$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]);

Code language: PHP (php)
_9 mengembalikan true jika kata sandi teks biasa cocok dengan hash, atau salah jika sebaliknya

Jika

if ($errors) { redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
0 dan

if ($errors) { redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
1 cocok, Anda dapat memasukkan pengguna. Untuk melakukan itu, Anda perlu menetapkan nilai di

if ($errors) { redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
2 misalnya

<?php require __DIR__ . '/../src/bootstrap.php'; ?> <?php view('header', ['title' => 'Login']) ?> <main> <form action="login.php" method="post"> <h1>Login</h1> <div> <label for="username">Username:</label> <input type="text" name="username" id="username"> </div> <div> <label for="password">Password:</label> <input type="password" name="password" id="password"> </div> <section> <button type="submit">Login</button> <a href="register.php">Register</a> </section> </form> </main> <?php view('footer') ?>

Code language: PHP (php)
_2

Dalam permintaan berikutnya, Anda dapat memeriksa variabel

if ($errors) { redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
2 untuk melihat apakah pengguna dengan nama pengguna sedang masuk. Sebagai contoh

<?php require __DIR__ . '/../src/bootstrap.php'; ?> <?php view('header', ['title' => 'Login']) ?> <main> <form action="login.php" method="post"> <h1>Login</h1> <div> <label for="username">Username:</label> <input type="text" name="username" id="username"> </div> <div> <label for="password">Password:</label> <input type="password" name="password" id="password"> </div> <section> <button type="submit">Login</button> <a href="register.php">Register</a> </section> </form> </main> <?php view('footer') ?>

Code language: PHP (php)
_3

Inilah fungsi

if (is_post_request()) { // ... }

Code language: PHP (php)
1 lengkap

<?php require __DIR__ . '/../src/bootstrap.php'; ?> <?php view('header', ['title' => 'Login']) ?> <main> <form action="login.php" method="post"> <h1>Login</h1> <div> <label for="username">Username:</label> <input type="text" name="username" id="username"> </div> <div> <label for="password">Password:</label> <input type="password" name="password" id="password"> </div> <section> <button type="submit">Login</button> <a href="register.php">Register</a> </section> </form> </main> <?php view('footer') ?>

Code language: PHP (php)
_4

Perhatikan bahwa Anda harus memanggil fungsi

if ($errors) { redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
5 untuk membuat ulang id sesi baru jika saat pengguna mulai masuk. Ini membantu mencegah serangan fiksasi sesi

Berikut ini mendefinisikan fungsi

if ($errors) { redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
6 di src/auth. php, yang mengembalikan true jika pengguna sedang login

<?php require __DIR__ . '/../src/bootstrap.php'; ?> <?php view('header', ['title' => 'Login']) ?> <main> <form action="login.php" method="post"> <h1>Login</h1> <div> <label for="username">Username:</label> <input type="text" name="username" id="username"> </div> <div> <label for="password">Password:</label> <input type="password" name="password" id="password"> </div> <section> <button type="submit">Login</button> <a href="register.php">Register</a> </section> </form> </main> <?php view('footer') ?>

Code language: PHP (php)
_5

Jika pengguna belum masuk, Anda dapat mengarahkan mereka ke login. halaman php. Berikut ini mendefinisikan fungsi

if ($errors) { redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
7 yang dialihkan ke login. halaman php jika pengguna saat ini tidak masuk

<?php require __DIR__ . '/../src/bootstrap.php'; ?> <?php view('header', ['title' => 'Login']) ?> <main> <form action="login.php" method="post"> <h1>Login</h1> <div> <label for="username">Username:</label> <input type="text" name="username" id="username"> </div> <div> <label for="password">Password:</label> <input type="password" name="password" id="password"> </div> <section> <button type="submit">Login</button> <a href="register.php">Register</a> </section> </form> </main> <?php view('footer') ?>

Code language: PHP (php)
_6

Dan Anda dapat memanggil fungsi

if ($errors) { redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
7 di awal halaman mana pun yang memerlukan login

Misalnya, Anda dapat menyebutnya di halaman

if ($errors) { redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
9 seperti ini

<?php require __DIR__ . '/../src/bootstrap.php'; ?> <?php view('header', ['title' => 'Login']) ?> <main> <form action="login.php" method="post"> <h1>Login</h1> <div> <label for="username">Username:</label> <input type="text" name="username" id="username"> </div> <div> <label for="password">Password:</label> <input type="password" name="password" id="password"> </div> <section> <button type="submit">Login</button> <a href="register.php">Register</a> </section> </form> </main> <?php view('footer') ?>

Code language: PHP (php)
_7

Logout pengguna

Untuk mengeluarkan pengguna, Anda perlu menghapus nilai yang Anda tetapkan saat masuk dan mengalihkan ke proses masuk. halaman php

Dalam fungsi

if (is_post_request()) { // ... }

Code language: PHP (php)
1, Anda menambahkan nama pengguna ke variabel

if ($errors) { redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
2. Oleh karena itu, Anda perlu menghapusnya untuk mengeluarkan pengguna

Berikut ini mendefinisikan fungsi

<?php if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
2 di

<?php if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
3 yang mengeluarkan pengguna dengan menghapus

if ($errors) { redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
0 dan

<?php if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
5 dari variabel

if ($errors) { redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
2

<?php require __DIR__ . '/../src/bootstrap.php'; ?> <?php view('header', ['title' => 'Login']) ?> <main> <form action="login.php" method="post"> <h1>Login</h1> <div> <label for="username">Username:</label> <input type="text" name="username" id="username"> </div> <div> <label for="password">Password:</label> <input type="password" name="password" id="password"> </div> <section> <button type="submit">Login</button> <a href="register.php">Register</a> </section> </form> </main> <?php view('footer') ?>

Code language: PHP (php)
_8

Berikut ini mendefinisikan fungsi

<?php if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
_7 yang mengembalikan nama pengguna dari pengguna yang saat ini masuk

<?php require __DIR__ . '/../src/bootstrap.php'; ?> <?php view('header', ['title' => 'Login']) ?> <main> <form action="login.php" method="post"> <h1>Login</h1> <div> <label for="username">Username:</label> <input type="text" name="username" id="username"> </div> <div> <label for="password">Password:</label> <input type="password" name="password" id="password"> </div> <section> <button type="submit">Login</button> <a href="register.php">Register</a> </section> </form> </main> <?php view('footer') ?>

Code language: PHP (php)
_9

Buat tautan logout

Saat pengguna berhasil masuk, mereka dialihkan ke

if (is_post_request()) { // ... }

Code language: PHP (php)
4

Pada

if (is_post_request()) { // ... }

Code language: PHP (php)
_4, Anda dapat menampilkan pesan selamat datang serta tautan logout seperti ini

<?php $inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
0

Saat pengguna mengeklik tautan logout, Anda perlu memanggil fungsi

<?php if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
2 untuk mengeluarkan pengguna

Untuk melakukannya, Anda perlu membuat

redirect_to('index.php');

Code language: PHP (php)
1 di folder

<?php $inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
5

Di

redirect_to('index.php');

Code language: PHP (php)
_1, Anda perlu memanggil fungsi

<?php if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
2 sebagai berikut

<?php $inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
_1

Arahkan ulang jika pengguna sudah masuk

Jika pengguna sudah login dan arahkan ke login. php atau daftar. php, Anda perlu mengarahkannya ke halaman index. php

Untuk melakukannya, Anda dapat menambahkan kode berikut ke awal file

<?php $inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
4 dan

<?php $inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
6 di folder

$inputs = []; $errors = [];

Code language: PHP (php)
4

Bagaimana cara membuat form login di PHP dengan database?

Ada beberapa langkah yang diberikan di bawah ini untuk menyiapkan lingkungan. .
Buka Panel Kontrol XAMPP
Mulai server Apache dengan mengklik tombol Mulai
Mulai MySQL dengan mengklik tombol Mulai
Buat semua file yang diperlukan untuk login
Buat tabel login di database menggunakan phpMyAdmin di XAMPP

Bagaimana cara membuat form login di PHP tanpa database?

Langkah 1. Pertama, kita perlu mendesain formulir HTML
Langkah 2. Selanjutnya, kita perlu menulis skrip PHP untuk memeriksa autentikasi login
Langkah 3. Jika login sudah benar, maka kita perlu mengarahkan ulang halaman ke area yang dilindungi

Bagaimana cara membuat API login di PHP?

Login PHP dan Registrasi RESTful API .
Pengaturan Basis Data MySQL. Pertama, kita akan menyiapkan Database MySQL untuk aplikasi ini. Nama Basis Data – php_auth_api. .
Membuat file & folder. Pertama, Buka direktori htdocs Xampp Anda atau direktori www server Anda, dan di sini buat folder baru bernama php-auth-api. Ini adalah folder aplikasi kita

Bagaimana cara membuat formulir login di PHP menggunakan xampp?

Proses Membuat Halaman Login .
LANGKAH 1- Pertama, luncurkan Panel Kontrol XAMPP dengan mengklik ikon. .
LANGKAH 2- Sekarang buka browser web apa pun di sistem Anda dan kunjungi alamat yang diberikan- http. // localhost atau http. //127. 0. 0. 1. .
LANGKAH 3- Luncurkan kembali Panel Kontrol XAMPP dan klik "Admin" yang sesuai dengan modul MySQL