आपकी क्वेरी आउटपुट से पहले होनी चाहिए:
टाइपकास्ट (integer)
पर भी ध्यान दें आईडी के एसक्यूएल इंजेक्शन के खिलाफ सुरक्षित करने के लिए।
$PHP_SELF
. के साथ सुरक्षा समस्याओं पर भी ध्यान दें http://php.about.com/od/learnphp/qt/_SERVER_PHP .htm
मैंने कोड को $_SERVER['SCRIPT_NAME']
. में बदल दिया है
यह भी ध्यान दें कि register_globals
का उपयोग न करें और यदि आप कर सकते हैं तो इसे कॉन्फ़िगरेशन में अक्षम करें ($_SERVER['SCRIPT_NAME'] instead of
का उपयोग करें) $SCRIPT_NAME`):http://www.php.net/manual/ hi/security.globals.php
यदि आप किसी पुस्तक से php सीखते हैं और यह इस पुस्तक के स्रोत कोड पर आधारित है तो आपको इसे तुरंत फेंक देना चाहिए।
<?php
//Database initialization
require_once("db_handler.php");
$conn = iniCon();
$db = selectDB($conn);
$query = "SELECT * FROM taxi_services ORDER BY SID";
$result2 = mysql_query($query, $conn);
if(isset($_POST["loadbtn"]))
{
$id = (integer) $_POST["codes"];
$query = "SELECT Name, Cost, Active FROM taxi_services WHERE SID = '$id' ";
$result = mysql_query($query, $conn);
$details = mysql_fetch_array($result);
$savedName = $details["Name"];
$savedCost = $details["Cost"];
$savedActive = $details["Active"];
}
?>
<html>
<head>
</head>
<body>
<div id="upserv">
<b id="caption2">Update location</b>
<br/><br/>
<form name="upServForm" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post" >
<?php
$dropdown = "<select name='codes'>";
while($row = mysql_fetch_assoc($result2))
{
$dropdown .= "\r\n<option value='{$row['SID']}'>{$row['SID']}</option>";
}
$dropdown .= "\r\n</select>";
?>
Service ID <?php echo $dropdown; ?> <input type="submit" value="Load" name="loadbtn">
<table width="300" border="0">
<tr>
<td>Name</td>
<td><input type="text" name="upName" style="text-align:right" value="<? echo $savedName; ?>" /></td>
</tr>
<tr>
<td>Cost</td>
<td><input type="text" name="upCost" style="text-align:right" value="<? echo $savedCost; ?>" /></td>
</tr>
<tr>
<td>Active</td>
<td><input type="checkbox" name="upActive" value="<? echo $savedActive; ?>" /></td>
</tr>
</table>
</div>
<br/>
<div id="buttons">
<input type="reset" value="Clear" /> <input type="submit" value="Save" name="updatebtn" />
</div>
</form>
</body>
</html>