yiisoft / yii2

Yii 2: The Fast, Secure and Professional PHP Framework
http://www.yiiframework.com
BSD 3-Clause "New" or "Revised" License
14.24k stars 6.91k forks source link

Не могу пройти капчу, на чистом basic приложении. #9007

Closed Ineigo closed 9 years ago

Ineigo commented 9 years ago

На днях установил гит, композер, установил, по описанию в офф документации yii2 basic. Зашел в форму отправки сообщения и попытался отправить форму. Но валидация капчи не проходит, типо неверно ввел...

Совсем ни чего не менял.

Среда запуска: php 5.6, сервер запускал из папки web командой php -S localhost:8888, приложение запускал в трех браузерах: Хром, ИЕ, Мозила.

Подскажите с чем это может быть связано и как решить проблему?

yii2_01

ismorodin commented 9 years ago

Попробуй почитать здесь https://github.com/yiisoft/yii2/issues/1456

githubjeka commented 9 years ago

@ismorodin тут не связано с ajax валидацией.

Тут при clientValidateAttribute =false всё успешно проходит, а как только при clientValidateAttribute=true (как по умолчанию в basic приложении для contact формы) уже не работает.

githubjeka commented 9 years ago

@Ineigo а какие-нибудь ошибки есть в debug браузера?

Ineigo commented 9 years ago

В том и дело, что ни ошибок, ни запросов, ни чего... Запрос выполняется только при нажатии на картинку(смена кода капчи) @ismorodin Спасибо но я не дружу с английским, завтра попробую перевести)

githubjeka commented 9 years ago

Запрос не должен отправляться.

Каптча хранится в виде hash числа(как сумма кодов каждого символа), это число получает на стороне сервера и передаётся в html. При вводе каптчи, в браузере с помощью js ( charCodeAt) получается число - сумма юникодов каждого символа, которые вы ввели. Эта сумма сравнивается с hash и если это утверждение неверно, то вы получаете ошибку, что капчта введена неверно.

Поэтому очень странно, что у вас всегда hash не равен верной каптче.

Ineigo commented 9 years ago

Попробовал на работе тоже сделать, у меня капча прошла валидацию... Немного пошалив со средой запуска(сервер локальный) свелся к выводу: "Если запускать yii 2 приложение из консоли командой php -S localhost:8888, то капча не проходит валидацию. Если пошаманить с Denwer настройками apache2 на нужную папку, то капча проходит валидацию." Может кто сможет мне подсказать почему так происходит..? П.С.: Просто удобно запускать (php -S localhost:8888) из папки yii2, когда только изучаешь.

githubjeka commented 9 years ago

Что значит ?

Если пошаманить с Denwer настройками apache2 на нужную папку, то капча проходит валидацию

Ineigo commented 9 years ago

Ну просто добавить виртуальный хост на папку web. Такой вывод, получается(php -S localhost): C:\WebServers\home\yii2-tutorial\yii2-app-advanced\frontend\web>php -S localhost :8888 PHP 5.6.10 Development Server started at Mon Jul 06 10:08:52 2015 Listening on http://localhost:8888 Document root is C:\WebServers\home\yii2-tutorial\yii2-app-advanced\frontend\web

Press Ctrl-C to quit.

[Mon Jul 06 10:09:10 2015] PHP Fatal error: Uncaught exception 'yii\base\ErrorE xception' with message 'Unknown: open(/tmp\sess_sl5rsigflr15ggukrqdbjt4k93, O_RD WR) failed: No such file or directory (2)' in Unknown:0 Stack trace:

0 [internal function]: yii\base\ErrorHandler->handleError(2, 'Unknown: open(/..

.', 'Unknown', 0, Array)

1 {main}

thrown in Unknown on line 0

css

s

Ftoolbar&tag=559a29969d9c5

[Mon Jul 06 10:09:12 2015] PHP Fatal error: Uncaught exception 'yii\base\ErrorE xception' with message 'Unknown: open(/tmp\sess_sl5rsigflr15ggukrqdbjt4k93, O_RD WR) failed: No such file or directory (2)' in Unknown:0 Stack trace:

0 [internal function]: yii\base\ErrorHandler->handleError(2, 'Unknown: open(/..

.', 'Unknown', 0, Array)

1 {main}

thrown in Unknown on line 0

css

n.js

s

m.js

s

Ftoolbar&tag=559a29988d47c

559a2998974a6 [Mon Jul 06 10:09:12 2015] PHP Fatal error: Uncaught exception 'yii\base\ErrorE xception' with message 'Unknown: open(/tmp\sess_sl5rsigflr15ggukrqdbjt4k93, O_RD WR) failed: No such file or directory (2)' in Unknown:0 Stack trace:

0 [internal function]: yii\base\ErrorHandler->handleError(2, 'Unknown: open(/..

.', 'Unknown', 0, Array)

1 {main}

thrown in Unknown on line 0

[Mon Jul 06 10:14:32 2015] 127.0.0.1:62159 Invalid request (Unexpected EOF)

githubjeka commented 9 years ago

У меня проблем с запуском приложения через php -S localhost:8888 не возникает, и captcha отрабатывает нормально.

githubjeka commented 9 years ago

И судя по логу ошибки, у вас там что-то с настройками сессии в php.ini ...

Ineigo commented 9 years ago

А можешь прислать php.ini, я поковыряюсь посмотрю что не так.

githubjeka commented 9 years ago

https://github.com/php/php-src/blob/master/php.ini-development

Ineigo commented 9 years ago

Оо спасибо, замена php.ini исправила проблему. П.С.: обновлял php до 5.6 в Denwer'e от туда и пошла проблема Спасибки огромные, что не бросили в беде )))

githubjeka commented 9 years ago

Issue can be closed