Странная ошибка PHP: 'Не может использовать функциональное возвращаемое значение в контексте записи'

Вы почти там. EncodeURIComponent правильно кодирует к UTF-8, который является тем, что необходимо всегда использовать в URL сегодня.

проблема состоит в том, что отправленная строка запроса становится искалеченной на пути в Ваш сценарий серверной стороны, потому что getParameter () использует ISO-8559-1 вместо UTF-8. Это происходит с Древних времен перед сетью, обоснованной на UTF-8 для URI/IRI, но это довольно вызывает жалость, что спецификация Сервлета не была обновлена для соответствия действительности, или по крайней мере предоставляет надежную, поддерживаемую возможность для нее.

(Существует request.setCharacterEncoding в Сервлете 2.3, но это не влияет на парсинг строки запроса, и если единственный параметр был считан прежде, возможно некоторым другим элементом платформы, это не будет работать вообще.)

, Таким образом, Вы должны к futz вокруг с определенными для контейнера методами получить надлежащий UTF-8, часто вовлекая материал в server.xml. Это полностью сосет для распределения веб-приложений, которые должны работать где угодно. Поскольку Tomcat видит http://wiki.apache.org/tomcat/FAQ/CharacterEncoding и также What' s различие между " URIEncoding" из Tomcat, Кодируя Фильтр и request.setCharacterEncoding.

179
задан hakre 2 June 2012 в 01:48
поделиться

4 ответа

Вы имеете в виду

if (isset($_POST['sms_code']) == TRUE ) {

, хотя, кстати, вы действительно имеете в виду

if(isset($_POST['sms_code'])) {
111
ответ дан 23 November 2019 в 06:14
поделиться
if (isset($_POST('sms_code') == TRUE ) {

замените эту строку на

if (isset($_POST['sms_code']) == TRUE ) {

Вы используете круглую скобкуseis () для $ _ POST , но вам нужны квадратные скобки []

:)

OR

if (isset($_POST['sms_code']) && $_POST['sms_code']) { 
//this lets in this block only if $_POST['sms_code'] has some value 
22
ответ дан 23 November 2019 в 06:14
поделиться

Правильный синтаксис (в конце у вас отсутствовали круглые скобки):

if (isset($_POST['sms_code']) == TRUE ) {
                            ^

ps вам не нужна часть == TRUE , потому что BOOLEAN (true / false) - это уже вернулся.

11
ответ дан 23 November 2019 в 06:14
поделиться

Когда я читал на этой странице , я следовал по ссылке на MSDN, где нашел функцию GetBestInterface . Я смог использовать его, чтобы найти адаптер, подключенный к Интернету

-121--4222952-

Дополнительная заметка, которую другие могут найти полезной, начиная с моей недавней попытки установить в Windows с помощью devkit Ruby:

Чтобы установить devkit, извлеките каталоги bin и devkit в каталог Ruby, который поместит несколько файлов в корзину Ruby и каталог devkit в каталог Ruby Затем, в соответствии с инструкциями, в файле fstab необходимо задать правильное расположение mingw.

В моем случае некоторые драгоценные камни, а именно Hpricot и Ruby-Debug19, не будут установлены в моей системе даже при правильной установке devkit из-за ошибки создания make-файла. В итоге я установил последнюю версию mingw отдельно от SourceForge, затем изменил файл fstab в каталоге « ruby19/devkit/msys/1.0.11/etc », чтобы указать на каталог, где я установил mingw. Затем оба драгоценных камня установлены правильно.

-121--2591520-

Это также происходит при использовании пустого значения для возвращаемой функции:

!empty(trim($someText)) and doSomething()

, поскольку пустое значение не является функцией, а является конструкцией языка (не уверена), и оно принимает только переменные:

Правильно:

empty($someVar)

Неправильно:

empty(someFunc())

Поскольку PHP 5.5 поддерживает более переменных. Но если это нужно раньше 5.5, используйте обрезку ($ name) = = false . Из пустой документации .

490
ответ дан 23 November 2019 в 06:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: