PHP RESTful API не получает переменные и дает сбой

У меня простой спокойный api с php

<?php
    require "../ConfigBaza.php";

    $proizvodid = $_GET['proizvodid'];
    $naziv = $_GET['naziv'];
    $pdv = $_GET['pdv'];
    $aa = $_GET['akcijski_artikal'];
    $a = $_GET['aktivan'];
    $slika = $_GET['slika'];
    $jm = $_GET['jm'];
    $opis = $_GET['opis'];
    $katbr = $_GET['katbr'];

    $sql = "INSERT INTO Proizvod (PROIZVODID, NAZIV, PDV, AKCIJSKI_ARTIKAL, AKTIVAN, SLIKA, JM, OPIS, KATBR) VALUES ('$proizvodid', '$naziv', '$pdv', '$aa', '$a', '$slika', '$jm', '$opis', '$katbr')";

    if ($mysqli->query($sql))
    {
        echo("1");
    }
    else
    {
        echo("0" . "<br>");
        echo("PROIZVODID = " . $proizvodid . "<br>");
        echo("NAZIV = " . $naziv . "<br>");
        echo("PDV = " . $pdv . "<br>");
        echo("Akcijski Artikal = " . $aa . "<br>");
        echo("Aktivan = " . $a . "<br>");
        echo("SLIKA = " . $slika . "<br>");
        echo("JM = " . $jm . "<br>");
        echo("OPIS = " . $opis . "<br>");
        echo("KATBR = " . $katbr . "<br>");
    }
?>

И когда я ввожу URL-адрес следующим образом:

/Php/Proizvodi/Novi.php?proizvodid=3410&naziv=REVIZIJA%20200*200%20GIPS&pdv=20&akcijski_artikal=1&aktivan=1&slika=&katbr=74-1800%20P%20#2.012N3IZ&jm=kom&opis=Revizioni%20otvor

Он не выполняет sql, и по какой-то причине jm возвращает пустое значение, а opis возвращает пустое значение, даже если в этом нет необходимости.

Параметр URL с именем opis или jm отсутствует. Все, что находится после хэш-метки, является целью привязки, а не параметром URL. Таким образом, 2.012N3IZ&jm=kom&opis=Revizioni%20otvor не будет анализироваться как параметры.

feeela 14.08.2018 10:46
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
56
1

Ответы 1

Я думаю, вы могли бы искать что-то в этом роде https://www.designcise.com/web/tutorial/how-to-get-key-value-pair-from-url-query-string-in-php

В этом примере они используют parse_str ($ _ SERVER ['QUERY_STRING'], $ output); чтобы получить необработанные значения без кодировки URL.

Я считаю, что это связано с наличием # в строке URL-адреса.

Сервер не может получить доступ к переменным за пределами #, они доступны только из внешнего интерфейса.

Надеюсь это поможет.

Другие вопросы по теме