Melaksanakan fungsi pendaftaran pengguna
Kami membuat halaman pendaftaran yang paling mudah. Terdapat tiga parameter dalam halaman pendaftaran:
1 Nama pengguna
2 Kata laluan
3 Ulang kata laluan
Selepas pengguna menulis tiga parameter, Apabila anda mengklik hantar, rekod POST dihantar ke halaman connect.php.
Kami boleh memproses rekod POST dan menulisnya ke dalam pangkalan data MySQL, yang melengkapkan pendaftaran pengguna.
Kodnya adalah seperti berikut:
<form action="connect.php" method="post"> 用户名:<input type="text" name="username"><br /> 密码:<input type="password" name="password"><br /> 重复密码:<input type="password" name="repassword"><br /> <input type="submit" value="提交"> </form>
Untuk mencapai prestasi yang lebih pantas, antara muka kod kami tidak dicantikkan. Kami akan membimbing anda melalui pendaftaran pengguna secepat mungkin.
1. Tentukan kata laluan berulang
Disebabkan kata laluan berulang, jika kata laluan yang dimasukkan oleh pengguna dua kali tidak konsisten, ini bermakna pengguna tidak meneruskan ke langkah seterusnya.
Kata laluan berulang masih digunakan di banyak tempat di halaman web. Kerana takut pengguna akan melakukan kesilapan. Kata laluan telah dimasukkan dengan salah.
Pengguna boleh memasukkan dua lagi ruang di sebelah kiri dan kanan apabila memasukkan kata laluan mereka. Oleh itu, kami akan menggunakan trim untuk mengalih keluar ruang dari kedua-dua belah kata laluan dan kata laluan berulang.
if(trim($_POST['password']) != trim($_POST['repassword'])){ exit('两次密码不一致,请返回上一页'); }
2. Sediakan data untuk ditulis
Kita perlu menulis kedua-dua data input pengguna dan data tersembunyi ke pangkalan data.
Data kelihatan termasuk:
1 Kita perlu mengalih keluar ruang pada kedua-dua belah nama pengguna untuk mengelakkan input yang tidak perlu maklumat ini.
2. Dalam bab mysql, kami menyebut bahawa kata laluan pengguna tidak boleh dilihat oleh sesiapa termasuk orang dalam syarikat. Pastikan kata laluan tidak boleh diterbalikkan. Pada peringkat awal, hanya belajar MD5. Kami akan mengajar anda kaedah penyulitan lain pada masa hadapan.
Data tidak kelihatan termasuk:
1 Cap waktu unix dikembalikan mengikut masa
2 alamat IP, kita boleh menggunakan ip2long untuk menukarnya kepada storan integer.
$username = trim($_POST['username']); $password = md5(trim($_POST['password'])); $time = time(); $ip = ip2long($_SERVER['REMOTE_ADDR']);
3 Menyambung ke pangkalan data, menilai ralat, memilih perpustakaan dan set aksara
1 pelayan.
2. Jika terdapat ralat, gunakan mysqli_errno untuk mendapatkan nombor ralat
3 Jika terdapat ralat mysqli_error mencetak semua ralat dan keluar dari pelaksanaan program
<🎜. >4. Pilih pangkalan data Dan tetapkan set aksara kepada utf8.//Sambung ke pangkalan data$conn = mysqli_connect('localhost','root','123456789');//Jika ada ralat, ada nombor ralat
if(mysqli_errno($conn)){ echo mysqli_error($conn); exit; } mysqli_select_db($conn,'book'); mysqli_set_charset($conn,'utf8');
4. Pernyataan SQL Gabungan
Kami perlu menulis maklumat yang diperolehi ke dalam pangkalan data Kami telah mendapat nama pengguna, kata laluan, masa penciptaan, dan IP. Cukup masukkan pembolehubah yang sepadan ke dalam pernyataan SQL. Pernyataan SQL gabungan adalah seperti berikut:$sql = "insert into user(username,password,createtime,createip) values('" . $username . "','" . $password . "','" . $time . "','" . $ip . "')";
Dan pernyataan kami untuk mencipta jadual adalah seperti berikut:
CREATE TABLE IF NOT EXISTS user ( id int(11) NOT NULL, username varchar(30) NOT NULL, password char(32) NOT NULL, createtime int(11) NOT NULL, createip int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Format jadual (keterangan sepadan medan):
5 Hantar penyata dan tentukan status
mysqli_query Seperti yang kami katakan di atas, dua parameter perlu dihantar dalam:
1. Sumber yang disambungkan, pembolehubah yang sepadan di sini ialah $conn.
2. Penyata SQL dihantar. $sql sudah disediakan di atas.
Pernyataan SQL boleh dihantar ke pelayan MySQL melalui mysqli_query. $result adalah benar jika berjaya dihantar. Jika tidak palsu.
Jika berjaya, kami boleh menggesa pengguna bahawa pendaftaran berjaya.
Dalam beberapa kes, mungkin perlu menggunakan mysqli_insert_id(). Cetak ID kunci utama yang ditambah secara automatik di sini.
Sila ingat titik ilmu ini untuk mengelakkan ia terlupa apabila diperlukan pada masa hadapan.
mysqli_insert_id senario aplikasi: baris data yang baru ditambah. Kita perlu mendapatkan nilai ID yang berkembang secara automatik apabila memasukkan nilai ID ini ke dalam jadual lain. Anda perlu menggunakan fungsi ini.
$result = mysqli_query($conn,$sql); if($result){ echo '注册成功'; }else{ echo '注册失败'; } echo '当前用户插入的ID为'.mysqli_insert_id($conn);
5. Tutup sambungan pangkalan data
Lepaskan pembolehubah sumber kepada fungsi mysqli_close.
mysqli_close($conn);
Kod pelaksanaan asas untuk pendaftaran pengguna telah ditulis. Perkara yang kita bincangkan di atas ialah coretan kod.
Kod connect.php yang kami laksanakan adalah seperti berikut:
<?php if (trim($_POST['password']) != trim($_POST['repassword'])) { exit('两次密码不一致,请返回上一页'); } $username = trim($_POST['username']); $password = md5(trim($_POST['password'])); $time = time(); $ip = $_SERVER['REMOTE_ADDR']; $conn = mysqli_connect('localhost', 'root', '123456789'); //如果有错误,存在错误号 if (mysqli_errno($conn)) { echo mysqli_error($conn); exit; } mysqli_select_db($conn, 'book'); mysqli_set_charset($conn, 'utf8'); $sql = "insert into user(username,password,createtime,createip) values('" . $username . "','" . $password . "','" . $time . "','" . $ip . "')"; $result = mysqli_query($conn, $sql); if ($result) { echo '成功'; } else { echo '失败'; } echo '当前用户插入的ID为' . mysqli_insert_id($conn); mysqli_close($conn); ?>