Rumah >pembangunan bahagian belakang >tutorial php >Cara mengodkan borang pendaftaran dengan pengesahan e -mel
Buat borang pendaftaran dari awal
mari kita lihat dengan cepat fail penting:
index.php
confirm.php
signup_template.html
signup_template.txt
inc/php/config.php
Buka phpmyadmin atau mana -mana program yang anda gunakan untuk menguruskan pangkalan data MySQL dan buat pangkalan data baru. Anda boleh menamakannya seperti yang anda suka, tetapi saya akan namakannya
. Sekarang kita perlu membuat skema yang akan menyimpan maklumat pengguna dan maklumat pengesahan kami. Untuk melakukan ini, kami akan membuat dua jadual: email_signup
dan users
. confirm
<code class="language-sql">CREATE TABLE `users` ( `id` int(11) NOT NULL auto_increment, `username` varchar(50) NOT NULL default '', `password` varchar(128) NOT NULL default '', `email` varchar(250) NOT NULL default '', `active` binary(1) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>pernyataan MySQL di atas akan membuat jadual bernama
. users
id
, yang bermaksud ia boleh memegang sehingga 11 bit bilangan bulat. int(11)
username
, yang bermaksud ia dapat menjimatkan sehingga 50 aksara. varchar(50)
password
, yang bermaksud ia boleh memegang sehingga 128 aksara. varchar(128)
email
, yang bermaksud ia dapat menjimatkan sehingga 250 aksara. varchar(250)
active
, yang bermaksud ia menyimpan nilai byte, 0 bermakna tidak aktif dan 1 bermaksud diaktifkan. binary(1)
Jadual: confirm
<code class="language-sql">CREATE TABLE `confirm` ( `id` int(11) NOT NULL auto_increment, `userid` varchar(128) NOT NULL default '', `key` varchar(128) NOT NULL default '', `email` varchar(250) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>pernyataan MySQL di atas akan membuat jadual bernama
. confirm
id
: urutan integer yang digunakan sebagai pengenal unik untuk mengesahkan rekod. Ia ditakrifkan sebagai int(11)
, yang bermaksud ia boleh memegang sehingga 11 bit bilangan bulat. userid
: lajur rentetan yang menyimpan ID pengguna yang dikaitkan dengan rekod pengesahan. Ia ditakrifkan sebagai varchar(128)
, yang bermaksud ia boleh memegang sehingga 128 aksara. key
: lajur rentetan yang menyimpan kekunci pengesahan yang dihantar ke alamat e -mel pengguna. Ia ditakrifkan sebagai varchar(128)
, yang bermaksud ia boleh memegang sehingga 128 aksara. Bahagian ini akan menerangkan cara menggunakan sambungan MySQLI untuk menyambung ke pangkalan data MySQL.
Marilah kita dengan cepat mengekstrak dan memahami kod fail inc/php/config.php
.
<code class="language-sql">CREATE TABLE `users` ( `id` int(11) NOT NULL auto_increment, `username` varchar(50) NOT NULL default '', `password` varchar(128) NOT NULL default '', `email` varchar(250) NOT NULL default '', `active` binary(1) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>
Pertama, kami membuat sambungan MySQLI baru. Kemudian, kita periksa sama ada sambungan itu berjaya. Jika sambungan gagal, mesej ralat dipaparkan dan keluar.
Bahagian ini akan menerangkan bagaimana bentuk penyerahan bentuk berfungsi.
... (Sesetengah kod ditinggalkan di sini, kerana bahagian kod dalam teks asal adalah panjang dan tidak konsisten dengan matlamat asal pseudo, jadi simpan logik teras) ...
Logik utama ialah: Memproses input pengguna dengan selamat (contohnya, gunakan mysqli_real_escape_string
fungsi untuk mengelakkan suntikan SQL), sahkan bahawa input pengguna selesai, masukkan data pengguna ke dalam pangkalan data, menghasilkan kunci pengesahan, dan hantar e -mel pengesahan. Kata laluan hashed menggunakan fungsi MD5, dan disyorkan untuk menggunakan kaedah penyulitan yang lebih selamat.
mari kita mengeluarkan coretan kod penting dari fail confirm.php
untuk memahami bagaimana ia berfungsi.
<code class="language-sql">CREATE TABLE `confirm` ( `id` int(11) NOT NULL auto_increment, `userid` varchar(128) NOT NULL default '', `key` varchar(128) NOT NULL default '', `email` varchar(250) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>
Kod ini terutamanya memeriksa sama ada terdapat peti mel dan kunci pengesahan dalam pangkalan data yang sepadan dengan parameter URL. Jika hadir, kemas kini status pengguna untuk diaktifkan dan padamkan rekod pengesahan.
tutorial ini berakhir di sini.
Dalam tutorial ini, kami merangkumi pelbagai aspek yang berbeza. Kami memuat turun dan memasukkan skrip pihak ketiga untuk memproses e-mel, melaksanakan pengesahan bentuk mudah, dan mencipta sistem templat mudah untuk e-mel gaya. Jika anda tidak biasa dengan MySQL, kami telah meliputi tiga fungsi yang paling biasa, jadi anda harus dapat menyelesaikan tutorial yang lebih maju dengan mudah.
Atas ialah kandungan terperinci Cara mengodkan borang pendaftaran dengan pengesahan e -mel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!