Перейти к публикации

Рекомендованные сообщения

Представим, что есть поле testfield, содержащее значение "AnyText#123"

{include file="engine/modules/test.php?myxfield=[xfvalue_testfield]&myxfield2=blabla"}

Как думаете, что передастся в test.php в переменной $myxfield ?

AnyText

А # и то что после него удаляются. Возможно такое не только с #, не знаю.

 

Версия 15.0, может в новых версиях пофикшено, не знаю.

Изменено пользователем webair
Ссылка на сообщение
Поделиться на других сайтах
  • webair изменил заголовок на inclide xfvalue с #

И в чем баг? Что означает символ # в URL адресах? Правильно это начало якоря а не просто символ. Якоря доступны только клиентской части, т.е. браузеру, и недоступны никогда серверной части, т.е. скриптам PHP. Таковы стандарты URL. Строка которую вы передаете в include проходит разбор строго по стандартам URL, соответственно клиентская часть не будет присутствовать в скриптах. И для того чтобы передавать # как символ в серверную часть, параметры URL нужно корректно кодировать, а не просто передавать в чистом виде.

Здесь нет никакого бага со стороны DLE, просто вы некорректно передаете параметры, не соответствующие стандартам URL. А требование следовать стандартам URL обязательно.

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, celsoft сказал:

И в чем баг? Что означает символ # в URL адресах? Правильно это начало якоря а не просто символ. Якоря доступны только клиентской части, т.е. браузеру, и недоступны никогда серверной части, т.е. скриптам PHP. Таковы стандарты URL. Строка которую вы передаете в include проходит разбор строго по стандартам URL, соответственно клиентская часть не будет присутствовать в скриптах. И для того чтобы передавать # как символ в серверную часть, параметры URL нужно корректно кодировать, а не просто передавать в чистом виде.

Здесь нет никакого бага со стороны DLE, просто вы некорректно передаете параметры, не соответствующие стандартам URL. А требование следовать стандартам URL обязательно.

А передача параметров в {include} разве сделана через http запрос? Я думал, это подключение файла аналогичное php include. 

Ну допустим http, почему тогда не urlencode? 

param=urlencode([xfvalue_X]) 

Хорошо, я сделал по другому что надо было. 

 

Моё дело сообщить :) 

Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, webair сказал:

А передача параметров в {include} разве сделана через http запрос?

Передача параметров обрабатывается также как если бы это был HTTP запрос через браузер. По тем же правилам и принципам и стандартам. Об этом указано в документации https://dle-news.ru/extras/online/index.html?modules_include.html

5 минут назад, webair сказал:

Я думал, это подключение файла аналогичное php include. 

Нет. Более того php include вообще не принимает и обрабатывает никаких параметров. php include подключает только файл без каких либо параметров и не поддерживает и не обрабатывает вообще никаких параметров

5 минут назад, webair сказал:

Ну допустим http, почему тогда не urlencode? 

param=urlencode([xfvalue_X]) 

Потому что {include file="engine/modules/test.php?myxfield=[xfvalue_testfield]&myxfield2=blabla"} это не PHP код. Какой там должен быть urlencode? urlencode это PHP функция. И для выполнения своего PHP кода вам нужно писать именно свой PHP код.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...