一連のレコードを一覧表示する管理ページがあり、各レコードの横にチェックボックスがあり、「アクティブ」ステータスに設定されています。各チェックボックスには、データベース内のレコードの ID に関連付けられた値があります。誰かが FireBug を使用した場合、チェックボックスの値を別の数値に簡単に変更でき、データベース内の間違ったレコードに影響を与える可能性があります。
これは管理ページに 1 人のユーザーしかいないため、このようなことが起こることについてあまり心配していません。また、彼は FireBug について何も知らないと確信しています。より一般向けのページ。
ここに私が現在持っているコードを示します。これにより、私が何をしているのかがわかります。
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;
});
これが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();
?>