В этом примере демонстрируется как с помощью php-скриптов создать проверочный код и с помошью него подписать/отписать пользователя на какую-либо рассылку. Подразумевается, что сама рассылка выполняется каким-то серверным скриптом или программой. Скрипт создает на странице форму с соответствующими полями и кодом подтверждения, пользователь выбирает действие, которое он хочет совершить (подписаться/отписаться), и вводит изображенный на картинке код. Если введенный код соответствует изображенному, форма отсылается и действие выполняется. Фактически, данный скрипт может использоваться более широко везде, где требуется код безопасности для подтверждения действий пользователя (например, активации/деактивации каких-то флагов для пользователя, установки/снятия каких-либо признаков и т.п). Исходный код данного примера приведен ниже. В шаблоне страницы:
Code
<?IF($USER_ID$)?>
<div align="center">
<b>Данный пример демонстрирует использование скрипта для подписки/отписки на какую-либо рассылку для текущего пользователя с использованием кода безопасности</b>
</p>
</div>
<hr>
<?$PHPCODE$("http://phpexample.ucoz.net/php/example000/example000.php?uid=",$USER_ID$)?>
<?ELSE?>
<div id="phpdiv">
Вы не зарегистрированны. Пожалуйста, зарегистрируйтесь или войдите своей учетной записью</p>
</div>
<?ENDIF?>
PHP скрипт примера:
Code
<?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>
<form action="/php/example000/example000.php" method="post" onsubmit="_uPostForm(this,{dataType:'script'});return false;" onerror="alert('Error');">
<input type="hidden" name="userid" value="<?echo $_GET['uid']?>"></p>
<input type="radio" name="atype" value="0" CHECKED/>Подписаться</p>
<input type="radio" name="atype" value="1" />Отписаться</p>
<img src="/php/example000/index.php?<?php echo session_name()?>=<?php echo session_id()?>"></p>
<input type="text" name="keystring"></p>
<input type="submit" value="Ok"></p>
</form>
<div id='captcha_result'></div>