Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk memadamkan siaran dalam php dengan mengklik padam
Dengan populariti Internet, pembinaan laman web semakin menjadi aktiviti dalam talian yang biasa. Dalam laman web, pembinaan forum amat popular. Ramai orang akan menyiarkan pendapat mereka tentang perkara tertentu dalam forum, atau bertanya beberapa soalan, menunggu jawapan daripada netizen. Tetapi ramai orang mungkin tidak didedahkan dengan pengurusan bahagian belakang dan tidak tahu cara melaksanakan beberapa fungsi dalam tapak web melalui kod. Artikel ini secara ringkas akan memperkenalkan keperluan biasa: bagaimana untuk memadamkan siaran dalam forum dengan mengklik butang padam.
Di sini kami mengandaikan bahawa anda sudah mempunyai asas PHP tertentu dan boleh membangunkan tapak web. Untuk anda lebih memahami dan menggunakan kod tersebut, artikel ini akan dibahagikan kepada dua bahagian. Bahagian pertama secara ringkas akan membawa anda memahami kod yang diperlukan untuk melaksanakan fungsi, termasuk kod bahagian hadapan dan kod belakang bahagian kedua akan menerangkan prinsip pelaksanaan bahagian kod ini secara terperinci, dengan harapan untuk membolehkan anda melakukannya lebih memahami ilmu.
1. Pelaksanaan kod
1. Kod bahagian hadapan
Dalam kod bahagian hadapan, kami perlu menyediakan butang padam untuk setiap pengguna siaran. Secara umumnya, butang padam selalunya direka di penjuru kanan sebelah atas siaran. Pelaksanaan khusus adalah seperti berikut:
<a href="delete_post.php?post_id=XXX" class="delete-button">删除</a>
Dalam kod ini, kami menambah atribut href
pada butang padam, yang menghala ke fail latar belakang bernama delete_post.php
. Kami juga menghantar parameter href
dalam nilai atribut post_id
, yang mewakili nombor siaran yang akan dipadamkan.
Kod di atas hendaklah bersarang dalam kod HTML siaran. Apabila pengguna menyemak imbas siaran, mereka boleh melihat butang ini untuk memadamkan siaran.
2. Kod hujung belakang
Dalam kod hujung belakang, kami perlu menggunakan fail delete_post.php
untuk menentukan sama ada pengguna mempunyai kebenaran untuk memadamkan siaran tersebut. Jika dia mempunyai kebenaran, padamkan siaran itu daripada pangkalan data. Pelaksanaan khusus adalah seperti berikut:
// 1.检查用户是否已经登录 session_start(); if (!isset($_SESSION["user_id"])) { echo "对不起,您还没有登录!"; exit; } // 2.检查帖子是否存在 if (!isset($_GET["post_id"])) { echo "对不起,您访问的帖子不存在!"; exit; } // 3.获取帖子编号 $post_id = $_GET["post_id"]; // 4.连接到数据库 $pdo = new PDO("mysql:host=localhost;dbname=my_db", "my_username", "my_password"); // 5.检查该用户是否能删除该帖子 $stmt = $pdo->prepare("SELECT user_id FROM posts WHERE post_id = ?"); $stmt->execute(array($post_id)); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); if (count($rows) !== 1 || $rows[0]["user_id"] !== $_SESSION["user_id"]) { echo "对不起,您没有权限删除该帖子!"; exit; } // 6.删除帖子 $stmt = $pdo->prepare("DELETE FROM posts WHERE post_id = ?"); $stmt->execute(array($post_id)); echo "帖子删除成功!";
Dalam kod di atas, kami menyemak sama ada pengguna telah log masuk, sama ada siaran itu wujud dan memperoleh nombor siaran. Kami kemudiannya menyambung ke pangkalan data, menyemak sama ada pengguna mempunyai kebenaran untuk memadamkan siaran dan akhirnya memadamkan siaran tersebut. Jika sebarang ralat berlaku semasa proses, kami akan mengeluarkan mesej ralat pada halaman web. Jika semuanya berjalan lancar, kami akan mengeluarkan mesej bahawa siaran telah berjaya dipadamkan.
2. Prinsip Pelaksanaan
1. Prinsip pelaksanaan kod hadapan
Inti pelaksanaan kod hadapan terletak pada teg <a>
dalam HTML. Kesan lompatan boleh dicapai dengan menetapkan atribut href
untuk teg ini. Dengan menghantar parameter untuk atribut ini, anda boleh menghantar parameter ini ke halaman sasaran sambil melompat ke halaman sasaran. Dengan cara ini, dalam skrip PHP halaman sasaran, parameter ini boleh diperolehi melalui pembolehubah $_GET
. Fail delete_post.php
dalam kod di atas sebenarnya adalah halaman yang digunakan untuk memproses butang padam siaran ini. Apabila pengguna mengklik butang ini di latar depan, penyemak imbas akan melompat ke fail delete_post.php
dan menghantar nombor siaran ke fail ini.
Perlu diambil perhatian bahawa jika pengguna tidak log masuk, pengguna harus digesa untuk log masuk dalam kod latar depan dan bukannya membiarkan pengguna melompat ke pemprosesan latar belakang. Dalam pelaksanaan kod artikel ini, kami menggunakan session
untuk menentukan sama ada pengguna telah log masuk. Jika $_SESSION["user_id"]
tidak wujud, ia boleh dianggap bahawa pengguna tidak log masuk. Pada masa ini, mesej yang menggesa pengguna untuk log masuk harus dikeluarkan dan bukannya melompat ke halaman latar belakang.
2. Prinsip pelaksanaan kod backend
Inti pelaksanaan kod backend ialah perpustakaan kelas PDO dalam PHP. Dengan menggunakan perpustakaan kelas ini, kami boleh menyambung ke pangkalan data MySQL dengan mudah dan melaksanakan pernyataan SQL dengan cara yang selamat.
Dalam kod latar belakang, kita perlu melakukan perkara berikut:
1) Semak sama ada pengguna telah log masuk. Dalam artikel ini, kami menggunakan session
untuk menyimpan status log masuk pengguna. Jika $_SESSION["user_id"]
tidak wujud, ia boleh dianggap bahawa pengguna tidak log masuk, dan mesej yang menggesa pengguna untuk log masuk harus dikeluarkan.
2) Semak sama ada siaran itu wujud. Sebelum mendapat nombor setiap jawatan, kita perlu tentukan dahulu sama ada jawatan itu benar-benar wujud. Jika ia tidak wujud, mesej yang menunjukkan bahawa siaran itu tidak wujud harus dikeluarkan.
3) Dapatkan nombor pos. Selepas kami mengesahkan bahawa jawatan itu wujud, kami boleh mendapatkan nombor jawatan melalui pembolehubah $_GET
.
4) Sambung ke pangkalan data. Pustaka kelas PDO
dalam PHP menyediakan banyak kaedah untuk menyambung ke pangkalan data MySQL. Apa yang perlu kita lakukan ialah menggunakan perpustakaan kelas ini untuk mencipta objek sambungan dan memanggil kaedah yang berkaitan untuk melaksanakan pernyataan SQL yang kita perlukan.
5) Semak sama ada pengguna boleh memadamkan siaran. Di sini, kita perlu menanyakan jadual posts
dalam pangkalan data dan menyemak sama ada siaran itu wujud dan sama ada pengguna mempunyai kebenaran untuk memadamkan siaran tersebut. Akhir sekali, kami menggunakan fungsi prepare
untuk melaksanakan pernyataan yang disediakan dan fungsi execute
untuk melaksanakan pernyataan SQL.
6) Padamkan siaran. Jika pengguna mempunyai kebenaran untuk memadamkan siaran, kami boleh menggunakan pernyataan DELETE
untuk memadamkan siaran daripada pangkalan data.
Perlu diingat bahawa kita mesti mempertimbangkan kelemahan suntikan SQL apabila melaksanakan pernyataan SQL dalam PHP. Dalam kod pelaksanaan yang diperkenalkan dalam artikel ini, perpustakaan kelas PDO telah mendayakan pernyataan yang disediakan secara lalai, dan pengikatan parameter juga digunakan untuk mengelakkan kelemahan suntikan.
3. Ringkasan
Saya harap melalui kajian artikel ini, anda sudah boleh memahami cara memadam post dalam forum dengan mengklik butang padam. Perlu dinyatakan bahawa kami hanya menyediakan kaedah pelaksanaan yang mudah dalam artikel ini dan tidak memberikan penjelasan terperinci tentang semua butiran pelaksanaan. Jika anda ingin benar-benar menguasai mata pengetahuan ini, anda perlu mempunyai pemahaman yang lebih mendalam tentang PHP dan MySQL. Kami mengesyorkan agar anda merujuk kepada beberapa tutorial khusus untuk PHP dan MySQL untuk menguasai mata pengetahuan ini dengan lebih baik.
Atas ialah kandungan terperinci Bagaimana untuk memadamkan siaran dalam php dengan mengklik padam. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!