vladislafus
Новичок
Подскажите пожалуйста как заэкранировть символ ( < ) ? Сам запрос выглядит так:
Передача значений из PHP (при этом используется подключение
через ODBC к базе SPARQL):
PHP интерпритирует символ < как html тэг.
Функция htmlspecialchars не работает. После вывода через echo $query; в браузер передается нормальная строка с запросом, но htmlspecialchars убивает html тэг только для браузера, выражение <ns:User> в SQL запросе выглядит как <ns:User> . Как решить эту проблему? Буду рад любому совету, помощи и подсказке.
PHP:
$inquery = "sparql
INSERT DATA INTO <ns:User>
{
<ns:us1> ns:firstname"Иван".
<ns:us1> ns:lastname"Иванов".
<ns:us1> ns:grantname"Иванович".
<ns:us1> ns:staff"Хирург".
<ns:us1> ns:separation"Хирургическое".
} ";
Передача значений из PHP (при этом используется подключение
через ODBC к базе SPARQL):
PHP:
$first_name = $_POST['firstname'];
$lastname = $_POST['lname'];
$grant_name = $_POST['grantname'];
$staff = $_POST['staff'];
$separation = $_POST['separation'];
$login = htmlspecialchars($_POST['login']);
$pass = $_POST['password'];
$text = htmlspecialchars("<ns:User> ");
$graph = $text;
$text2 = htmlspecialchars("<ns:$login> ");
$f1 = htmlspecialchars("ns:firstname");
$f2 = htmlspecialchars("ns:lastname");
$f3 = htmlspecialchars("ns:grantname");
$f4 = htmlspecialchars("ns:staff");
$f5 = htmlspecialchars("ns:separation");
$query = "sparql INSERT DATA INTO $graph {
$text2 $f1 \"$first_name\".
$text2 $f2 \"$lastname\".
$text2 $f3 \"$grant_name\".
$text2 $f4 \"$staff\".
$text2 $f5 \"$separation\".}";
Функция htmlspecialchars не работает. После вывода через echo $query; в браузер передается нормальная строка с запросом, но htmlspecialchars убивает html тэг только для браузера, выражение <ns:User> в SQL запросе выглядит как <ns:User> . Как решить эту проблему? Буду рад любому совету, помощи и подсказке.