Скрипт "Отображение контента по критерию"'
|
|
Ник: Nikitqaaa | Дата: 28.06.2012, 20:38 | Сообщение #1
|
Описание данного скрипта: В этом примере демонстрируется, как с помощью php-скрипта ограничить показ картинки в зависимости от возраста пользователя на вашем сайте, который пытается ее просмотреть. Для этого скрипт использует API системы uCoz. При нажатии на кнопку "Просмотреть фото" скрипт выполняет запрос о данных пользователя посредством API, сравнивает полученный возраст пользователя с критерием (должен быть не меньше 18 лет) и, в случае соответствия ему, отображает картинку. Интересный и довольно полезный скрипт. Установка скрипта: В шаблоне страницы: Code <div align="center"> <p> <b>Данный пример демонстрирует использование скрипта для ограничения просмотра контента в зависимости от возраста</b> </p> </div> <hr> <?$PHPCODE$("http://phpexample.ucoz.net/php/example006/example006.php")?> PHP скрипт example006.php: Code <? if (count($_POST)>0) { $___notjson=1; if (!$_uid=ucoz_getinfo("SITEUSERID")) { echo "$('#error').html('Невозможно идентифицировать пользователя')"; return; } $context = stream_context_create(array('http' => array('method' => "GET", 'header' => "Content-Type: text/xml",'timeout' => 8))); $file = file_get_contents("http://phpexample.ucoz.net/api/index/8-$_uid", false, $context); if (strpos('200', $http_response_header[0]) || !$file) { echo "$('#error').html('Не могу получить данные, попробуйте позже')"; return; } $response = xmlrpc_decode($file,"utf8"); if ($response && xmlrpc_is_fault($response)) { echo "$('#error').html('Не могу получить данные, попробуйте позже')"; return; } if ((int)$response['USER_AGE']<18) echo "$('#error').html('Вы не можете просмативать данный материал, т.к. вам не исполнилось 18 лет')"; else { file_put_contents('allowedusers', "$_uid\n", FILE_APPEND); echo "$('#error').html('<img height=\"480\" width=\"640\" src=\"/php/example006/getimg.php\">')"; } return; } ?>
<div id='error'><b>Фото: мокрая киска</b><p>*внимание, просмотреть фото вы можете только, если вам испольнилось 18 лет</p></div> <form action="/php/example006/example006.php" method="post" onsubmit="_uPostForm(this,{dataType:'script'});return false;" onerror="alert('Error');"> <input type="hidden" name="none" value="1"> <p><input type="submit" value="Просмотреть фото"></p> </form> PHP скрипт getimg.php: Code <? if (!$_uid=ucoz_getinfo("SITEUSERID")) return; $lines=file('allowedusers'); $allow=0; foreach ($lines as $line_num => $line) { trim($line); if ($line==$_uid) { $allow=1; unset($lines[$line_num]); } } file_put_contents('allowedusers',$lines); if (!$allow) return; header('Content-Type: image/jpeg'); readfile("./example006.jpg"); ?> Всё, теперь скрипт готов к использованию.
| |
Ник: vaz2109 | Дата: 29.06.2012, 09:56 | Сообщение #2
|
| |
Ник: bonywka | Дата: 28.10.2012, 08:08 | Сообщение #3
Wake Me Up When September Ends
|
Понятно, видел, на моем сайте стояло.
По всем вопросам писать в скайп «указан в профиле» Я не даю унбан по просьбе личку или скайп, для этого есть ‘спец.тема’ Для того чтобы сделать предложение по форуму, можно обратиться ко мне (я передам выше) или в ‘спец.тему’
| |
Ник: BloodJkeee | Дата: 28.10.2012, 20:42 | Сообщение #4
|
это типо если в твоем профиле установлен возраст меньше 18, то ты не сможешь просматривать это?
| |
Ник: Clark | Дата: 31.10.2012, 10:23 | Сообщение #5
|
BloodJkeee, вроде да, там идут запросы на твой профиль
Костюм должен быть итальянский. Машина немецкая. Жена русская.
| |
Ник: BloodJkeee | Дата: 31.10.2012, 15:24 | Сообщение #6
|
Clark, а если тупо поменять дату рождения 
| |
Ник: ls2011 | Дата: 31.10.2012, 16:13 | Сообщение #7
|
Зачем пхп? замуты какието) Проще было через информеры сделать, так как дата раждения выводится в любом месте, и это не составила бы труда. и без пхп.
| |
Ник: Clark | Дата: 31.10.2012, 16:40 | Сообщение #8
|
BloodJkeee, это нужно заходить в uNet профиль, а я не помню можно ли там менять или нет. В общем нужно постараться
ls2011, у информера есть свои минусы обновляется долго, да и мало функций можно сделать
Костюм должен быть итальянский. Машина немецкая. Жена русская.
| |
Ник: ls2011 | Дата: 31.10.2012, 17:06 | Сообщение #9
|
Quote (Clark) ls2011, у информера есть свои минусы обновляется долго, да и мало функций можно сделать День рождение один раз в год, обновления хватит. или каждый день? 
| |
Ник: Clark | Дата: 01.11.2012, 06:35 | Сообщение #10
|
ls2011, ты меня не правильно понял)
Костюм должен быть итальянский. Машина немецкая. Жена русская.
| |
Ник: ls2011 | Дата: 01.11.2012, 11:51 | Сообщение #11
|
Quote (Clark) ls2011, ты меня не правильно понял) Все правильно, он считывает также день рождения, и обновляется не так уж и быстро, а открыть раздел можно тока если 18 лет, он обновляет страницу и все. 
| |