Регистрация    Войти
Авторизация

Скрипт Подписка на рассылку для ucoz

Скрипт Подписка на рассылку для ucoz

В этом примере демонстрируется как с помощью php-скриптов создать проверочный код и с помошью него подписать/отписать пользователя на какую-либо рассылку. Подразумевается, что сама рассылка выполняется каким-то серверным скриптом или программой. Скрипт создает на странице форму с соответствующими полями и кодом подтверждения, пользователь выбирает действие, которое он хочет совершить (подписаться/отписаться), и вводит изображенный на картинке код. Если введенный код
Cоответствует изображенному, форма отсылается и действие выполняется. Фактически, данный скрипт может использоваться более широко везде, где требуется код безопасности для подтверждения действий пользователя (например, активации/деактивации каких-то флагов для пользователя, установки/снятия каких-либо признаков и т.п). Исходный код данного примера приведен ниже.
В шаблоне страницы:



<?IF($USER_ID$)?> 
  <div align="center">
  <p>
  <b>Данный пример демонстрирует использование скрипта для подписки/отписки на какую-либо рассылку для текущего пользователя с использованием кода безопасности</b>
  </p>
  </div>
  <hr>
  <?$PHPCODE$("http://phpexample.ucoz.net/php/example000/example000.php?uid=",$USER_ID$)?>
<?ELSE?>
  <div id="phpdiv">
  <p>Вы не зарегистрированны. Пожалуйста, зарегистрируйтесь или войдите своей учетной записью</p>
  </div>
<?ENDIF?>



<?php
  session_start();
  if(count($_POST)>0){
  $___notjson=1;
  if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring']){
  $lines = file('subscr.dat');
  if ($_POST['atype'])
  {
  $status_ok=0;
  foreach ($lines as $line_num => $line) {
  if (trim($line)==$_POST['userid'])
  {
  unset($lines[$line_num]);
  file_put_contents('subscr.dat', $lines);
  $status_ok=1;
  break;
  }
  }
  if ($status_ok) echo "$('#captcha_result').html('Вы отписались от рассылки')";
  else echo "$('#captcha_result').html('Вы не были подписаны на рассылку')";
  }
  else
  {
  $status_err=0;
  foreach ($lines as $line_num => $line) {
  if (trim($line)==$_POST['userid'])
  {
  $status_err=1;
  break;
  }
  }
  if ($status_err) echo "$('#captcha_result').html('Вы уже подписаны на рассылку')";
  else {
  if (file_put_contents('subscr.dat', $_POST['userid']."\n", FILE_APPEND)==FALSE) echo "$('#captcha_result').html('Ошибка, попробуйте позже')";
  echo "$('#captcha_result').html('Вы подписались на рассылку')";
  }
  }
  }else{
  echo "$('#captcha_result').html('Неверный код безопасности')";
  }
  exit;
  }
  unset($_SESSION['captcha_keystring']);
?>

<p>Рассылка новостей</p>
<form action="/php/example000/example000.php" method="post" onsubmit="_uPostForm(this,{dataType:'script'});return false;" onerror="alert('Error');">
<p><input type="hidden" name="userid" value="<?echo $_GET['uid']?>"></p>
<p><input type="radio" name="atype" value="0" CHECKED/>Подписаться</p>
<p><input type="radio" name="atype" value="1" />Отписаться</p>
<p><img src="/php/example000/index.php?<?php echo session_name()?>=<?php echo session_id()?>"></p>
<p><input type="text" name="keystring"></p>
<p><input type="submit" value="Ok"></p>
</form>
<div id='captcha_result'></div>

Есть вопросы по шаблону или скрипту? так задай их и мы ответим!

Автор: zomatsa  5-04-2011, 09:33   Просмотров: 4008   
Подписка, рассылку, Скрипт
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.


Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.