那麼我從哪裏開始。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