gpt4 book ai didi

php - 通过 ajax 请求调用时尝试插入数据时出现 500 内部服务器

转载 作者:行者123 更新时间:2023-12-03 09:13:41 27 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

8年前关闭。




Improve this question




我从表单中获取信息并将其序列化,然后提交字符串并在 php 端对其进行反序列化,所有信息都从表单正确接收到脚本,但是将数据插入表的查询会创建 500 个内部服务器错误。不知道为什么

这是HTML

<form role="form" id="reportForm">
<div class="form-group">
<label for="Email1">Your name:</label>
<input type="text" class="form-control" id="user" name="name" placeholder="Your name...">
</div>
<div class="form-group">
<label for="Email1">Page Link:</label>
<input type="text" class="form-control" id="pagelink" name="pagelink" placeholder="page link...">
</div>
<div class="form-group">
<select class="form-control" name="status">
<option val="bug" name="bug">Bug</option>
<option val="issue" name="issue">Issue</option>
<option val="issue" name="issue">Approved</option>
</select>
</div>
<div class="form-group">
<label>What's going on?</label>
<textarea name="msg" id="sit" class="form-control"></textarea>
</div>
<button type="button" id="subm" class="btn btn-default">Report</button>
</form>

这是javascript:
$("#subm").click(function(){
var ticket = $("#reportForm").serialize();
$.ajax({
type:"POST",
url:"php/create_report.php",
data:"form=" + ticket,

success: function(data){

$("alert-success").fadeIn();
alert(data);
},
error: function(ajaxrequest, ajaxOptions, thrownError){

$("alert-danger").fadeIn(500);
}
});

})

这是PHP:
<?php 
include 'connection.php';

$name = $_POST['form'];

parse_str($name, $form_data);

$name = $form_data['name'];
$link = $form_data['pageLink'];
$status = $form_data['status'];
$desc = $form_data['msg'];


mysqli_select_db($mysqli_connection, "mailings_members");
$query = mysqli_query("INSERT into `bugs` (`ticket_author`, `ticket_link`, `ticket_status`, `ticket_message`) VALUES('$name', '$link','$status', '$desc' "))

if(!$query){
die('Invalid query:' . mysql_error());
}else{
echo 'Bam! major ownage';
}

?>

一些帮助将不胜感激!

最佳答案

$query = mysqli_query("INSERT into `bugs` (`ticket_author`, `ticket_link`, `ticket_status`, `ticket_message`) VALUES('$name', '$link','$status', '$desc' "))

) 结束您的 VALUES 列表并以 ; 结束整个函数调用
$query = mysqli_query("INSERT into `bugs` (`ticket_author`, `ticket_link`, `ticket_status`, `ticket_message`) VALUES('$name', '$link','$status', '$desc')");

另外,mysqli 不使用 mysql_error()函数(与其他 mysql_* 函数一起弃用),检查 http://www.php.net/manual/en/mysqli.error.php对于错误函数的 mysqli 版本。

不要忘记转义从客户端获得的变量,这些变量几乎可以包含任何内容。您不想打开 sql 注入(inject)。
要么使用 mysqli 中提供的转义函数,要么使用 mysqli 准备好的语句(我真的会推荐这个!)。

编辑:

您在查询中缺少 $link 参数:
function mysqli_query ($link, $query, $resultmode = MYSQLI_STORE_RESULT) {}

如果 'mysqli_connection' 变量是 mysqli 对象,请尝试:
$query = mysqli_query($mysqli_connection, "INSERT into `bugs` (`ticket_author`, `ticket_link`, `ticket_status`, `ticket_message`) VALUES('$name', '$link','$status', '$desc')");

您最近是否有可能从 mysql_* 迁移到 mysqli?

关于php - 通过 ajax 请求调用时尝试插入数据时出现 500 内部服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20466415/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com