argumen fungsi php. Implementasi mekanisme untuk membedakan hak akses ke bagian admin. Opsi Bawaan




Parameter ditentukan dalam definisi fungsi, di dalam tanda kurung, dan merupakan variabel lokalnya, mis. mereka hanya terlihat di tubuhnya, jika ada beberapa parameter, maka mereka dipisahkan dengan koma. Saat dipanggil, suatu fungsi dapat menerima argumen dengan parameter mana yang diinisialisasi.

Kami telah mempertimbangkan parameter apa, sekarang kita akan belajar tentang nilai apa yang diinisialisasi. Nilai-nilai yang akan diberikan ke parameter disebut argumen - ini dapat berupa, misalnya, string atau literal bilangan bulat, variabel, atau ekspresi yang lebih kompleks yang terdiri dari variabel dan operator, tetapi dapat dievaluasi oleh PHP interpreter untuk mendapatkan nilai yang akan diinisialisasi dengan parameter. Sederhananya, argumen adalah nilai yang diteruskan ke suatu fungsi:

Melewati Argumen

PHP mendukung dua cara untuk meneruskan argumen fungsi. Yang pertama meneruskan argumen berdasarkan nilai (berfungsi secara default), yang kedua meneruskan argumen berdasarkan referensi. PHP juga mendukung nilai default. Sekarang mari kita lihat ketiga opsi secara lebih rinci.

Secara default, argumen diteruskan ke fungsi berdasarkan nilai (artinya jika Anda mengubah nilai parameter di dalam fungsi, nilai yang diteruskan akan tetap sama di luar fungsi):

$warna warna"; // Apakah nilai variabel berubah?>

Jika Anda ingin mengizinkan suatu fungsi untuk mengubah argumen yang diteruskan di luarnya, Anda harus meneruskannya dengan referensi. Agar argumen diteruskan dengan referensi, Anda harus menentukan tanda & (ampersand) sebelum nama parameter dalam definisi fungsi:

Fungsi dapat menentukan nilai argumen default. Untuk menyetel nilai default, dalam definisi fungsi, yang perlu Anda lakukan hanyalah menyetel parameter ke nilai yang diinginkan:

\n"; ) echo tea(); // menampilkan nilai default echo tea("black"); ?>

Catatan: Semua parameter yang memiliki nilai argumen default harus berada di sebelah kanan argumen yang tidak memiliki nilai default, jika tidak, kode Anda mungkin tidak berfungsi seperti yang diharapkan:

Nilai pengembalian fungsi

Saat sebuah fungsi berakhir, ia dapat mengembalikan beberapa nilai (hasil dari fungsi tersebut) ke program yang memanggilnya. Pernyataan pengembalian di dalam fungsi digunakan untuk menentukan nilai yang dikembalikan oleh fungsi. Nilai yang dikembalikan dapat berupa tipe apa pun. Ini memiliki sintaks berikut:

ekspresi kembali;

Pernyataan kembali dapat ditempatkan di mana saja dalam suatu fungsi. Saat kontrol mencapainya, fungsi mengembalikan nilai (jika ditentukan) dan mengakhiri eksekusinya. Jika tidak ada pernyataan pengembalian yang ditentukan atau tidak ada nilai pengembalian yang ditentukan, maka fungsi akan mengembalikan NULL . Untuk menggunakan nilai kembalian, hasil eksekusi fungsi dapat diberikan ke variabel, misalnya:

"; // => 16. function foo($num) ( if($num === 10) return "$num sama dengan 10"; else return "$num tidak sama dengan 10"; echo "hello" ; // baris kode ini tidak akan pernah dieksekusi ) echo foo(6); ?>

Pelanggan

Argumen Fungsi

Apa itu argumen fungsi?

Argumen Fungsi terdaftar dipisahkan dengan koma dalam tanda kurung setelah nama fungsi didefinisikan dan merupakan variabel lokalnya.

Nilai argumen dapat berupa ekspresi apa pun yang diteruskan ke fungsi untuk diproses dan dapat dievaluasi. Dalam hal ini, fungsi mungkin tidak menerima argumen sama sekali, tetapi jika ada argumen, maka argumen tersebut dievaluasi dari kiri ke kanan.

Melewati argumen fungsi berdasarkan nilai dan referensi

Bawaan argumen diteruskan ke fungsi dengan nilai, tetapi juga didukung melewati argumen dengan referensi dan nilai default.

