2010-01-26 3 views
8

Я пишу веб-приложение с использованием PHP и запускаю несколько ситуаций, когда мне нужен аналогичный код на сервере и в браузере. Например:Тот же код в браузере/сервере

  • Я хочу проверить вход пользователя и сгенерировать те же сообщения об ошибках с обеих сторон.
  • Я хочу форматировать данные с использованием определенных правил (например, если заданное поле меньше 1, покажите его с двумя знаками после запятой, в противном случае - нет), и оно будет отображаться одинаково независимо от того, какая сторона его отображает.

Похоже, что это должна быть общая проблема, так как люди двигают логику с сервера на браузер. Но существуют ли общие шаблоны или библиотеки для работы с ним (особенно для PHP)?

+3

Хороший вопрос, хотя, строго говоря, ** перемещение ** проверка с сервера на браузер - плохая идея для безопасности. Лучше «предварительно проверить» в браузере (для немедленной обратной связи с пользователем) и повторить проверку на сервере (для обеспечения безопасности). –

+0

Абсолютно - я хочу его в обоих местах. –

ответ

3

Одним из решений было бы использовать server-side JavaScript. Тогда вы сможете делиться огромными кусками кода.

+0

+1 для SSJS. http://www.jaxer.org/ - хороший. – RameshVel

1

Частичным решением является AJAX. Например, напишите свой код проверки один раз на сервере и позвольте вашим формам разговаривать с сервером, чтобы узнать, является ли вход действительным, и попросите отобразить сообщение об ошибке, если нет.

+0

хотя (если вы просто не говорите о совместном использовании кода, но все еще выполняете проверку с обеих сторон), это предполагает, что JavaScript включен/доступен – AJM

0

json_encode и json_decode - отличный старт - тот же источник данных, доступный в массивах php и json-объектах по мере необходимости.

json_encoded данные могут быть отправлены через теги <script> или ajax, как вы сочтете нужным.

2

Интересный вопрос! Насколько я знаю, что есть 2 варианта PHP:

  • Использование Ajax сделать проверку формы, так что все происходит на сервере.
  • Существует эта попытка принести PHP функции JS, которые должны, по крайней мере, облегчить портирование: http://phpjs.org/

В Java, однако, вы можете запустить Javascript с Rhino.

Другие вещи, о которых я могу думать, - это уродливые хаки с апплетами Flash или Java или связаны с каркасом, например, с пижамой.

0

Быстрая проверка на стороне клиента (например, соответствие шаблону, дата & правильности номера) и проверка безопасности на стороне сервера.
Также вы можете использовать AJAX для проверки на стороне сервера, но таким образом вы можете иметь ответный промежуток между пользовательским вводом и результатом проверки. Поэтому используйте JavaScript для быстрой и базовой проверки и делайте тяжелую работу с PHP.

0

Вы можете использовать http://phpjs.org/, чтобы запустить php-код на стороне клиента. Это работает для большинства функций в php.

2

Вы можете попробовать использовать язык haxe. Его можно перевести в js/php и даже actionscript (flash).

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