как определить, с какого сайта пользователь отправил форму? - PullRequest
1 голос
/ 01 февраля 2012

Я хочу определить, с какого сайта пользователь отправил контактную форму.

Контактная форма представляет собой включаемый файл (.shtml), и этот файл используется на двух разных веб-сайтах. Поскольку это всего лишь один файл (включает), будет ли это делать оператор javascript if...else или оператор switch? Если так, то как бы это было написано?

Я новичок в JavaScript и мне не пришлось много писать, поэтому буду признателен за помощь с синтаксисом.

Я подумал о добавлении двух скрытых полей в одно, включая контактную форму, с идентификаторами двух разных сайтов:

HTML

<input type="hidden" data-id="new_student_signup" name="student_signup" value="" />
<input type="hidden" data-id="existing_student_signup" name="existing_student_signup" value="" />

JS

if(data-id="new_student_signup"){

  // this user came from the new student website

   code if this condition is true
 }

else if(data-id="existing_student_signup"){

  // this user came from the existing student website

   code if this condition is true

 }

Или я должен просто создать новый файл включения для другого сайта и добавить скрытое поле в этот файл вместо использования javascript для одного включения?

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

Ответы [ 2 ]

1 голос
/ 01 февраля 2012

Вы можете сделать это с помощью сценариев на стороне сервера, проверив HTTP_REFERRER.

Пример PHP

<?php
if(!empty($_SERVER['HTTP_REFERRER']) && $_SERVER['HTTP_REFERRER'] == 'http://google.com/')
{
// proceed accordingly
}

Возможно, вы захотите выделить реферера на основе доменаимя или более конкретные данные в URL-адресе, а не вся строка ссылки HTTP.В этом случае взгляните на http://php.net/parse_url.


Вы также можете сделать это с помощью JavaScript, открыв свойство document.referrer.

0 голосов
/ 01 февраля 2012

Вы можете сделать это в javascript, проверив свойство document.url и поместив его в скрытое поле ввода. Тем не менее, я думаю, что вам лучше проверить это в программном коде на стороне сервера. Вы можете просто проверить текущий сервер и использовать его, чтобы определить, какая это форма. Вы можете сделать это, получив переменную сервера SERVER_NAME , которая сообщит вам домен, в котором вы сейчас находитесь.

...