Rumah > pembangunan bahagian belakang > tutorial php > Analisis mendalam tentang titik teras reka bentuk backend PHP

Analisis mendalam tentang titik teras reka bentuk backend PHP

PHPz
Lepaskan: 2024-01-19 11:06:01
asal
1222 orang telah melayarinya

Analisis mendalam tentang titik teras reka bentuk backend PHP

PHP, sebagai bahasa pengaturcaraan bahagian belakang yang popular, memainkan peranan yang sangat penting dalam pembangunan web. Dalam reka bentuk bahagian belakang PHP, terdapat beberapa perkara teras yang memerlukan analisis yang mendalam, untuk membantu kami melaksanakan sistem bahagian belakang yang cekap dan selamat dengan lebih baik. Mari kita lihat lebih dekat pada titik teras ini dan contoh kod yang sepadan.

  1. Sambungan pangkalan data

Dalam reka bentuk bahagian belakang PHP, menyambung ke pangkalan data ialah pautan yang sangat penting. Kita perlu menggunakan kod yang betul untuk menyambung ke pangkalan data dan memastikan sambungan itu selamat dan boleh dipercayai. Berikut ialah contoh kod untuk menyambung ke pangkalan data MySQL:

$servername = "localhost"; //数据库服务器名称
$username = "username"; //连接数据库的用户名
$password = "password"; //连接数据库的密码
$dbname = "myDB"; //要连接的数据库名称

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检测连接是否成功
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan kelas mysqli untuk membuat sambungan dan menentukan sama ada sambungan berjaya melalui atribut connect_error. Jika sambungan gagal, kami mencetak mesej ralat melalui fungsi die() dan menamatkan pelaksanaan skrip.

  1. SQL injection protection

SQL injection ialah kaedah serangan yang sangat biasa yang boleh mendapatkan maklumat pangkalan data atau melaksanakan pernyataan SQL yang ditentukan dalam keadaan yang menyalahi undang-undang. Untuk mengelakkan serangan suntikan SQL, kami perlu memproses dan menapis data yang dimasukkan pengguna untuk memastikan keselamatan. Berikut ialah contoh kod untuk menghalang suntikan SQL:

$uname = $conn->real_escape_string($_POST['username']);
$upass = $conn->real_escape_string($_POST['password']);

$sql = "SELECT * FROM users WHERE username = '".$uname."' AND password = '".$upass."'";

$result = $conn->query($sql);

if ($result->num_rows > 0) {
    //登录成功
} else {
    //登录失败
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan kaedah real_escape_string() pada objek mysqli untuk menapis nama pengguna dan kata laluan yang dimasukkan untuk mengelakkan serangan suntikan SQL.

  1. Storan Data

Dalam reka bentuk latar belakang PHP, biasanya kita perlu menyimpan data yang dihantar oleh pengguna. Apabila menyimpan data, kita perlu menggunakan kaedah yang betul untuk mengendalikan pelbagai jenis data untuk memastikan integriti dan ketepatan storan data. Berikut ialah contoh kod untuk memasukkan data pengguna ke dalam pangkalan data MySQL:

$uname = $conn->real_escape_string($_POST['username']);
$upass = $conn->real_escape_string($_POST['password']);
$uemail = $conn->real_escape_string($_POST['email']);

$sql = "INSERT INTO users (username, password, email) VALUES ('".$uname."', '".$upass."', '".$uemail."')";

if ($conn->query($sql) === TRUE) {
    //插入成功
} else {
    //插入失败
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan kata kunci INSERT INTO untuk memasukkan data pengguna ke dalam jadual pengguna, dan menggunakan klausa VALUES untuk menetapkan nilai medan yang sepadan. Laksanakan pernyataan SQL melalui kaedah query() dan gunakan $== TRUE untuk mengesan sama ada sisipan berjaya.

  1. Muat naik fail

Dalam reka bentuk latar belakang PHP, biasanya kita perlu melaksanakan fungsi muat naik fail untuk pengguna menghantar dan memproses fail. Semasa memuat naik fail, kami juga perlu menggunakan kaedah yang betul untuk memproses dan menapis data bagi memastikan keselamatan dan kebolehpercayaan muat naik fail. Berikut ialah contoh kod untuk muat naik fail:

$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// 检测文件是否为图像
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        // 是图像
        $uploadOk = 1;
    } else {
        // 不是图像
        $uploadOk = 0;
    }
}

// 检测文件是否已经存在
if (file_exists($target_file)) {
    $uploadOk = 0;
}

// 尝试上传文件
if ($uploadOk == 0) {
    // 上传失败
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        //上传成功
    } else {
        // 上传失败
    }
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan pembolehubah global $_FILES untuk mendapatkan maklumat fail yang dimuat naik dan menggunakan fungsi $pathinfo() untuk mendapatkan akhiran fail. Pada masa yang sama, kami menggunakan fungsi move_uploaded_file() untuk mengalihkan fail ke direktori muat naik yang ditentukan dan mengesan sama ada muat naik berjaya melalui pengendalian ralat.

Ringkasnya, perkara teras reka bentuk bahagian belakang PHP termasuk sambungan pangkalan data, perlindungan suntikan SQL, penyimpanan data dan muat naik fail. Menggunakan kod yang betul untuk melaksanakan perkara ini boleh membantu kami membangunkan sistem hujung belakang yang cekap dan selamat.

Atas ialah kandungan terperinci Analisis mendalam tentang titik teras reka bentuk backend PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan