Rumah >pembangunan bahagian belakang >tutorial php >Cara mengodkan borang pendaftaran dengan pengesahan e -mel

Cara mengodkan borang pendaftaran dengan pengesahan e -mel

Jennifer Aniston
Jennifer Anistonasal
2025-02-27 09:36:15278semak imbas

How to Code a Signup Form With Email Confirmation

Tutorial ini akan membimbing anda untuk membuat borang pendaftaran pengguna yang menambah pengguna ke pangkalan data dan kemudian menghantar e -mel pengesahan yang pengguna mesti klik untuk mengaktifkan akaun mereka.

Buat borang pendaftaran dari awal

Bahagian ini akan menerangkan langkah demi langkah dalam membina borang pendaftaran tersuai dari awal. Pertama, saya telah melampirkan semua fail kod untuk anda muat turun supaya anda boleh mengikuti tutorial.

mari kita lihat dengan cepat fail penting:

  • : Ini adalah fail utama yang digunakan untuk membina dan memaparkan borang pendaftaran. Ia juga memproses penyerahan borang. index.php
  • : Digunakan untuk memproses bahagian pengesahan. confirm.php
  • : Ini adalah templat fail HTML yang digunakan untuk membina badan e -mel HTML. signup_template.html
  • : Ini adalah templat fail teks biasa yang digunakan untuk membina badan e -mel teks biasa. signup_template.txt
  • : Mengandungi maklumat sambungan pangkalan data. inc/php/config.php
Selebihnya fail adalah fail tambahan.

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

  • : urutan integer yang digunakan sebagai pengenal unik untuk pengguna. Ia ditakrifkan sebagai id, yang bermaksud ia boleh memegang sehingga 11 bit bilangan bulat. int(11)
  • : lajur rentetan yang menyimpan nama pengguna setiap pengguna. Ia ditakrifkan sebagai username, yang bermaksud ia dapat menjimatkan sehingga 50 aksara. varchar(50)
  • : lajur rentetan yang menyimpan kata laluan hash untuk setiap pengguna. Ia ditakrifkan sebagai password, yang bermaksud ia boleh memegang sehingga 128 aksara. varchar(128)
  • : lajur rentetan yang menyimpan alamat e -mel setiap pengguna. Ia ditakrifkan sebagai email, yang bermaksud ia dapat menjimatkan sehingga 250 aksara. varchar(250)
  • : Lajur binari yang menyimpan sama ada akaun pengguna telah diaktifkan. Ia ditakrifkan sebagai 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.

Sambung ke pangkalan data MySQL menggunakan MySQLI

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.

membentuk pemprosesan penyerahan

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.

Paparkan Pengesahan Borang

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.

Kesimpulan

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!

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