2016-12-01 4 views
0

я постараюсь быть как можно более коротким относительно того, что я пытаюсь выполнить:Как создать форму PHP для каждого (уникального) URL-адреса перенаправления?

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

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

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

  • Каждая ссылка URL в сообщениях, посланных на самом деле УНИКАЛЬНЫЕ переназначения, каждый принадлежащий к 1 из 5000 контактов, достигнутых. Каждый контакт получил свою собственную ссылку как по SMS, так и по электронной почте. Все это означает, что в базе данных, которую я использую для отправки сообщений, каждому контакту присваивается URL-адрес перенаправления/короткого 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», [SUBMIT].

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

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

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

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

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

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

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

PS: извиняются за плохой английский;)

ответ

0

Первых вещей первым, не используйте дополнительные идентификаторы. Это связано с тем, что известно как атака последовательного числа. Вместо этого используйте UUID. В противном случае гость может ввести следующий/предыдущий/случайный идентификатор и, возможно, RSVP для другого гостя. Это плохая новость для вас, но отлично подходит для злоумышленника (они будут делать это для lulz ... это может стоить жертве большой $$$, например, например, покупать ненужные ужины). См. 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] 

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

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

-

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

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

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

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