PHP mengendalikan pangkalan data melalui langkah-langkah untuk mendaftarkan pengguna
Kami akan membuat halaman pendaftaran yang paling mudah. Terdapat tiga parameter dalam halaman pendaftaran:
1. Nama pengguna
2. Kata laluan
3. Ulang kata laluan
Pengguna menulis tiga Selepas parameter, apabila anda mengklik hantar, hantar rekod POST 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 yang boleh dilihat ialah:
变量 | 说明 |
---|---|
$_POST['username'] | 用户名 |
$_POST['password'] | 密码 |
Kita perlu mengalih keluar ruang pada kedua-dua belah nama pengguna untuk mengelak daripada memasukkan maklumat yang tidak diperlukan.
Seperti yang kami nyatakan dalam bab mysql, kata laluan pengguna tidak boleh kelihatan kepada 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:
变量 | 说明 |
---|---|
$time | 用户的注册时间 |
$_SERVER['REMOTE_ADDR'] | 用户的注册IP |
1. Cap waktu unix dikembalikan mengikut masa
2. REMOTE_ADDR mengembalikan 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.//连接数据库 $conn = mysqli_connect('localhost','root','liwenkaihaha'); //如果有错误,存在错误号 if(mysqli_errno($conn)){ echo mysqli_error($conn); exit; } mysqli_select_db($conn,'user'); mysqli_set_charset($conn,'utf8');
4 Gabungkan pernyataan SQL
Kita perlu menulis yang diperolehi. maklumat ke dalam pangkalan data, Kami 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):
id | username | password | createtime | createip |
---|---|---|---|---|
用户编号 | 用户名 | 密码 | 创建时间 | 创建IP |
$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', 'liwenkaihaha'); //如果有错误,存在错误号 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); ?>