Отправка ссылки активации пользователя по электронной почте.Как это устроено? - PullRequest
0 голосов
/ 14 ноября 2011

После регистрации пользователя сайт отправляет код активации на электронную почту.что-то вроде того.www.domain.com/?activate=<code>

Я создаю 2 варианта активации: 1.manual 2.auto Допустим, у нас есть index.php.

1. Ручной метод. Когда кто-то хочет активировать пользователя вручную, все очевидно:

Пользователь открывает страницу www.domain.com/?activate

Index.php проверяет следующий скрипт и включает в себя файл div (который содержит форму активации)

   if (isset($_GET['activate'])) {
      $page='activate';
      $divfile = 'path to div.php';
    } 
    include $divfile;

Затем страница отправляет данные формы через ajax в файл activation.php.

2. Авто метод .Допустим, пользователь нажал прямо на www.domain.com/?activate=<code>.Что я хочу сделать, это проверить if(!empty($_GET['activate'])), если все в порядке.Я не могу понять, что делать.Программно отправить что-то вроде POST на activation.php или что?

Ответы [ 4 ]

1 голос
/ 14 ноября 2011

Обычно вы вызываете требуемую функцию из index.php. Вы бы ничего не опубликовали.

Посмотрите на include и include_once.

Вы должны инкапсулировать свой код активации в отдельный php-файл, который действует как ваша библиотека функций. Создайте метод activ (), который выполняет активацию, в файле с именем activ.php.

Затем из обоих activ.php и index.php вы делаете что-то вроде этого:

include 'activate.php';

// Call the activate function from activate.php
activate($code);

Однако вы не можете отправлять сообщения для вызова другого кода. Вы просто звоните из PHP.

0 голосов
/ 14 ноября 2011

Я вообще не понимаю твою проблему.

Обычная схема активации:

ссылка отправляется пользователю, указывая непосредственно на сценарий активации , например:

http://www.example.com/activation.php?code=code

в файле activ.php вы читаете переменную $_GET['code'] и активируете пользователя.

если вы хотите, чтобы пользователь мог вставить код в какую-то форму - добавьте форму на эту страницу. они вводят это и имеют ту же самую ссылку в результате. не так уж и важно.

вот и все. Никаких «программных постов», ни ajax, ни хитрых схем - все просто и просто.

0 голосов
/ 14 ноября 2011

Используйте $ _REQUEST, чтобы выбрать и GET, и POST (в зависимости от того, что доступно).Затем просто используйте тот же код, который обрабатывает форму, как страницу, которая обрабатывает запрос? Активации = 0000.

0 голосов
/ 14 ноября 2011

Я не уверен, что POST необходим, если вы делаете все это на одном сервере.Включаемый файл с функцией активации может быть все, что вам нужно.Однако, если вы обмениваетесь данными между серверами, лучше всего использовать HTTP_Request2, желательно с включенными параметрами SSL.

Сделать GET с HTTP_Request2 довольно просто.Получите открытый исходный код для него из PEAR.

// prep $serverName by putting the get parameters at the end
// of the URL with ?this=that
$req = new HTTP_Request2($serverName, HTTP_Request2::METHOD_GET);
$HTTPResponse = $req->send();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...