Saat meneruskan argumen berdasarkan nilai, nilai asli variabel luar tetap konstan saat nilai argumen di dalam fungsi berubah. Jika diperlukan agar fungsi dapat memengaruhi nilai variabel eksternal, perlu untuk meneruskan argumen ke sana dengan referensi. Ini dilakukan dengan menggunakan simbol ampersand "&" sebelum nama argumen dalam deskripsi fungsi (lihat contoh No. 1).

Contoh 1. Melewati argumen fungsi berdasarkan nilai dan referensi

Nilai Default Argumen Fungsi

Juga di PHP dimungkinkan untuk digunakan untuk argumen fungsi default, yang merupakan nilai yang digunakan jika tidak ada nilai yang diteruskan ke argumen yang diberikan saat fungsi dipanggil. Untuk menetapkan nilai default dari sebuah argumen, perlu untuk menetapkan nilai yang diinginkan ke argumen ini dalam definisi fungsi (lihat contoh No. 2). Dalam hal ini, nilai default dapat memiliki argumen yang diteruskan oleh nilai dan argumen yang diteruskan oleh referensi. Namun, bagaimanapun juga, semua argumen yang diberi nilai default harus muncul dalam daftar setelah argumen yang tidak memiliki nilai default. Selain itu, hanya ekspresi konstanta, serta array dan NULL , yang dapat digunakan sebagai nilai default. Anda tidak dapat menggunakan, misalnya, pemanggilan variabel atau fungsi.

Contoh #2. Menggunakan Nilai Argumen Default

Daftar argumen panjang variabel

