Простой бан на PHP без использования MySQL

Готовые уроки IFrame + ВКонтакте API
Аватара пользователя
ukhov
Модератор
Модератор
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19

Простой бан на PHP без использования MySQL

Сообщение ukhov »

Содержание control.html:

Код: Выделить всё

<form name="admin" action="ban.php" method="POST"><p><strong><font color="#ff0000">ID</font> пользователя: </strong><input name="user-ok['id']" value=""></p><p><strong>Причина: </strong><input name="user-ok['reason']" value=""></p><p><strong>Штраф: </strong><input name="user-ok['fine']" value=""><em>1/100</em> голосов</p><p><input type="submit" value="Забанить"></p></form>
Содержание ban_inf.php:

Код: Выделить всё

 <?$viewer_id = $_GET['viewer_id'];?><p><font color="#ff0000">Вы были заблокированы администрацией по причине:</font></p><p><strong><?include("reason_ban$viewer_id.txt");?></strong></p><p>Штраф: <em><?$fine = include("fine_ban$viewer_id.txt");echo bcdiv($fine, 100, 2);?> голосов</em> (<a href="payment_fine.php?viewer_id=<?echo ($_GET["viewer_id"]."");?>&auth_key=<?echo ($_GET["auth_key"]."");?>">Оплатить</a>)<strong><br></strong></p>   
Содержание vk_start.php:

Код: Выделить всё

<?php$api_url = $_GET['api_url'];$api_id = $_GET['api_id'];$api_settings = $_GET['api_settings'];$viewer_id = $_GET['viewer_id'];$viewer_type = $_GET['viewer_type'];$sid = $_GET['sid'];$user_id = $_GET['user_id'];$group_id = $_GET['group_id'];$is_app_user = $_GET['is_app_user'];$auth_key = $_GET['auth_key'];if(substr_count(file_get_contents('ban$viewer_id.txt'), '1'))  {header("Location: ban_inf.php?viewer_id=$viewer_id&auth_key=$auth_key");}else{header("Location: index.php?api_url=$api_url&api_id=$api_id&api_settings=$api_settings&viewer_id=$viewer_id&viewer_type=$viewer_type&sid=$sid&user_id=$user_id&group_id=$group_id&is_app_user=$is_app_user&auth_key=$auth_key");}?>
Содержание ban.php:

Код: Выделить всё

<font color="#006400">Пользователь</font><strong><font color="#ff0000">id<?echo($_POST["viewer_id"]."");?></font></strong><font color="#006400">заблокирован!</font> <?  $viewer_id = $_POST['id'];  $fp=fopen("ban$viewer_id.txt","a+"); if ($fp) { flock($fp,2);  fwrite($fp,"1"); flock($fp,3); fclose($fp);  }?> <?  $reason = $_POST['reason'];  $viewer_id = $_POST['id'];  $fp=fopen("reason_ban$viewer_id.txt","a+"); if ($fp) { flock($fp,2);  fwrite($fp,"$reason"); flock($fp,3); fclose($fp);  }?> <?  $fine = $_POST['fine'];  $viewer_id = $_POST['id'];  $fp=fopen("fine_ban$viewer_id.txt","a+"); if ($fp) { flock($fp,2);  fwrite($fp,"$fine"); flock($fp,3); fclose($fp);  }?>
Содержание payment_fine.php:

Код: Выделить всё

<?php//////// Author Vlad  © 2010////    $api_id = "ID Приложения";     $api_key = "Защищённый ключ";     $auth_key  = $_GET['auth_key'];  // auth_key из FlashVars приложения    $user_id = $_GET['user_id']; // id просматривающего приложение    $viewer_id = $_GET['viewer_id'];      // вот это кусок списывания голоса    $rand = rand();    $timestamp = time()+300;    $sig = md5("api_id=".$api_id."method=secure.withdrawVotes". "random=".$rand. "timestamp=".$timestamp. "uid=".$user_id. "v=2.0". "votes=include("fine_ban$viewer_id.txt")".$api_key);    $postvars="api_id=".$api_id."&method=secure.withdrawVotes"."&random=".$rand."&timestamp=".$timestamp."&uid=".$user_id."&v=2.0"."&votes=include("fine_ban$viewer_id.txt")"."&sig=".$sig;    $chp = curl_init('http://api.vkontakte.ru/api.php');    curl_setopt($chp, CURLOPT_HEADER,0);    curl_setopt($chp, CURLOPT_RETURNTRANSFER ,1);    curl_setopt($chp, CURLOPT_POST, 1);    curl_setopt($chp, CURLOPT_POSTFIELDS,  $postvars);    $res = curl_exec($chp);    curl_close($chp);// проверка есть ли голос у типа     $num = strpos($res, "<error_code>502</error_code>"); // нет денег    if ($num<>"") { echo "На балансе приложения отсутствуют голоса"; return; }        $num = strpos($res, "<transferred>");   // другие ошибки    if ($num=="") { echo "error"; return; }           else {        // ОЛОЛО            echo 'Вы разблокированы! Пожалуйста, обновите страницу';            file_put_contents('ban$viewer_id.txt', '');            file_put_contents('fine_ban$viewer_id.txt', '');            file_put_contents('reason_ban$viewer_id.txt', '');   $fp=fopen("ban$viewer_id.txt","a+"); //Открытие дескриптора файла пользователя на запись  if ($fp) {  flock($fp,2);  fwrite($fp,"0");  flock($fp,3);  fclose($fp);  }        }// конец  ?>

