Uniemożliwić użytkownikowi edytowanie wartości pola wyboru za pomocą czegoś takiego jak FireBug?
Mam stronę administracyjną, która zawiera listę rekordów, a każdy rekord ma obok niego pole wyboru, które ma status „aktywny”. Każde pole wyboru ma wartość powiązaną z identyfikatorem rekordu w bazie danych. Jeśli ktoś użył FireBug, może łatwo zmienić wartość pola wyboru na inny numer, co spowoduje błędny zapis w bazie danych.
Nie martwię się tym zbytnio, ponieważ jest to tylko strona administracyjna, która będzie miała jednego użytkownika i jestem pewien, że nie wie nic o FireBugu. strona bardziej publiczna.
Oto kod, który aktualnie mam, abyś mógł zorientować się, co robię.
HTML + PHP ..
<input type="checkbox" class="active" name="active<?php echo $id; ?>" id="active<?php echo $id; ?>" <?php if ($active == 1): ?>checked="checked"<?php endif; ?> value="<?php echo $id; ?>">
jQuery ajax ..
$("input.active").click(function() {
var loader = $(this).prev().prev();
$(loader).css("visibility","visible");
// store the values from the form checkbox box, then send via ajax below
var check_active = $(this).is(':checked') ? 1 : 0;
var check_id = $(this).attr('value');
console.log(check_active);
console.log(check_id);
$.ajax({
type: "POST",
url: "active.php",
data: {id: check_id, active: check_active},
success: function(){
$(loader).css("visibility","hidden");
}
});
return true;
});
Tutaj jest active.php ..
<?php
include("dbinfo.php");
mysql_connect($server,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$active = mysql_real_escape_string($_POST['active']);
$id = mysql_real_escape_string($_POST['id']);
$addEntry = "UPDATE entries SET active = '$active' WHERE id = '$id'";
mysql_query($addEntry) or die(mysql_error());
mysql_close();
?>