Cara membuat server otorisasi Anda sendiri untuk sebuah skrip. Membangun Sistem Registrasi yang Sangat Sederhana di PHP dan MySQL

Setiap orang yang mengembangkan situs web cepat atau lambat menghadapi tugas seperti otorisasi dan otentikasi pengguna, yang diimplementasikan secara tepat menggunakan bahasa pemrograman, dan tidak menggunakan standar protokol http. Hari ini kita akan melihat contoh membuat otorisasi sederhana menggunakan bahasa pemrograman PHP, dan kita akan menyimpan data pengguna di database MySQL.

Metode di bawah ini sederhana atau seolah-olah menjadi dasar untuk membuat otorisasi normal, tetapi Anda dapat menggunakannya dengan mudah, karena ini berfungsi dengan cukup baik, dan Anda juga dapat meningkatkan sendiri metode ini dan menerapkannya di situs web Anda.

Metode ini didasarkan pada sesi, tetapi saya juga menggunakan cookie di sini agar browser mengingat pengguna yang mengautentikasi terakhir kali, agar tidak memasukkan login setiap saat, tentu saja Anda dapat menyimpan kata sandi di cookie, tetapi ini adalah tidak aman, meskipun dienkripsi. Untuk mengakhiri sesi, cukup tutup browser dan buka kembali.

Membuat objek dalam database

Mari kita lanjutkan ke latihan. Pertama, mari kita buat tabel untuk menyimpan data pengguna di database MySQL. Saya sarankan menggunakan struktur tabel sederhana ( Tentu saja, Anda dapat melengkapinya dengan sesuatu, database saya disebut test, dan tabelnya adalah pengguna):

BUAT TABEL test.users(user_id INT(11) UNSIGNED BUKAN NULL AUTO_INCREMENT, user_login VARCHAR(30) BUKAN NULL, user_password VARCHAR(32) BUKAN NULL, PRIMARY KEY (user_id)) ENGINE = SET KARAKTER MYISAM utf8 COLLATE utf8_general_ci;

Dan mari segera tambahkan satu entri ke tabel ini:

Masukkan ke dalam nilai test.users (user_login, user_password) ("mylogin", "202cb962ac59075b964b07152d234b70")

Total yang kami dapatkan:

  • Masuk – login saya;
  • Kata sandi -;

Tentu saja, kami akan menyimpan kata sandi dalam bentuk hash, karena menyimpan kata sandi dalam teks biasa, secara halus, tidak aman. Hash kata sandi kita di atas adalah 123, jadi ketika kita memasukkan kata sandi ke dalam formulir, kita akan memasukkan tepat 123, dan bukan.

Membuat formulir pendaftaran

Agar pengguna dapat mendaftarkan dirinya, buatlah formulir, yang datanya akan dikirim ke file pemrosesan pendaftaran, mis. dicatat dalam database. Misalnya, berikut cara paling sederhana:

Omong-omong, dengan metode ini yang terbaik adalah menggunakan huruf Latin untuk login ( itu. Bahasa inggris), jika Anda ingin menulis login dalam bahasa Rusia, Anda harus sedikit menyesuaikan kodenya. Anda dapat memberi nama file apa pun yang Anda inginkan ( untuk tes saya menggunakan reg.html).

Catatan! Untuk pengujian saya hanya menggunakan satu file, saya beri nama mylogin.html (kode file di bawah). Anda dapat menggunakannya di file Anda dan menamainya apa pun yang Anda inginkan, saya menjelaskan proses otorisasinya sendiri di sini, sehingga Anda dapat menerapkannya di mana saja. Omong-omong, di semua file Anda harus menggunakan fungsi session_start(); sehingga Anda dapat memeriksa apakah pengguna tersebut berwenang atau tidak. Dan satu hal lagi tentunya tuliskan pengaturan Anda untuk koneksi ke database.

Membuat formulir otorisasi

Catatan! Jika tiba-tiba parser php Anda menolak bekerja, mis. Kode php itu sendiri ditampilkan di layar Anda, maka Anda tidak mengaktifkan pemrosesan PHP dalam file html. Pengaturan dibuat di file konfigurasi server web httpd.conf (jika Apache):

Aplikasi AddType/x-httpd-php .php .html

Di IIS, di jendela Tambahkan Pemetaan Modul, tambahkan *.php ke *.html, dipisahkan dengan koma. Ini terjadi jika Anda melakukannya di rumah di server web Anda, dan jika Anda melakukan semua ini di hoster, Anda harus menulis surat kepada mereka dan meminta mereka melakukan perubahan yang diperlukan;

