php ajax 500,PHP Ajax调用执行,但返回500

当我运行下面的ajax调用,点击id为removeAttachment按钮后,和数据属性“数据的recordId”,脚本执行相应的PHP脚本,但仍然在服务器以错误代码500响应。这导致不完成ajax调用。PHP Ajax调用执行,但返回500

JS

$('#removeAttachment').on("click", function(e){

e.preventDefault();

var recordid = $(this).data('recordid');

if(confirm("Weet je zeker dat je deze bijlage wilt verwijderen?")){

$.ajax({

type: 'POST',

url: ('/functions/maintenance_functions.php?action=removeAttachment'),

data: {recordId: recordid},

cache: false,

success: function(data,status) {

$('#currentAttachment').hide();

$('#record_table').bootstrapTable('refresh');

}

})

}

});

PHP - (!和没有问题的工作)请注意,PHP脚本包含由其他Ajax查询所谓的各种 “行动”

if($action=="removeAttachment" && isset($_POST['recordId']) && get_maintequipmentrecord_info($_POST['recordId'],"equipment_id")==$_SESSION['active_maint_equipment'] && can_super_access($page)==true){

$attachment = get_maintequipmentrecord_info($_POST['recordId'],"attachment");

$attachment_file = $_SERVER['DOCUMENT_ROOT']."/_files/maintenance/attachments/".$attachment;

if($attachment!='' && file_exists($attachment_file)) {

unlink($attachment_file);

}

$stmt = $connect->prepare("UPDATE maintenance_records SET attachment=NULL WHERE record_id=?");

$stmt->bind_param("si", $_POST['recordID']);

$stmt->execute();

$stmt->close();

}

不幸的是,我真的找不到问题所在,因为PHP脚本和附加功能是相应执行的(文件从服务器中删除,数据库字段被设置为NULL。 任何人都有线索?谢谢!

编辑17年12月9日在数据部分更新了JS。还更新了用于将数据插入MySQL的PHP​​代码,以防止SQL注入。非常感谢评论!但尽管如此,该脚本返回一个错误500 PHP的日志显示如下:

[12月 - 2017年21点04分45秒欧洲/柏林] PHP的警告:> mysqli_stmt :: bind_param():在类型定义字符串元素的数量>不匹配绑定变量的数目在> /Applications/MAMP/htdocs/functions/maintenance_functions.php上线$ [12九月2017 21点04分45秒欧洲/柏林] PHP堆栈跟踪: [12九月2017 21点04分45秒欧洲/柏林] PHP 1 {主}()> /Applications/MAMP/htdocs/functions/maintenance_functions.php:0 [12九月2017 21 :04:45欧/柏林] PHP 2. mysqli_stmt-> bind_param()> /Applications/MAMP/htdocs/functions/maintenance_functions.php:104

不过,该文件是从服务器上删除,因此显然它可以执行程序的部分代码!但是该值不会从数据库中删除,但我无法查看SQL查询中的错误。 仅供参考,应用程序在本地网络服务器(nginx + mysql)上运行,它将始终与Internet断开连接。

+2

查看您的Web服务器的错误日志以获取更详细的解释。 –

+4

[Little Bobby](http://bobby-tables.com/)说*** [你的脚本存在SQL注入攻击风险。](http://stackoverflow.com/questions/60174/how-can- i-prevent-sql -injection-in-php)***了解[prepared](http://en.wikipedia。org/wiki/Prepared_statement)语句[MySQLi](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)。即使[转义字符串](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)是不安全的! –

+0

可能是一些东西 - 无法删除文件,格式错误的sql查询等 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值