我试图发送一些变量到php脚本,然后上传到mysql数据库中。
以下是我的js脚本:
$.ajax({
url: '/insert.php',
type: 'POST',
data: {endadres:endadres,stadres:stadres,amount_of_carriers:amount_of_carriers, price_finalized:price_finalized },
success: function(data) {
console.log(data);
}
})
所有变量都存在于同一个函数中(我通过“alert()”检查了它)。
以下是我的php代码:
// Check connection
if($link === false)
{
die("ERROR: Could not connect. " . mysqli_connect_error());
}
// Escape user inputs for security
$first_name = mysqli_real_escape_string($link, $_REQUEST['FirstName']);
$last_name = mysqli_real_escape_string($link, $_REQUEST['LastName']);
$start_adress = $_POST['startadress'];
$end_adress = $_POST['endadress'];
$Price = $_POST['finallprice'];
$CarriersQuant = $_POST['carriersamo'];
// Attempt insert query execution
$post = "INSERT INTO Orders (FirstName, LastName, StartAdress, EndAdress, Price, CarriersQuant) VALUES ('$first_name', '$last_name', '$start_adress', '$end_adress', '$Price', '$CarriersQuant')";
lastname和firstname来自.html,我可以将它们上传到我的数据库中,但是我无法从js中获取变量。
控制台出错:
1条答案
按热度按时间mpbci0fu1#
ajax post中的变量名与您试图在接收端(php)中提取的内容不一致。如果在javascript中使用这些名称:
必须使用相同的密钥在php中收集它们:
为了调试,我经常发现添加此调试输出以查看所有发布的变量很有用:
另一方面(与您的问题无关),您的SQLINSERT语句非常危险。您将外部请求中的变量直接连接到数据库查询字符串中,这意味着潜在的违规者可能会发布如下内容:
这会让你的
Orders
数据库中的表。我建议您阅读php的pdo模块,在那里很容易为数据库准备“安全”语句。http://php.net/manual/en/book.pdo.php