• Страница 1 из 1
  • 1
PHP Скрипт Подписка на рассылку для ucoz
@V@sTДата: Четверг, 28.04.2011, 20:31 | Сообщение # 1

Сообщений: 318
Награды: 0

[ 25 ]


В этом примере демонстрируется как с помощью 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>



[Грамотей]

  • Страница 1 из 1
  • 1
Поиск:

Статистика Форума
Активные пользователи
Уважаемые пользователи
Популярные темы
Недавно обновленные темы

Все материалы размещенные на сайте пренадлежат их владельцам и предоставляются исключительно в ознакомительных целях.
Администрация ответственности за содержание материала не несет и убытки не возмещает.
По истечении 24 часов материал должен быть удален с вашего компьютера.Фаил скачен с 1-server.net.ru