Forums / National / Russian / Тех. поддержка / cot_import и амперсанды [решено]

Kopusha
#1 2024-06-01 09:19

Бьюсь с час не могу понять отчего

<input class="remove-only-hash latin-only" type="text" name="rname[334]" value="Muxiyuan Post &amp; Sub-bureau">

на самой странице - Muxiyuan Post & Sub-bureau
в коде
$name = cot_import('name', 'G', 'TXT'); (да и cot_import('name', 'G', 'NOC'))
присваивает Muxiyuan Post
все что после амперсанда отрезается
где копать то?
это самое начало кода
 

if ($a == 'del')
{
	$pid = cot_import('pid', 'G', 'INT');
	$name = cot_import('name', 'G', 'TXT');

мне надо $name в том виде как он на странцие (в виде 'Muxiyuan Post & Sub-bureau')

Добавлено 1 минута спустя:

тут даже речь не про htmlspecialchars - обрезает вообще в $name = cot_import('name', 'G', 'TXT'); все что после & вместе с ним

This post was edited by Kopusha (2024-06-01 14:56, 4 months ago)
Alex300
#2 2024-06-01 14:19

На текущей master ветке: Форма - Результат. system/functions.php давно обновлялся? Никакие плагины запрос не меняют?

А, только сейчас заметил. Используете амперсанд в GET запросе. А он там - спецсивол. Служит для разделенеия параметров. Естественно, все что после него "обрезается", ведь все что после него сервер воспринимает как другой GET параметер.

Судя по коду if ($a == 'del') ... что то удаляется. Для этого дучше использовать ID-шник, а не имя.

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
Kopusha
#3 2024-06-01 14:59

да тут даже не в этом дело.
Импорт был не из

<input class="remove-only-hash latin-only" type="text" name="rname[318]" value="Bairong's World Trade Center">

а из кнопки удаления
 

<a class="button btn btn-default" onclick="return confirm('Confirm')" title="Delete" href="en/admin/other?p=locationselector&amp;n=place&amp;id=30638&amp;a=del&amp;pid=318&amp;name=Bairong%2527s%2520World%2520Trade%2520Center">Delete</a>

и тут надо было рыть собаку
решил через жопу

	$name = cot_import('name', 'G', 'TXT');
	$name = urldecode($name);//have to decode name from delete url


"PLACE_ROW_DEL_URL" => cot_url('admin', 'm=other&p=locationselector&n=place&id=' . $id . '&a=del&pid=' . $item['place_id'] . '&name=' . rawurlencode($item['place_name'])),

 

Добавлено 2 минуты спустя:

#48060 Alex300:

Судя по коду if ($a == 'del') ... что то удаляется. Для этого дучше использовать ID-шник, а не имя.

Удаляется то как раз все корректно. При удалении надо из name сделать трансформации именно с текстом и найти вообще в другом месте этот текст и его оттуда удалить.
Проще говоря - удалили place of interest из локаций - удалили его же в словарях хештегов.

Добавлено 5 минут спустя:

Хотя конечно правильно по уму
&a=del&pid=' . $item['place_id']

и затем запрос в БД а дай как мне name от этого id и уже с ним работать
 

This post was edited by Kopusha (2024-06-01 15:06, 4 months ago)