Tutorial asas p...LOGIN

Tutorial asas pembangunan PHP untuk melaksanakan pendaftaran pengguna

Kami akan membuat halaman pendaftaran yang paling mudah. Terdapat tiga parameter dalam halaman pendaftaran:

  • Nama Pengguna

  • Kata Laluan

  • Kata Laluan Pendua

Selepas pengguna menulis tiga parameter, apabila 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 sama ada kata laluan telah dimasukkan Sebarang rasa 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:

Pembolehubah
变量
说明
$_POST['username'] 
   用户名    
$_POST['password'] 
密码    

Penerangan<🎜> < br/>
$_POST['username'] <🎜>
Nama pengguna <🎜>
$_POST['kata laluan'] <🎜>< br/>Kata Laluan<🎜> <🎜>
  • Kita perlu mengalih keluar ruang pada kedua-dua belah nama pengguna untuk mengelak daripada memasukkan maklumat yang tidak perlu.

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


< td style="word-break: break-all; border-width: 1px; border-style: solid;" valign="top"> $_SERVER['REMOTE_ADDR'] <🎜>
Pembolehubah< / span>
变量
说明
$time
用户的注册时间
$_SERVER['REMOTE_ADDR'] 
用户的注册IP   
Penerangan<🎜>
$time<🎜>Masa pendaftaran pengguna<🎜>
IP berdaftar pengguna
  • Cap masa unix dikembalikan mengikut masa

  • REMOTE_ADDR mengembalikan alamat IP, yang boleh kita gunakan ip2long untuk menukar kepada storan integer.

$username = trim($_POST['username']);
$password = md5(trim($_POST['password']));
$time = time();
$ip = ip2long($_SERVER['REMOTE_ADDR']);

3 Sambung ke pangkalan data, menilai ralat, pilih pustaka dan set aksara

    <🎜. >
  • Kami menggunakan mysqli_connect untuk menyambung ke pelayan pangkalan data.

  • Jika terdapat ralat, gunakan mysqli_errno untuk mendapatkan nombor ralat

  • Apabila terdapat ralat mysqli_error mencetak semua ralat dan keluar pelaksanaan program

  • 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. Menggabungkan pernyataan SQL

Kami perlu menulis maklumat yang diperoleh 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):

< tbody>id


< td width=" 193" valign="top">nama pengguna
id
username
password
createtime
createip
用户编号
用户名 
  密码  
创建时间

创建IP         


kata laluan<🎜>
masa cipta<🎜>
createip<🎜>
Nombor pengguna< 🎜>
Nama Pengguna <🎜>
< /td> Kata laluan <🎜>
Masa penciptaan<🎜>
<🎜>Buat IP <🎜> <🎜><🎜>< /td>

5 Hantar penyata 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.

  • Penyata SQL dihantar. $sql sudah disediakan di atas.

Penyata 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);

6. 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);
?>


bahagian seterusnya
<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>
babperisian kursus