Jika jumlah pasti argumen yang diteruskan ke suatu fungsi tidak diketahui sebelumnya, Anda dapat menggunakan daftar argumen panjang variabel. Daftar tersebut dibentuk dengan menggunakan variabel khusus yang diawali dengan elipsis "..." . Akibatnya, argumen akan diteruskan ke variabel yang ditentukan sebagai larik (lihat contoh #3).

Contoh #3. Menggunakan Daftar Argumen Panjang Variabel

Sebelum elipsis, Anda dapat menentukan argumen biasa, sedangkan semua argumen lain yang diteruskan ke fungsi akan dimasukkan ke dalam array. Selain itu, sebelum elipsis, Anda dapat menentukan jenis argumen yang dapat dimasukkan ke dalam array, serta tanda ampersand "&" untuk meneruskan argumen dengan referensi (lihat contoh No. 4).

"; //Menghasilkan 10 karena nilai diteruskan ke fungsi //dengan referensi dan kemudian diubah oleh fungsi menjadi 10 echo $a_1; ?>

Contoh nomor 4. Fitur menggunakan daftar argumen panjang variabel

Diperbolehkan menggunakan elipsis "..." untuk memperluas array yang diteruskan sebagai argumen fungsi ke dalam argumen fungsi dalam bentuk elemennya (lihat contoh #5).

"; //Menetapkan array ke variabel $a_3=; //Memperluas array yang diteruskan ke fungsi //Output 3 echo m_sum_2(...$a_3); ?>

Contoh nomor 5. Memperluas larik argumen yang diteruskan ke fungsi saat dipanggil

Fungsi Akses Argumen

  • func_get_args()- mengembalikan array yang terdiri dari argumen fungsi;
  • func_get_arg(n)- mengembalikan argumen fungsi yang ditentukan, di mana n=0,1,2,... - jumlah argumen dalam daftar, yang dimulai dari nol (ingat bahwa argumen dihitung dari kiri ke kanan);
  • func_num_args()- mengembalikan jumlah argumen yang benar-benar diteruskan ke fungsi.

"; //Menampilkan nilai argumen ketiga yang diteruskan ke fungsi echo func_get_arg(2); //Mengembalikan jumlah argumen fungsi return $sum; ) //Memanggil fungsi. Menampilkan 38, yaitu jumlah argumen yang diteruskan adalah 3, //dan nilai argumen ke-3 adalah 8 (penomoran elemen dimulai dari nol) m_sum(1,2,8); ?>

Contoh nomor 6. Menggunakan Fungsi Khusus untuk Bekerja dengan Argumen

Perhatikan bahwa argumen fungsi juga dapat diakses menggunakan fungsi khusus, terutama jika fungsi membutuhkan lebih banyak argumen daripada yang diharapkan untuk diterima (lihat contoh #6):

Lompat cepat ke halaman lain

http://situs web Hak Cipta © Petr Romanovsky, Minsk, 2016-2019.

Meneruskan Argumen ke Fungsi Kustom

Saat mendeklarasikan suatu fungsi, Anda dapat menentukan daftar parameter yang dapat diteruskan ke fungsi tersebut, misalnya:

fungsi fungsi ($a , $b , /* ..., */ $z ) { ... };
?>

Saat memanggil fungsi function(), Anda harus menentukan semua parameter yang diteruskan, karena diperlukan. Di PHP, fungsi yang ditentukan pengguna dapat memiliki parameter opsional atau default, tetapi lebih dari itu nanti.

Menurut tradisi yang sudah mapan, di semua bahasa pemrograman ada dua jenis argumen fungsi:

  • parameter nilai;
  • parameter-variabel.

Fungsi tidak dapat mengubah parameter nilai, yaitu, hanya dapat dibaca untuk fungsi tersebut - dapat digunakan, tetapi tidak lebih. Tidak perlu menentukan variabel sebagai parameter nilai, Anda dapat menentukan nilai itu sendiri, oleh karena itu parameter nama - nilai.

Secara default, argumen ke suatu fungsi diteruskan dengan nilai (yang berarti bahwa jika Anda mengubah nilai argumen di dalam fungsi, nilai di luar akan tetap sama). Berikut contohnya:

fungsi($string)
{
gema "

Parameter = $string

" ;
}

$str = 777 ;
fungsi(777);
fungsi( $str);

// Fungsi "funct" akan menampilkan string "Parameter = 777" dua kali

?>

Tidak seperti parameter nilai, parameter variabel dapat diubah saat fungsi sedang berjalan. Di sini tidak mungkin lagi untuk memberikan nilai, perlu untuk memberikan variabel. PHP menggunakan mekanisme variabel-oleh-referensi untuk mendeklarasikan parameter variabel.

Jika Anda ingin mengizinkan fungsi untuk mengubah argumennya, Anda harus meneruskannya dengan referensi.

Jika Anda ingin argumen selalu diteruskan dengan referensi, Anda harus menyertakan ampersand (&) sebelum nama argumen dalam deklarasi fungsi:

fungsi (& $string )
{
$string .= "yang ini ada di dalam." ;
}
$str = "Baris ini di luar fungsi,";
function($str);
gema $str ; // Mencetak "Baris ini di luar fungsi, baris ini di dalam."
?>

Opsi Bawaan

Saat memprogram, sering kali perlu membuat fungsi dengan sejumlah variabel parameter. Ada dua alasan untuk ini:

  • Ada terlalu banyak parameter. Dalam hal ini, tidak masuk akal untuk menentukan semua parameter setiap saat;
  • Fungsi harus mengembalikan nilai dari jenis yang berbeda tergantung pada kumpulan parameter.

Di PHP, fungsi dapat mengembalikan nilai apa pun tergantung pada parameter yang diteruskan kepadanya.

fungsi makecup ($type = "Teh" )
{
kembali "Buat cangkir $type.\n";
}
gema makeup();
echo makecup("Kopi");
?>

Output dari skrip ini akan terlihat seperti ini:

Membuat secangkir teh
Buat secangkir kopi

PHP juga mengizinkan array dan tipe khusus NULL sebagai nilai default, seperti ini:

fungsi makecup ($types = array("Kopi" ), $Maker = NULL )
{
$perangkat = is_null ($Maker ) ? "gula" : $Pembuat ;
kembali "Buat Piala". gabung (", " , $types ). " dengan $perangkat.\n" ;
}
gema makeup();
echo makecup (array("Kopi" , "Teh" ), "krim" );
?>

Skrip di atas akan menampilkan yang berikut:

Buat secangkir kopi dengan gula. Buat secangkir Kopi, Teh dengan krim.

Nilai default harus berupa ekspresi konstan.

Perhatikan bahwa semua argumen yang memiliki nilai default harus berada di sebelah kanan argumen yang tidak memiliki nilai default, jika tidak, kode Anda mungkin tidak berfungsi seperti yang Anda harapkan. Pertimbangkan contoh berikut:

fungsi makecup ($type = "teh" , $cond )
{
kembali;
}

Echo makecup("panas"); // Tidak akan berfungsi seperti yang kita duga
?>

Hasil dari script di atas akan menjadi seperti ini:

Peringatan: Argumen 2 tidak ada untuk makecup() di c:\inetpub\site\test.php on line 2
Buat cangkir panas.

Sekarang mari kita ubah skrip yang dipertimbangkan, perbaiki kesalahan di dalamnya:

fungsi makecup($cond , $tipe = "teh")
{
kembali"Buat cangkir $type $cond.\n";
}

Echo makecup("panas"); // Sekarang skrip kita berfungsi dengan baik!
?>

Hasil script yang sudah dikoreksi akan terlihat seperti ini:

Buatlah secangkir teh panas.

Perhatian! Sejak PHP 5, nilai default dapat diteruskan dengan referensi!

Jumlah variabel argumen dalam fungsi

Terkadang kita tidak tahu persis berapa banyak parameter yang akan diteruskan ke fungsi kita. Khusus untuk kasus ini, pengembang PHP telah menyediakan kemungkinan untuk menggunakan sejumlah variabel argumen.

Implementasi fitur ini cukup transparan dan terdiri dari penggunaan fungsi func_num_args() , func_get_arg() Dan func_get_args() .

Pertimbangkan kemungkinan fungsi standar yang dipertimbangkan:

Fungsi Standar func_num_args() mengembalikan jumlah argumen yang diteruskan ke fungsi kustom:

fungsi()
{
$numargums = func_num_args();
gema "Jumlah argumen: $numargums\n";
}

fungsi(1 , 2 , 3 ); // Skrip akan menampilkan "Jumlah argumen: 3"
?>

Fungsi Standar func_get_arg() mengembalikan elemen dari daftar argumen yang diteruskan ke fungsi kustom:

fungsi()
{
$numargs = func_num_args();
gema "Jumlah argumen: $numargs
\N"
;
jika ($numargs >= 2 ) (
gema "Argumen kedua:". func_get_arg (1 ). "
\N" ;
}
}

fungsi(1 , 2 , 3 );
?>

Dalam praktik pengembangan web saya, saya sangat sering menjumpai situasi di mana pelanggan menetapkan tujuan tertentu, yaitu pemisahan bagian panel admin terkait aksesibilitas ke pengguna tertentu. Pada saat yang sama, pengembangan modul ini dilakukan dalam konteks sistem yang dapat diperluas, yaitu, dengan jumlah modul yang tidak tetap yang aksesnya diatur, dan, karenanya, jumlah pengguna sistem yang tidak terbatas.

Nah, topik ini sendiri cukup berat, dan membutuhkan waktu untuk menganalisis dan menetapkan tugas.

Dalam konteks artikel ini, kami akan mengembangkan dalam konteks beberapa sistem informasi abstrak, dengan infrastruktur dan arsitekturnya sendiri, sementara sistem ini memberi pengguna kesempatan untuk memperluas fungsionalitas, yaitu, memasang modul baru, dan mengaturnya sesuai dengan itu. hak akses kepada mereka untuk pengguna tertentu yang terdaftar sebagai administrator sistem.

Pertama-tama mari kita bahas arsitektur sistem modular pada sistem semu pilihan kita.

Semua modul disajikan sebagai sisipan yang terhubung ke dokumen utama (file indeks). Permintaan modul berasal dari string kueri QUERY_STRING, dan nama plugin diteruskan sebagai argumen tindakan. Di beberapa titik dalam indeks file, parameter ini diambil dan diproses. Setelah itu, jika pengguna memiliki hak yang cukup untuk mengakses modul dalam konteks membaca, keberadaan modul yang ditentukan dalam string kueri diperiksa, dan jika ada, maka terhubung ke file indeks.

Saya tidak hanya menyebutkan "konteks membaca", karena sistem kami mengasumsikan adanya dua konteks untuk bekerja dengan sistem, yaitu membaca dan menulis. Pada saat yang sama, membaca mengasumsikan akses langsung ke modul dan bagian-bagiannya yang tidak memerlukan perubahan pada struktur data dalam database. Di bawah catatan, seharusnya secara langsung melakukan perubahan pada informasi yang disimpan dalam database.

Untuk menerapkan mekanisme ini, kami akan memeriksa nilai variabel string kueri `do`, yang diproses dalam modul itu sendiri dan membawa informasi tentang bagian mana dari modul yang Anda perlukan untuk memberikan akses kepada pengguna.

Nilai do akan diperbaiki, variabel ini akan mengambil nilai berikut:

  • main - bagian utama modul (tersedia dalam konteks bacaan)
  • config - bagian konfigurasi modul (tersedia dalam konteks entri)
  • buat - melakukan beberapa tindakan untuk menambahkan informasi ke database (tersedia dalam konteks catatan)
  • hapus - akses ke bagian yang menyediakan kemampuan untuk menghapus beberapa informasi, dalam konteks modul ini (tersedia dalam konteks catatan)
  • edit - akses ke informasi pengeditan dalam konteks modul (tersedia dalam konteks catatan)

Secara umum, daftar ini dapat ditambah, sementara semuanya hanya bergantung pada skala proyek dan kebutuhan fungsionalitasnya.

Sekarang langsung tentang modulnya. Selain keberadaan fisik modul tertentu dalam konteks sistem file proyek, modul tersebut juga harus ditambahkan ke tabel database khusus yang akan berisi informasi tentang semua modul yang ada di sistem. Menambah dan mengubah data tabel ini biasanya dilakukan secara langsung dalam konteks modul, yaitu selama pemasangannya di sistem. Namun, ini sudah memperdalam prinsip-prinsip melihat sistem yang dapat diperluas, yang akan kami bicarakan lain kali, dan oleh karena itu, kami akan membatasi diri untuk memperbarui dan menambahkan data tentang modul secara manual.

Dengan demikian, catatan tentang modul sistem akan berisi informasi berikut: pengidentifikasi bahasa Inggris dari nama modul, yang akan identik dengan nilai variabel lingkungan GET - tindakan (modul akan diminta langsung terhadapnya), modul Rusia identifier, yang akan digunakan dalam daftar modul.

Selain modul, kita akan memiliki dua tabel lagi yaitu tabel yang akan menyimpan data mengenai profil hak akses dan tabel informasi tentang pengguna secara langsung.

Tabel profil keamanan hanya akan terdiri dari tiga bidang - pengidentifikasi profil (nilai numerik pengidentifikasi catatan), pengidentifikasi modul teks (ditujukan untuk pengguna), serta label teks yang dibentuk khusus yang berisi informasi tentang hak pengguna di konteks masing-masing modul.

Nah, mari kita lihat struktur khusus ini. Itu akan menjadi: [ module_indefier: + \: + \;] *

Artinya, ada daftar pasangan: nama modul ":" izin baca "," izin tulis ";". Dalam hal ini, label ini diperbarui pada saat perubahan hak akses pengguna ke sistem. Jika informasi muncul di sistem tentang modul yang tidak termasuk dalam label ini, maka Anda hanya perlu melakukan prosedur pengeditan, dan data akan disimpan secara otomatis.

Sekarang kita tinggal mempertimbangkan struktur dari satu tabel database saja, dan kita dapat mulai mengimplementasikan bagian algoritme, yaitu tabel dengan informasi tentang pengguna sistem, karena menetapkan hak akses kepada mereka adalah tugas utama kita.

Saya tidak akan menambahkan sesuatu yang ekstra, tetapi hanya apa yang akan digunakan dalam konteks topik artikel ini. Tabel pengguna akan berisi bidang-bidang berikut: ID pengguna (penghitung numerik), login, kata sandi (hash dari kata sandi asli), profil keamanan pengguna (ID grup pengguna, relatif terhadap hak dalam sistem), dan hanya itu. Menurut saya informasi ini cukup bagi kami untuk mengimplementasikan tugas, dan saya sudah memberikan kesempatan untuk melakukan sendiri semua add-on lainnya.

Jadi, kami membahas strukturnya, dan, saya harap, semua orang sudah memiliki gambaran tentang bagaimana kami akan mengimplementasikan tugas yang ditetapkan dalam topik artikel. Sekarang saya akan memberikan kode SQL tambahan dari tabel yang dijelaskan di atas, setelah itu saya akan segera melanjutkan ke penerapan algoritme untuk memeriksa hak akses pengguna, serta membuat dan mengubah profil akses. Setelah setiap modul individu, kami akan membahas secara rinci setiap pertanyaan yang mungkin dimiliki pembaca.

tabel `modul`:

CREATE TABLE `modules` (`id` bigint(20) NOT NULL auto_increment, `indefier` text collate utf8_unicode_ci NOT NULL, `title` text collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

tabel `secure_groups`:

CREATE TABLE `secure_groups` (`id` bigint(20) NOT NULL auto_increment, `title` text collate utf8_unicode_ci NOT NULL, `perms` text collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;

Tabel `pengguna`

BUAT TABEL `users` (`id` bigint(20) NOT NULL auto_increment, `login` text collate utf8_unicode_ci NOT NULL, `passwd` text collate utf8_unicode_ci NOT NULL, `groupId` int(1) NOT NULL default "0", PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;

suhu=array(); $this->temp["_result"]=0; $this->temp["_uid"]=meledak("::",$_COOKIE["site_hash"]); $ini->temp["_uid"]=$ini->temp["_uid"]; $this->temp["_gid"]=$this->getUserSecurityAccess($this->temp["_uid"]); $this->temp["_conn_id"]=mysql_connect("host","user","passwd"); mysql_select_db("database"); $this->temp["_q1"]=mysql_query("PILIH izin" ."FROM `secure_groups`" ."WHERE id=".$this->temp["_gid"]); $this->temp["_access_stamp"]=mysql_fetch_assoc($this->temp["_q1"]); $this->temp["_access_stamp"]=$this->temp["_access_stamp"]["perms"]; $this->temp["_access_stamp"]=meledak(";",$this->temp["_access_stamp"]); $this->temp["_access_stamp"]=array_slice($this->temp["_access_stamp"],0,-1); foreach($this->temp["_access_stamp"] as $this->temp["v"])( $this->temp["_mod_access"]=explode(":",$this->temp["v "]); $this->temp["_mod_indefier"]=$this->temp["_mod_access"]; if($this->temp["_mod_indefier"]==$module)( $this->temp[ "_perms"]=explode(",,",$this->temp["_mod_access"]); switch($act)( case "r": $this->temp["_result"]=($this-> temp["_perms"]==1)?1:0; break; case "w": $this->temp["_result"]=($this->temp["_perms"]==1)?1 :0; istirahat; ) istirahat; ) ) mysql_close($conn_id); return $this->temp["_result"]; ) ) ?>

Kelas ini mengimplementasikan fungsi yang dirancang untuk mengimplementasikan tugas algoritmik yang dijelaskan di atas. Sekarang kita akan membahas masing-masing fungsi secara terpisah.

secure::getUserId() fungsi

Dengan menggunakan fungsi ini, kami berasumsi bahwa selama otorisasi pengguna di sistem, variabel lingkungan $_COOKIE disetel ke variabel `site_hash`, yang terdiri dari pengidentifikasi pengguna di sistem dan hash untuk memverifikasi keasliannya di sistem. Fungsi hanya menghapus nilai pengidentifikasi, mengembalikan nilainya sebagai keluaran.

fungsi aman::getUserSecurityAccess($id)

Saat keluar, fungsi ini mengembalikan ID profil keamanan dari pengguna saat ini di sistem.

secure::checkUserPermission($module,$act)) fungsi

Sebuah kueri dibuat ke database mengenai hak pengguna untuk melakukan tindakan baca / tulis dalam konteks modul yang diteruskan sebagai parameter.

Tetap hanya menjelaskan prosedur untuk membuat variabel di lingkungan $_COOKIE, dan topik artikel dapat dianggap terpecahkan.

Prosedur otorisasi akan terlihat seperti memasukkan data pribadi pengguna (login dan kata sandi) ke dalam formulir khusus, setelah pengiriman data yang dikirimkan oleh pengguna akan diproses sesuai dengan metode fungsi checkAuthData (), dan, jika datanya benar, data pengguna akan disimpan dalam bentuk rekaman cookie untuk jangka waktu yang ditetapkan oleh pengguna, atau jika tidak ada nilai yang ditentukan untuk jangka waktu secara default.

Untuk memeriksa keaslian data yang disimpan dalam variabel lingkungan $_COOKIE, kita akan menggunakan fungsi EatCookie(), yang akan memvalidasi data, mengembalikan hasil validasi boolean (benar - salah).

Saya tidak menyediakan formulir untuk dikirimkan, karena ini bukan bagian dari teori pemrograman, hanya menentukan pengidentifikasi bidang.

  • `ulogin` - login pengguna
  • `upasswd` - kata sandi pengguna
  • `stime` - waktu sesi yang ditetapkan oleh pengguna (dari 1 hingga 5 jam)
  • `auth` - kirimkan nama tombol

Di sini, secara umum, itu saja. Tinggal mencoba, bereksperimen, membuat kesalahan, dan menemukan solusi, yang saya serahkan sepenuhnya kepada Anda.

Saya harap kita akan segera bertemu, dan bagi mereka yang memiliki pertanyaan untuk saya tentang artikel tersebut, dan tidak hanya - tulis ke [email dilindungi], pada salah satu [email dilindungi]

Hormat kami, Karpenko Kirill, Kepala Departemen TI Institut Produksi Industri dan Industri.