那么我从哪里开始。PHP表单不会将新数据发送到MySQL
我建立了一个英国的CAD系统(英国警察角色战队)。有问题的区域看起来像这样:看起来像这样:HR
我创建了一个英特尔页面,创建了MySQL表列,都很好。但是,当我编辑编辑用户按钮的代码,包括编辑访问英特尔,它停止工作。整个表单不会发送任何信息。
这里是编辑表单的PHP代码:
<?php
\t include('./includes/init.php');
\t
\t $id = displayData($_POST['id']);
\t
\t $sql = "SELECT * FROM users WHERE id = '$id';";
\t $result = mysqli_query($link, $sql);
\t $row = mysqli_fetch_array($result);
?>
<form>
\t <label>Rank</label>
\t <input type="text" class="form-control" id="txtUserRank" value="<?php echo displayData($row['rank']); ?>" />
\t <label>Division</label>
\t <input type="text" class="form-control" id="txtUserDiv" value="<?php echo displayData($row['division']); ?>" />
\t <label>Control Access</label>
\t <select id="txtControl" class="form-control">
\t \t <option value="<?php echo displayData($row['controlAccess']); ?>"><?php echo BoolToLabel(displayData($row['controlAccess'])) ?> (Current)</option>
\t \t <option value="0">No</option>
\t \t <option value="1">Yes</option>
\t </select>
\t <label>SLT Access</label>
\t <select id="txtSLT" class="form-control">
\t \t <option value="<?php echo displayData($row['sltAccess']); ?>"><?php echo BoolToLabel(displayData($row['sltAccess'])) ?> (Current)</option>
\t \t <option value="0">No</option>
\t \t <option value="1">Yes</option>
\t </select>
\t <label>Intel Access</label>
\t <select id="txtIntel" class="form-control">
\t \t <option value="<?php echo displayData($row['intelAccess']); ?>"><?php echo BoolToLabel(displayData($row['intelAccess'])) ?> (Current)</option>
\t \t <option value="0">No</option>
\t \t <option value="1">Yes</option>
\t </select>
\t <br />
\t <button class="btn btn-block btn-info btnSaveSLTUserChanges">Save Changes</button>
\t <hr />
\t <button class="btn btn-block btn-danger btnDeleteUser">Delete User</button>
</form>
这里是php文件发送数据到数据库的代码:
<?php
include('./includes/init.php');
$id = displayData($_POST['id']);
$rank = displayData($_POST['rank']);
$div = displayData($_POST['div']);
$control = displayData($_POST['control']);
$slt = displayData($_POST['slt']);
$intel = displayData($_POST['intel']);
$sql = "UPDATE `users` SET `rank`='$rank',`division`='$div',`controlAccess`='$control',`sltAccess`='$slt', `intelAccess`='$intel' WHERE id = '$id';";
mysqli_query($link, $sql);
这里是.js代码
$('body').on('click', '.btnSaveSLTUserChanges', function() {
\t
\t var id = $('#addUnitsModalBody').attr("unitid");
\t var rank = $('#txtUserRank').val();
\t var div = $('#txtUserDiv').val();
\t var control = $('#txtControl').val();
\t var slt = $('#txtSLT').val();
var intel = $('#txtIntel').val();
\t
\t var dataString = 'id=' + id + '&rank=' + rank + '&div=' + div + '&control=' + control + '&slt=' + slt + '&intel=' + intel;
\t \t $.ajax({
\t \t \t type: "POST",
\t \t \t url: "./sltEditAccount.php",
\t \t \t data: dataString,
\t \t \t success: function(response) {
\t \t \t \t $('#Members').load(document.URL + ' #Members');
\t \t \t }
\t \t });
});
任何帮助,将主要赞赏。
注意:在我添加任何与英特尔做的事情之前,表单工作正常,没有问题。
感谢 泰勒
我不知道'displayData()'是做什么的,但我可以肯定地说它不会**防止mysql注入。 – Xorifelse