Значение из $_SERVER подставляется в mysqli запрос

116
20 июня 2019, 12:40

$_SERVER['REQUEST_URI'] - возвращает строку '/electricity'. При помощи substr удаляю слэш и получаю electricity. При отправке запроса оно не может найти таблицу с таким названием. Хотя, когда я на прямую вставляю в запрос название таблицы 'electricity' он норм. отрабатывает. В чем может быть проблема?

require '../database/db.php';
$table = substr(1,$_SERVER['REQUEST_URI']);

$prev = htmlspecialchars($_POST['prev']);
$curr = htmlspecialchars($_POST['curr']);
$sum = htmlspecialchars($_POST['sum']);

$query = Data_Base::query("INSERT INTO `{$table}`(`previous_record`,`current_record`,`sum`) VALUES ({$prev},{$curr},{$sum})");
Answer 1
string substr ( string $string , int $start [, int $length ] )

У вас ошибка в параметрах. Поменяйте местами 1 и $_SERVER['REQUEST_URI']

SQL Инъекция

Остерегайтесь подстановки непроверенных параметров от пользователя в запрос базы данных. Обратившись на адрес:

http://site.ru/table VALUES (1,2,3)`;DROP DATABASE `name`;INSERT INTO 

В данном случае, злоумышленник получит возможность удалить вашу базу данных если имеется возможность выполнить несколько запросов. Это один из вариантов возможной атаки.

Пользуйтесь подготовленными запросами с проверкой параметров.

Полезные ссылки

Документация по substr

Подготовленные запросы

READ ALSO
Не работает простетский скрипт. Parse error

Не работает простетский скрипт. Parse error

Не судите строгоЭто можно сказать мой первый скрипт, который я разбираю и тот комом

125
Как использовать WooCommerce api внутри файла function.php

Как использовать WooCommerce api внутри файла function.php

Я уже использовал на практике WooCommerce api на определенной страницеРазобрался с тем как должен выглядеть путь запрос

103
Как исключить страницы из условия, в котором заданы страницы?

Как исключить страницы из условия, в котором заданы страницы?

Допустим, имеется категория Вода (id='500') а в ней есть подразделы

117