रोकें
पोस्ट से सीधे डेटाबेस में सम्मिलित करना हमेशा एक बुरा विचार होता है। यही कारण है कि PHP वर्तमान में बहुत ही सहज ज्ञान युक्त जादुई उद्धरणों के साथ अटका हुआ है।
आपको अपने डेटा से बचने के लिए कम से कम mysql_real_escape_string() का उपयोग करना चाहिए। उदाहरण के लिए:
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
OR die(mysql_error());
$query = "INSERT INTO users VALUES (
'" . mysql_real_escape_string($_POST["username"]) . "',
'" . mysql_real_escape_string($_POST["sha_pass_hash"]) . "',
'" . mysql_real_escape_string($_POST["email"]) . "',
'2'
)";
mysql_query($query);
आपको ऐसा करने का कारण सुरक्षा आधारित है। उदाहरण के लिए यदि कुछ दुर्भावनापूर्ण उपयोगकर्ता नाम फ़ील्ड को '); DROP TABLE users;
पहले अपने डेटा से बचने के बिना। आप अंत में निम्नलिखित क्वेरी को आँख बंद करके चलाएंगे:
INSERT INTO users VALUES (''); DROP TABLE users;
निश्चित रूप से आपके आवेदन के लिए कौन सा पाठ्यक्रम अच्छा नहीं होगा।
यह न्यूनतम . है आपको करना चाहिए।
वास्तव में आपको वास्तव में MySQLi<पर जाना चाहिए। /ए> जो एक बहुत अधिक आधुनिक MySQL इंटरफ़ेस है। यहाँ एक उदाहरण है
$mysqli = new mysqli('mysql_host', 'mysql_user', 'mysql_password', 'mysql_database');
$query = "INSERT INTO users VALUES (
'" . $mysqli->real_escape_string($_POST["username"]) . "',
'" . $mysqli->real_escape_string($_POST["sha_pass_hash"]) . "',
'" . $mysqli->real_escape_string($_POST["email"]) . "',
'2'
)";
$mysqli->query($query);
तुम भी एक प्रक्रियात्मक शैली में MySQL का उपयोग कर सकते हैं। इसलिए यदि ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग आपकी पहुंच में नहीं है, फिर भी आपको MySQLi के साथ कोई समस्या नहीं होगी।
आशा है कि यह मदद करता है।