javascript - 404 not found - JS 未向 PHP 发送变量

标签 javascript php mysql ajax

我正在尝试将一些变量发送到 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 获取变量。

控制台错误:

Error 404

最佳答案

ajax 帖子中的变量名称与您尝试在接收端 (PHP) 中提取的内容不符。如果您在 JavaScript 中坚持使用这些名称:

data: {
  endadres,
  stadres,
  amount_of_carriers,
  price_finalized
},

您必须使用相同的 key 在 PHP 中收集它们:

$foo = $_POST["endadres"]

为了调试,我经常发现添加此调试输出以查看所有发布的变量很有用:

var_dump($_POST);

第二点(尽管与您的问题无关),您的 SQL 插入语句非常危险。您将外部请求中的变量直接连接到数据库查询字符串中,这意味着潜在的攻击者可能会发布类似以下内容的内容:

carriersamo: "'; DROP TABLE Orders;"

这将从数据库中删除您的Orders表。我建议您阅读 PHP 的 PDO 模块,其中很容易为数据库准备“安全”语句。 http://php.net/manual/en/book.pdo.php

关于javascript - 404 not found - JS 未向 PHP 发送变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53284039/

相关文章:

mysql - 无法从 Nuget Manager 安装 MySQL.Data

javascript - 在另一个函数之后使用一个 js 函数

javascript - 如何从 import.io API 获取数据?

javascript - 无法使用 for 循环从多维数组中删除元素 (javascript)

php - 获取每行的最后成本

php - 查询内查询

php - 这些加密算法之间有什么区别?

php - 如何在分页中为每个页面拉取和显示范围(最小-最大)数据?

javascript - 使移动网络应用程序能够在用户移动默认浏览器中打开链接,而不是在应用程序内部打开

php - 如果不是整数或日期,如何在查询构建器中获取组中的最后一项?