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):

idusernamepasswordcreatetimecreateip
用户编号用户名密码创建时间创建IP
5. Hantar kenyataan dan tentukan status

mysqli_query Seperti yang kami katakan di atas, dua parameter perlu dihantar dalam:

Sumber yang disambungkan, pembolehubah yang sepadan di sini ialah $conn.

Pernyataan 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', '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);

?>


Meneruskan pembelajaran
||
<?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); ?>
  • Cadangan kursus
  • Muat turun perisian kursus