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

В шаблоне страницы:

Code
<?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>