Как правильно развернуть «спутниковую» форму - PullRequest
2 голосов
/ 30 марта 2011

Вопреки моим рекомендациям не делать этого, я должен создать форму, которую мы можем передать нашим филиалам, и разместить их на своем сайте - я ничего не контролирую, как только она меня покидает, я надеюсь, чтоопыт в этом сообществе может дать мне альтернативный подход к этому вопросу.Мне нужно закодировать нестандартную форму с элементами управления, которые филиал (надеюсь) не изменит.Партнер может затем настроить форму на своем сайте, стилизовать ее по своему усмотрению и отправить ее в сценарий PHP на моем сайте, который будет A) отправлять ее в нашу базу данных и B) отправлять некоторую информацию третьей стороне.Есть ли что-то, что я могу сделать с PHP - не эксперт, но я обычно могу понять это.desired flow

Аффилированные лица имеют различные уровни технических знаний, большинство из которых - на низком уровне, и не используются общие технологии (мы используем PHP).Некоторые потенциальные проблемы

  1. Реализация, если филиалы изменяют (по какой-либо причине) входные идентификаторы и / или имена, которые не будут отправлены в нашу базу данных
  2. Нет проверки на стороне клиента, предоставленной мной из-заих уровень квалификации / различия в языке программирования
  3. Я не могу контролировать НИЧЕГО на партнерских сайтах, я думаю, это сделает нашу базу данных уязвимой?
  4. в основном пользовательский опыт, если они отправят форму, которая являетсянедействительный и наша проверка на стороне сервера ловит его, отправляет их обратно на страницу партнера или к сообщению об ошибке на нашем сайте.Поскольку существует уровень квалификации / технология, я не могу ожидать, что филиалы установят скрипт curl и обработают сообщение об ошибке из скрипта отправки формы на своем сайте, поэтому я должен отправить их на страницу с ошибкой на нашем сайте.Тогда филиал потеряет лидерство.

Это были основные проблемы, с которыми я столкнулся, я уверен, что есть и другие.Поэтому мне нужно иметь что-то, что я могу просто передать филиалам, они подключают это к странице и заставляют работать.Кто-нибудь еще должен был сделать это раньше?Есть ли лучший способ справиться с этим?Возможно, iFrame?Я никогда не пользовался ими из-за проблем безопасности между доменамиЯ ценю любые советы и рекомендации, которые вы все можете дать.Я прошу прощения, если вопрос не является достаточно тщательным или рассматривается как хорошо продуманный.Я буду обновлять его по запросу.Спасибо!

Ответы [ 3 ]

1 голос
/ 30 марта 2011

Вы можете дать каждому клиенту код iframe для загрузки.Этот iframe будет загружать что-то вроде

. Вы можете использовать AFFILIATE_ID для стилизации формы определенным образом или, возможно, загрузить таблицу стилей, которую они вам предоставляют.

1 голос
/ 30 марта 2011

Что касается проверки, она действительно ничем не отличается от любой другой формы. Проверка на стороне клиента является просто рекомендательной. В любом случае вы должны убедиться в структуре и формате ввода в скрипте обработки формы.

Тогда у вас есть два варианта обработки ошибок. (1) Если бизнес-требования не запрещают это, я бы просто сделал его полноценным обработчиком форм. Если какое-либо полученное поле $ _POST содержит ошибки, снова напечатайте свою красивую версию формы. Включите сообщения об ошибках прямо здесь и добавьте Clippy (некоторый помощник по Javascript), чтобы помочь пользователям правильно заполнить форму.

Если не разрешено показывать настроенную версию формы на вашем конце, тогда (2) просто распечатайте сообщение об ошибке. Сделайте так, чтобы он отображался на несколько секунд, и обеспечьте автоматическое перенаправление обратно на исходную форму на сайте партнера. Часто даже достаточно предоставить:

<a href="javascript:history.back()">back to form on partner site</a>

Таким образом, ошибка подробно объясняется, но пользователь все еще может вернуться к предыдущей форме (со всем заполненным).

1 голос
/ 30 марта 2011

Как насчет того, чтобы вместо предоставления кода формы вашим партнерам, вы просто предоставляете им javascript - либо сам код, либо, что еще лучше, уменьшенный файл javascript - который создаст форму на их сайте.Таким образом, вы могли бы включить проверку на стороне клиента и определить расположение элементов формы, включая идентификаторы для полей формы?Все партнеры должны были бы добавить javascript в нужное место.Вы могли бы дать им некоторые альтернативы относительно JavaScript;например, один для отображения формы, другой для всплывающего диалога и т. д. Я не думаю, что это вызовет проблему межсайтового скриптинга, если действие формы было вашим PHP-скриптом на вашем сайте.Сокращение сценария уменьшит риск того, что филиалы "исправят" его.Вы могли бы даже дать им отдельный CSS-файл для стилизации элементов формы, если это необходимо, но это усложнит их.

...