2009-12-11 12 views
5

आप अपने डेटाबेस टेबल की संरचना को प्रकट किए बिना किसी वेब पेज में अपने फ़ील्ड नामों का नाम कैसे देते हैं?वेब पेज में नाम फ़ील्ड नाम

+0

हां, एक HTML फॉर्म। – giancarlo

+0

बहुत अच्छा सवाल है। =) –

उत्तर

3

बस उन्हें HTML में कुछ और नाम दें, और मैन्युअल रूप से डेटाबेस फ़ील्ड नामों और HTML फ़ील्ड नामों के बीच अपने PHP कोड में मानचित्र करें।

लेकिन वास्तव में, यदि आप prepared statements का उपयोग कर रहे हैं और उचित प्रमाणीकरण और त्रुटि जांच कर रहे हैं, तो इससे कोई फर्क नहीं पड़ता कि लोग टेबल फ़ील्ड नामों को जानते हैं या नहीं।

2

मुझे लगता है कि यदि आप सोचते हैं कि यह एक समस्या है तो आप केवल इनपुट फ़ील्ड नामों का नाम बदल सकते हैं। आपको किसी भी बिंदु पर उन्हें सही SQL कॉलम से लिंक करने की आवश्यकता है।

यह अस्पष्टता के माध्यम से सुरक्षा होगी।

हालांकि आपके आवेदन में इनपुट (एसक्यूएल इंजेक्शन से बचने के लिए) को संभालने के तरीके से सावधान रहना हालांकि एक अधिक समझदार दृष्टिकोण की तरह लगता है।

1

यदि यह वास्तव में आपके लिए चिंता का विषय है तो उपयोगकर्ता फ़ील्ड 1, फ़ील्ड 2 (या एफ 1, एफ 2) और उन्हें अपनी प्रयोगशाला पुस्तक में अपने डेटाबेस फ़ील्ड में मैप करें। लेकिन, जब तक कि आप अपने एचटीएमएल कोड से डेटाबेस कॉल नहीं कर लेते हैं, तो वहां बहुत कम है जिसे डेटाबेस संरचना के बारे में बताए जा सकते हैं, बिना फ़ील्ड नामों के फॉर्मों को देखकर।

2

मैं आमतौर पर स्वच्छता/हैंडलिंग सुविधा के लिए एक उपसर्ग और प्रत्यय जोड़ता हूं।

उदाहरण के लिए, अगर एक क्षेत्र बस पत्र, और कुछ नहीं शामिल होना चाहिए, मैं इसे tx_field_name नाम देंगे, फ़िल्टर एचटीएमएल, hf_field_name या पूर्ण HTML hx_field_name ... स्क्रिप्ट जो मिल जाएगा प्रपत्र पता शामिल कर सकते हैं अन्यथा यदि उपसर्ग के आधार पर मूल्यों को sanitize और जांचने के लिए कैसे।

लेकिन अगर अपने अर्थ स्पष्ट रूप से डेटाबेस के स्तंभ के नाम छिपाना है, ठीक है, यह नाम आप चाहते हैं, foo, bar दिया था, या यादृच्छिक प्रत्यय जोड़ने या यहां तक ​​- साथ _ (कि एचटीएमएल क्षेत्रों में अनुमति दी जाती है की जगह नाम है, लेकिन डेटाबेस स्तंभ नाम में नहीं)

पुनश्च: मैं आशा है कि आप नहीं प्रपत्र को संभालने के लिए

$values = $_POST; 
$n_val = count($values); 
$i = 0; 
foreach($values AS $key => $value){ 
    $pairs .= " `$key` = '$value' "; 
    if($n_val > $i){ 
     $pairs .= ', '; 
    } 
} 
thedbyouprefer_query("UPDATE table SET $pairs WHERE id = '42'"); 

की तरह एक कोड का उपयोग कर, लेकिन php के साथ मानचित्रण हैं (..और एक सा तैयार स्टेमेंट्स खराब नहीं होंगे)

संबंधित मुद्दे