Как создать форму PHP для каждого (уникального) URL перенаправления?

Я постараюсь быть максимально кратким о том, что я пытаюсь сделать:

  • Допустим, я отправляю сообщение через SMS & Электронная почта на 5000 контактов (но я хочу, чтобы это работало даже на 10 или 1.000.000, независимо от объема).
    В этом сообщении я рекламирую такое событие, как, например, званый ужин в каком-то модном месте. Приглашаются все, кто получил это сообщение.
    Каждое сообщение содержит URL, ссылающийся на целевую страницу, посвященную событию. Эта страница отзывчива, она открывается приятной картинкой + текст, базовая информация и форма PHP для ответа на приглашение.

  • Эта форма имеет несколько полей. В этом примере, скажем:

    Ты идешь на вечеринку? (ответ на выбор: «Да» или «Нет, спасибо»).
    Вас будут сопровождать? (ответ на выбор: «Только я» или «+1», «+2»).
    Что-нибудь еще, что вы хотели бы сообщить нам? (свободное поле для ввода).
    [ОТПРАВИТЬ]

  • Каждая URL-ссылка в отправленных сообщениях фактически является УНИКАЛЬНЫМ перенаправлением, каждое из которых принадлежит 1 из 5000 достигнутых контактов.
    Каждый контакт получил свою ссылку в SMS и на электронную почту.
    Все это означает, что в базе данных, которую я использую для отправки сообщений, каждому контакту присваивается перенаправление / короткий URL.
    Таким образом, я очень хорошо знаю, кто даже только что открыл целевую страницу, без необходимости просить новичков заполнить какую-либо информацию.
    Я просто знаю это, например:

    Mr. Skywalker is http://website.com/dinnerparty/01
    Ms. Organa is http://website.com/dinnerparty/02
    Mr. Solo is http://website.com/dinnerparty/1138
    Mr. Calrissian is http://website.com/dinnerparty/4469
    
    And they all redirect to http://website.com/dinnerparty/
    

Пока все хорошо, правда ?!
Теперь вот сложная часть …

  • Ребята, мне нужно, чтобы вы помогли мне с привязкой и привязкой формы PHP на странице к этим уникальным URL-адресам.
    По сути, когда г-н Калриссиан нажимает на / 4469, я хочу, чтобы он мог нажать «Да» (я иду на вечеринку), «+2», [ОТПРАВИТЬ].

После того, как он подтвердил, что, если он обновит страницу, он больше не сможет отправить форму. Вместо этого он видит сообщение типа «Ваш ответ получен, спасибо!». Страница практически одинакова для всех в списке контактов, но, поскольку это ЕГО ссылка, отображается ЕГО форма.

  • После этого мне нужно иметь возможность получить эту информацию (выбор, который он сделал).

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

До сих пор я думаю, что мне нужно как-то дать и идентифицировать каждую из 5000 форм, и я просто предполагаю, что информация о том, что «этот URL = эта форма» будет содержаться в URL, будет выглядеть примерно так:http://website.com/dinnerparty-356a192b7913b04c54574d18c28d46e6395428ab

Все это звонит в какой-нибудь колокол? Мои запросы пока (играю с ключевыми словами «PHP» & «URL») только что научил меня, как переносить информацию из контактной формы в содержимое другой страницы с массивом GET, но это не то, что мне нужно.

Так что, если у вас есть какие-либо подсказки, любые указания относительно того, как это реализовать, я был бы благодарен!

Спасибо за чтение, любая помощь будет высоко ценится!

PS: простите за плохой английский;)

0

Решение

Прежде всего, не используйте инкрементные идентификаторы. Это склонно к так называемой атаке с последовательным номером. Вместо этого используйте UUID. В противном случае гость может ввести следующий / предыдущий / случайный идентификатор и, возможно, RSVP для другого гостя. Это плохая новость для вас, но отличная для злоумышленника (они будут делать это для лулзов … это может стоить жертве больших $$$, таких как, например, покупка ненужных обедов). Увидеть https://www.youtube.com/watch?v=CgJudU_jlZ8 а также https://www.youtube.com/watch?v=gocwRvLhDf8 для некоторых хороших объяснений.

Во-вторых, вы должны поддерживать UUID в URL, например, http://website.com/guest/123e4567-e89b-12d3-a456-426655440000 — используя скрипт или что-то вроде .htaccessВы можете забрать UUID и передать его в один скрипт. Например:

RewriteEngine On
RewriteRule ^/guest/(.*)$ /my-form.php?id=$1 [L]

Оттуда, в вашем my-form.php, вы можете проверить, если $_GET['id'] существует, а затем проверяет его (существует ли он? был ли он ранее отправлен и т. д.). Если он проверяется, вы можете затем отобразить форму как обычно и опубликовать для себя (с UUID в URL, по-прежнему). При отправке вы снова подтверждаете идентификатор и обрабатываете отправку.

Затем, при последующих загрузках страницы, вы можете запретить повторную отправку формы … или, наоборот, разрешить пользователям редактировать свой ответ. Может быть, они больше не будут +2 … но вариант использования зависит от вас, некоторые RSVP не позволяют редактировать после даты X … так что имейте это в виду.

Теперь, чтобы обсудить массовые SMS / почтовые сервисы, вы бы хотели иметь базу данных пользователей уже. Для того, чтобы отправлять уникальные ссылки, вам просто нужно сделать то, что известно как «Слияние почты» (или теги слияния и т. Д.) … В основном, вы должны иметь URL в бюллетене / сообщении, например: http://website.com/guest/[guest_id] и mailmerge заменит [guest_id] с UUID в вашей базе данных.

Существует множество служб массовой рассылки почты / смс, поэтому мне не нужно их перечислять. Выберите тот, который имеет API и соответствует вашим требованиям.

Надеюсь это поможет. Удачи 🙂

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]