Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как валидно передать строчку с русскими символами через параметр id в ссылке?
Форумы портала PHP.SU » » HTTP и PHP » Как валидно передать строчку с русскими символами через параметр id в ссылке?

Страниц (1): [1]
 

1. alex_uni - 21 Января, 2015 - 17:21:40 - перейти к сообщению
Есть ссылка:
PHP:
скопировать код в буфер обмена
  1. <td><a href="?id=<?=$item['department'];?>"><?=$item['department']?></a></td>

Подскажите пожалуйста, как можно передать строчку с русскими символами через параметр id в ссылке, чтобы валидатор не ругался?
Цитата:
Bad value ?id=торговая группа for attribute href on element a: Illegal character in query: not a URL code point.
<td><a href="?id=торговая группа">торговая группа</a></td>
Syntax of URL:
Any URL. For example: /hello, #canvas, or http://example.org/. Characters should be represented in NFC and spaces should be escaped as %20.

Сама строка причем передается правильно, порос в валидности
Буду бгагодарен за ответ!
2. RickMan - 21 Января, 2015 - 17:33:25 - перейти к сообщению
3. alex_uni - 21 Января, 2015 - 20:19:39 - перейти к сообщению
Решил с помощью функций кодирования (urlencode)- раскодирования (urldecode). Может, кому-нить пригодится
PHP:
скопировать код в буфер обмена
  1. <td><a href="?id=<?=urlencode($item['department']);?>" ><?=$item['department']?></a></td>

и раскодирование на принимающей стороне

Теперь все хорошо передается и код валиден! Проблема решена! Улыбка
4. skiphog - 21 Января, 2015 - 21:49:48 - перейти к сообщению
Переменные в суперглобальных массивах $_GET и $_REQUEST уже декодированны. Применение urldecode() к элементам $_GET или $_REQUEST может привести к непредсказуемым и опасным результатам.
--
© php.net https://php.net/manual/ru/function.urldecode.php

 

Powered by ExBB FM 1.0 RC1