Длина имени ключа $ _POST? - PullRequest
2 голосов
/ 01 мая 2011

Я испытываю очень странное поведение.Скажем, у меня есть следующие два <input type='image'> (с атрибутом src, равным атрибуту name):

<input type='image' name='http://farm1.static.flickr.com/224/471627793_fbda6cecbe_s.jpg'>
<input type='image' name='http://farm5.static.flickr.com/4053/4501238330_c5a85162ef_s.jpg'>

Мой вопрос: почему первый вход отправляет, а второй нет?т?Я использую CakePHP, и если я нажму на второе изображение, $this->params['form'] будет пустым.Но когда я нажимаю на первое изображение, все работает нормально: $this->params['form'] содержит правильное имя изображения вместе с координатами, из которых оно было щелкнуто.

Это очень странное поведение, и я считаю, что это можетпроисходит только в том случае, если $_POST ограничивает длину ключей.

Любая помощь очень важна!Спасибо!

Ответы [ 2 ]

4 голосов
/ 01 мая 2011

PHP сам по себе не ограничивает длину имени поля для multipart/ или -urlencoded запросов POST.

Но suhosin действительно имеет http://www.hardened -php.net / suhosin / configuration.html #suhosin.post.max_name_length со значением по умолчанию 64.И ваш второй URL действительно имеет длину 64 символа.

Менее вероятно, но также возможно установка mod_security.Однако это приведет к появлению сообщения об ошибке, а не к его усечению.

1 голос
/ 01 мая 2011

Я не уверен, что это связано с длиной, согласно w3.org:

Жетоны ID и NAME должны начинаться с буква ([A-Za-z]) и может сопровождаться по любому количеству букв, цифр ([0-9]), дефисы ("-"), подчеркивание ("_"), двоеточия (":") и точки ( "").

так что, возможно, проблема связана с недопустимыми символами в имени.

Вы пробовали это в разных браузерах?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...