Saya mengomentari kodenya, jadi menurut saya semuanya harus jelas. Izinkan saya mengingatkan Anda sekali lagi bahwa di semua file yang isinya tidak ingin Anda tampilkan kepada pengguna yang tidak berwenang, Anda harus menulis session_start, dan, mungkin itu saja. Jika Anda memiliki pertanyaan, tanyakan di komentar. Semoga beruntung!

Jika Anda perlu membuat salah satu bagian situs web Anda dapat diakses oleh kalangan terbatas namun tidak ditentukan, cara termudah untuk melakukannya adalah dengan mendaftarkan dan memberi otorisasi kepada pengguna. Ada banyak cara untuk mengotorisasi pengguna. Anda dapat menggunakan alat server web dan alat bahasa pemrograman. Kita akan membicarakan kasus di mana sesi PHP digunakan.

Pertama, mari kita bahas semua langkah yang akan kita ambil selanjutnya. Apa yang kita butuhkan? Kita memerlukan skrip yang akan mendaftarkan pengguna, mengotorisasi pengguna, mengarahkan pengguna ke suatu tempat setelah otorisasi. Kita juga perlu membuat halaman yang dilindungi dari akses oleh pengguna yang tidak berwenang. Untuk registrasi dan otorisasi, kita perlu membuat formulir HTML. Kami akan menyimpan informasi tentang pengguna terdaftar dalam database. Artinya kita masih memerlukan script untuk menghubungkan ke DBMS. Semua pekerjaan kita akan dilakukan oleh fungsi yang kita tulis sendiri. Kami akan menyimpan fungsi-fungsi ini dalam file terpisah.

Jadi, kita memerlukan file-file berikut:

  • koneksi ke DBMS;
  • fungsi khusus;
  • otorisasi;
  • pendaftaran;
  • halaman dilindungi;
  • skrip penutupan pengguna;
  • skrip yang memeriksa status otorisasi pengguna;
  • style sheet untuk desain halaman kita yang paling sederhana.

Semua ini tidak akan ada artinya jika Anda tidak memiliki tabel terkait di database. Luncurkan alat manajemen DBMS Anda (PhpMyAdmin atau baris perintah, mana saja yang lebih nyaman) dan jalankan kueri berikut di dalamnya:

BUAT TABEL `pengguna` (`id` int(11) BUKAN NULL AUTO_INCREMENT, `login` char(16) BUKAN NULL, `kata sandi` char(40) BUKAN NULL, stempel waktu `reg_date` BUKAN NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (` id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Saya akan memberi nama file skrip kita seperti ini (semuanya akan berada dalam satu direktori):

  • database.php;
  • fungsi.php;
  • login.php;
  • registrasi.php;
  • indeks.php;
  • logout.php;
  • checkAuth.php;
  • gaya.css.

Tujuan dari masing-masingnya, saya yakin, jelas bagi Anda. Mari kita mulai dengan skrip koneksi ke DBMS. Anda sudah melihatnya. Simpan saja kode skrip ini dalam file bernama database.php. Kami akan mendeklarasikan fungsi khusus di file function.php. Bagaimana cara kerjanya? Pengguna yang tidak sah mencoba mengakses dokumen yang dilindungi index.php, sistem memeriksa apakah pengguna diberi otorisasi, jika pengguna tidak diberi otorisasi, ia diarahkan ke halaman otorisasi. Pada halaman login, pengguna akan melihat formulir otorisasi. Mari kita lakukan.

Otorisasi pengguna Login Anda: Kata sandi Anda:

daftar.

Sekarang bentuk kita perlu diberi beberapa bentuk. Pada saat yang sama, kami akan mendefinisikan aturan untuk elemen lainnya. Kedepannya saya akan menyajikan isi style sheet secara lengkap.

/* file style.css */ .row ( margin-bottom:10px; width:220px; ) .row label ( display:block; font-weight:bold; ) .row input.text ( font-size:1.2em; padding:2px 5px; ) .to_reg ( ukuran font:0.9em; ) .instruksi ( ukuran font:0.8em; warna:#aaaaaa; margin-kiri:2px; kursor:default; ) .error ( warna:merah; margin-kiri:3px )

Jika semuanya dilakukan dengan benar, Anda seharusnya memiliki yang berikut ini di browser Anda:

Tentu saja, kami belum memiliki satu pun pengguna terdaftar, dan untuk masuk, Anda harus mendaftar. Ayo buat formulir pendaftarannya.

Registrasi pengguna Masukkan login Anda: Registrasi pengguna Masukkan login Anda:

  • Sergei Savenkov

    semacam ulasan "pendek"... seolah-olah mereka sedang terburu-buru di suatu tempat