index.php - страница, которая должна открываться, если пользователь не заблокирован.
ban_inf.php - страница, на которую vk_start.php редиректит, и которая уведомляет пользователя о бане, причине, и предлагает оплатить штраф.
vk_start.php - страница, где проверяется, заблокирован ли пользователь.
control.html - панель администратирования.

Заходим в редактирование приложения и меняем там адрес на vk_start.php.
P.S. В файле payment_fine.php не забудьте заменить id и ключ приложения.
Последний раз редактировалось Deniska 06 фев 2011, 17:42, всего редактировалось 1 раз.
Причина: Отредактировано по просьбе автора
camec
Сообщения: 154
Зарегистрирован: 17 дек 2010, 14:33

Re: Простой бан на PHP без использования MySQL

Сообщение camec »

Как во флеше это поместить все?
Аватара пользователя
ukhov
Модератор
Модератор
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19

Re: Простой бан на PHP без использования MySQL

Сообщение ukhov »

:? не знаю
я работаю только с iframe, flash ненавижу
Аватара пользователя
Deniska
Сообщения: 653
Зарегистрирован: 30 окт 2009, 00:07

Re: Простой бан на PHP без использования MySQL

Сообщение Deniska »

Код: Выделить всё

//////// Author Vlad  © 2010////
Лучше уже поставить ссылку откуда взята информация.
Аватара пользователя
ukhov
Модератор
Модератор
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19

Re: Простой бан на PHP без использования MySQL

Сообщение ukhov »

Влад решил не ставить, этот скрипт из темы http://flapps.ru/forum/topic1173.html
Hail
Сообщения: 35
Зарегистрирован: 11 авг 2010, 22:21

Re: Простой бан на PHP без использования MySQL

Сообщение Hail »

Помогите!!!! у меня что-то не получается вообщем всё делаю как сказано захожу в control.html ввожу id пользователя причину и сумму жму забанить после чего в ответ ПОЛЬЗОВАТЕЛЬ ID ЗАБЛОКИРОВАН проверяю захожу в приложение бана нет.... и на серваке в файле ban.txt записываются однёрки и больше не чего!!! Заранее спасибо за помощь!!!
PUNISHER
Сообщения: 138
Зарегистрирован: 10 ноя 2010, 21:20

Re: Простой бан на PHP без использования MySQL

Сообщение PUNISHER »

Код: Выделить всё

Warning: file_get_contents(ban$viewer_id.txt) [function.file-get-contents]: failed to open stream: No such file or directory in /home/public_html/vk_start.php on line 12 Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/vk_start.php:12) in /home/public_html/vk_start.php on line 17
:?:
Аватара пользователя
ukhov
Модератор
Модератор
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19

Re: Простой бан на PHP без использования MySQL

Сообщение ukhov »

PUNISHER писал(а):

Код: Выделить всё

Warning: file_get_contents(ban$viewer_id.txt) [function.file-get-contents]: failed to open stream: No such file or directory in /home/public_html/vk_start.php on line 12 Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/vk_start.php:12) in /home/public_html/vk_start.php on line 17
:?:
payment_fine.php
Найти

Код: Выделить всё

            file_put_contents('ban$viewer_id.txt', '');            file_put_contents('fine_ban$viewer_id.txt', '');            file_put_contents('reason_ban$viewer_id.txt', '');
Заменить на

Код: Выделить всё

            file_put_contents("ban$viewer_id.txt", '');            file_put_contents("fine_ban$viewer_id.txt", '');            file_put_contents("reason_ban$viewer_id.txt", '');
vk_start.php
Найти

Код: Выделить всё

header("Location: ban_inf.php?viewer_id=$viewer_id&auth_key=$auth_key");
Заменить на

Код: Выделить всё

echo("<script type='text/javascript' charset='cp1251' >location.replace('ban_inf.php?viewer_id=$viewer_id&auth_key=$auth_key');</script>");
Найти

Код: Выделить всё

header("Location: index.php?api_url=$api_url&api_id=$api_id&api_settings=$api_settings&viewer_id=$viewer_id&viewer_type=$viewer_type&sid=$sid&user_id=$user_id&group_id=$group_id&is_app_user=$is_app_user&auth_key=$auth_key");
Заменить на

Код: Выделить всё

echo("<script type='text/javascript' charset='cp1251' >location.replace('index.php?api_url=$api_url&api_id=$api_id&api_settings=$api_settings&viewer_id=$viewer_id&viewer_type=$viewer_type&sid=$sid&user_id=$user_id&group_id=$group_id&is_app_user=$is_app_user&auth_key=$auth_key');</script>");
PUNISHER
Сообщения: 138
Зарегистрирован: 10 ноя 2010, 21:20

Re: Простой бан на PHP без использования MySQL

Сообщение PUNISHER »

Согласен, добавляются только единицы и все.... :|
Аватара пользователя
ukhov
Модератор
Модератор
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19

Re: Простой бан на PHP без использования MySQL

Сообщение ukhov »

vk_start.php
Найти

Код: Выделить всё

if(substr_count(file_get_contents('ban$viewer_id.txt'), '1'))  {
Заменить на

Код: Выделить всё

if(substr_count(file_get_contents("ban$viewer_id.txt"), '1'))  {
Ответить