2013-06-09 2 views
0

Я последовал за учебник, в котором автор имел в своем коде:Является ли Php 'POST' регистром нечувствительным?

if($_SERVER['REQUEST_METHOD'] == 'post'){ 

echo 'something'; 

} 

Я всегда использовал «POST» вместо «пост» для такого рода вещей. Для меня «что-то» не отражалось, когда на самом деле были представлены данные POST на странице. Я изменил «пост» на «POST», и он сработал!

Теперь я думал, что POST не чувствителен к регистру, и в комментариях не сказано, что у них была та же проблема. Так что тут не так? Почему это не работает с «пост»

Также в форме, представленной данных на этой странице была эта: метод = «Post»

Пожалуйста, дайте мне знать об этом. Спасибо.

+1

'если (strtolower ($ _ SERVER [ 'REQUEST_METHOD']) === 'пост')' использовать вместо – Yang

+0

@metal_fan Это будет убедиться, что это сделано правильно ; хороший комментарий, должен был воплотить его в качестве ответа. Делает большой смысл. –

ответ

4

Да, они, согласно RFC 2616 (курсив):

5.1.1 Метод
код [HTTP] Метод маркер указывает на то, что метод будет выполняться на ресурсе, идентифицированного Request-URI , Метод чувствителен к регистру.

Поскольку эта информация передается на PHP любым контейнером, из которого он запущен (mod_php и т. Д.), Метод должен быть прописным, чтобы он принимался.

+0

+1, но я использовал 'method =" POST "и' method = "post" и PHP ответы с 'POST' для' $ _SERVER ['REQUEST_METHOD'] '. Является ли это односторонним действием на сервере или же браузер делает типы методов автоматически общими? –

1

Вы сравниваете строки и чувствительны к регистру.

Таким образом, вы должны сравнить с 'Post'

+0

@SameerZahid У вас есть ссылка на учебник? Может быть, там что-то еще происходит. – JJJ

+0

http://net.tutsplus.com/tutorials/php/secure-your-forms-with-form-keys/ –

Смежные вопросы