404 не найден - JS не отправляет переменные в PHP - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь отправить некоторые переменные в сценарий 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

1 Ответ

0 голосов
/ 13 ноября 2018

Имена переменных в посте ajax не соответствуют тому, что вы пытаетесь извлечь на принимающей стороне (PHP). Если вы придерживаетесь этих имен в JavaScript:

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

Вы должны использовать тот же ключ, чтобы собрать их в PHP:

$foo = $_POST["endadres"]

Для отладки я часто нахожу полезным добавить этот вывод отладки, чтобы увидеть все опубликованные переменные:

var_dump($_POST);

Во второй заметке (хотя и не связанной с вашим вопросом) ваш оператор вставки SQL очень опасен . Вы объединяете переменные непосредственно из внешнего запроса в строку запроса к базе данных, что означает, что потенциальный нарушитель может опубликовать что-то вроде:

carriersamo: "'; DROP TABLE Orders;"

, что приведет к удалению вашей таблицы Orders из вашей базы данных. Я рекомендую вам ознакомиться с модулем PHP PDO, где довольно просто подготовить «безопасные» операторы для базы данных. http://php.net/manual/en/book.pdo.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...