इसे बदलें
<a href='#'><span class='delete'>
करने के लिए
<a href='deletepage.php?id=" . $row["ID"] . "'><span class='delete'>
फिर "deletepage.php" पर, आप उस पेज को जो भी कॉल करने जा रहे हैं, वह कुछ ऐसा करें
require_once('dbconnect.php');
$id = (int)$_GET['id'];
$sql = "DELETE FROM Predictions WHERE id=" . $id;
if($conn->query($sql) === TRUE) {
echo "Item deleted successfully";
} else {
echo "Error deleting record; ". $conn->error;
}
$conn->close();
मुझे नहीं पता कि आप यहां किस ड्राइवर का उपयोग कर रहे हैं, लेकिन पसंदीदा समाधान पैरामीटरयुक्त क्वेरी के साथ तैयार कथन का उपयोग करना होगा।
इतना ही आप id
भेजें एक GET
. के माध्यम से आपके "डिलीट पेज" का पैरामीटर। वह पृष्ठ उस मान को लेता है, उसे एक int
. में डालता है SQL इंजेक्शन से बचने के लिए (नीचे आगे पढ़ें), और फिर डेटा हटा देता है। आप सफलता को प्रतिध्वनित करने के बजाय header
. का उपयोग कर सकते हैं उन्हें पिछले पृष्ठ पर पुनर्निर्देशित करने के लिए। आप एक GET
जोड़ सकते हैं उस यूआरएल के पैरामीटर एक सफलता संदेश प्रदर्शित करते हैं। (या आप यह सब हमेशा एक ही पेज पर कर सकते हैं और बस जांच सकते हैं कि क्या id
भेजा जा रहा है)।
इसके अलावा आपके पास यह पृष्ठ किसी सुरक्षित लॉगिन सिस्टम के पीछे होना चाहिए। आप नहीं चाहते कि कोई भी उपयोगकर्ता/बॉट उस deletepage.php
. को निष्पादित कर सके ।
मैं PHP में SQL इंजेक्शन को कैसे रोक सकता हूं?
http://php.net/manual/en /security.database.sql-injection.php
https://www.owasp.org /index.php/SQL_Injection_Prevention_Cheat_Sheet#Defense_Option_1:_Prepared_Statements_.28Parameterized_Queries.29
मैं अनुमान लगा रहा हूँ कि आप mysqli
का उपयोग कर रहे हैं तो उस ड्राइवर के साथ तैयार बयानों के लिए इस दस्तावेज़ पर एक नज़र डालें, http ://php.net/manual/hi/mysqli.quickstart.prepared-statements.php
।