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

Готовые уроки IFrame + ВКонтакте API

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

Сообщение ukhov » 06 фев 2011, 16:38

Содержание control.html:
  1. <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:
  1.  
  2. <?
  3. $viewer_id = $_GET['viewer_id'];
  4. ?>
  5. <p><font color="#ff0000">Вы были заблокированы администрацией по причине:</font></p><p><strong><?
  6. include("reason_ban$viewer_id.txt");
  7. ?></strong></p><p>Штраф: <em><?
  8. $fine = include("fine_ban$viewer_id.txt");
  9. echo bcdiv($fine, 100, 2);
  10. ?> голосов</em> (<a href="payment_fine.php?viewer_id=<?
  11. echo ($_GET["viewer_id"]."");
  12. ?>&auth_key=<?
  13. echo ($_GET["auth_key"]."");
  14. ?>">Оплатить</a>)<strong><br></strong></p>
  15.  
  16.  
  17.  

Содержание vk_start.php:
  1. <?php
  2. $api_url = $_GET['api_url'];
  3. $api_id = $_GET['api_id'];
  4. $api_settings = $_GET['api_settings'];
  5. $viewer_id = $_GET['viewer_id'];
  6. $viewer_type = $_GET['viewer_type'];
  7. $sid = $_GET['sid'];
  8. $user_id = $_GET['user_id'];
  9. $group_id = $_GET['group_id'];
  10. $is_app_user = $_GET['is_app_user'];
  11. $auth_key = $_GET['auth_key'];
  12. if(substr_count(file_get_contents('ban$viewer_id.txt'), '1'))  {
  13. header("Location: ban_inf.php?viewer_id=$viewer_id&auth_key=$auth_key");
  14. }
  15. else
  16. {
  17. 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");
  18. }
  19. ?>

Содержание ban.php:
  1. <font color="#006400">Пользователь</font><strong><font color="#ff0000">id<?
  2. echo($_POST["viewer_id"]."");
  3. ?></font></strong><font color="#006400">заблокирован!</font>
  4.  
  5. <?
  6.   $viewer_id = $_POST['id'];
  7.   $fp=fopen("ban$viewer_id.txt","a+");
  8.  if ($fp) {
  9.  flock($fp,2);
  10.   fwrite($fp,"1");
  11.  flock($fp,3);
  12.  fclose($fp);
  13.   }
  14. ?>
  15.  
  16. <?
  17.   $reason = $_POST['reason'];
  18.   $viewer_id = $_POST['id'];
  19.   $fp=fopen("reason_ban$viewer_id.txt","a+");
  20.  if ($fp) {
  21.  flock($fp,2);
  22.   fwrite($fp,"$reason");
  23.  flock($fp,3);
  24.  fclose($fp);
  25.   }
  26. ?>
  27.  
  28. <?
  29.   $fine = $_POST['fine'];
  30.   $viewer_id = $_POST['id'];
  31.   $fp=fopen("fine_ban$viewer_id.txt","a+");
  32.  if ($fp) {
  33.  flock($fp,2);
  34.   fwrite($fp,"$fine");
  35.  flock($fp,3);
  36.  fclose($fp);
  37.   }
  38. ?>

Содержание payment_fine.php:
  1. <?php
  2. ////
  3. //// Author Vlad  © 2010
  4. ////
  5.     $api_id = "ID Приложения";
  6.     $api_key = "Защищённый ключ";
  7.     $auth_key  = $_GET['auth_key'];  // auth_key из FlashVars приложения
  8.     $user_id = $_GET['user_id']; // id просматривающего приложение
  9.     $viewer_id = $_GET['viewer_id'];
  10.  
  11.    
  12.  
  13. // вот это кусок списывания голоса
  14.     $rand = rand();
  15.     $timestamp = time()+300;
  16.     $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);
  17.     $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;
  18.     $chp = curl_init('http://api.vkontakte.ru/api.php');
  19.     curl_setopt($chp, CURLOPT_HEADER,0);
  20.     curl_setopt($chp, CURLOPT_RETURNTRANSFER ,1);
  21.     curl_setopt($chp, CURLOPT_POST, 1);
  22.     curl_setopt($chp, CURLOPT_POSTFIELDS,  $postvars);
  23.     $res = curl_exec($chp);
  24.     curl_close($chp);
  25. // проверка есть ли голос у типа
  26.  
  27.     $num = strpos($res, "<error_code>502</error_code>"); // нет денег
  28.     if ($num<>"") { echo "На балансе приложения отсутствуют голоса"; return; }
  29.    
  30.     $num = strpos($res, "<transferred>");   // другие ошибки
  31.     if ($num=="") { echo "error"; return; }
  32.      
  33.      else {
  34.         // ОЛОЛО
  35.             echo 'Вы разблокированы! Пожалуйста, обновите страницу';
  36.             file_put_contents('ban$viewer_id.txt', '');
  37.             file_put_contents('fine_ban$viewer_id.txt', '');
  38.             file_put_contents('reason_ban$viewer_id.txt', '');
  39.  
  40.   $fp=fopen("ban$viewer_id.txt","a+"); //Открытие дескриптора файла пользователя на запись
  41.   if ($fp) {
  42.   flock($fp,2);
  43.   fwrite($fp,"0");
  44.   flock($fp,3);
  45.   fclose($fp);
  46.   }
  47.         }
  48. // конец
  49.  
  50. ?>


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 раз.
Причина: Отредактировано по просьбе автора
Изображение
Аватара пользователя
ukhov
Модератор
Модератор
 
Автор темы
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19
Откуда: Санкт-Петербург
Благодарил (а): 85 раз.
Поблагодарили: 155 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



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

Сообщение camec » 07 фев 2011, 19:10

Как во флеше это поместить все?
camec

 
Сообщения: 154
Зарегистрирован: 17 дек 2010, 14:33
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.

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

Сообщение ukhov » 07 фев 2011, 19:11

:? не знаю
я работаю только с iframe, flash ненавижу
Изображение
Аватара пользователя
ukhov
Модератор
Модератор
 
Автор темы
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19
Откуда: Санкт-Петербург
Благодарил (а): 85 раз.
Поблагодарили: 155 раз.

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

Сообщение Deniska » 07 фев 2011, 20:12



Лучше уже поставить ссылку откуда взята информация.
Аватара пользователя
Deniska

 
Сообщения: 654
Зарегистрирован: 30 окт 2009, 00:07
Благодарил (а): 15 раз.
Поблагодарили: 48 раз.

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

Сообщение ukhov » 07 фев 2011, 21:39

Влад решил не ставить, этот скрипт из темы topic1173.html
Изображение
Аватара пользователя
ukhov
Модератор
Модератор
 
Автор темы
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19
Откуда: Санкт-Петербург
Благодарил (а): 85 раз.
Поблагодарили: 155 раз.

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

Сообщение Hail » 01 апр 2011, 18:42

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

 
Сообщения: 35
Зарегистрирован: 11 авг 2010, 22:21
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

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

Сообщение PUNISHER » 01 апр 2011, 20:24

  1. 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
  2.  
  3. 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


:?:
PUNISHER

 
Сообщения: 138
Зарегистрирован: 10 ноя 2010, 21:20
Благодарил (а): 12 раз.
Поблагодарили: 0 раз.

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

Сообщение ukhov » 02 апр 2011, 07:49

PUNISHER писал(а):
  1. 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
  2.  
  3. 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
Найти
  1.            file_put_contents('ban$viewer_id.txt', '');
  2.             file_put_contents('fine_ban$viewer_id.txt', '');
  3.             file_put_contents('reason_ban$viewer_id.txt', '');

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


vk_start.php
Найти
  1. header("Location: ban_inf.php?viewer_id=$viewer_id&auth_key=$auth_key");

Заменить на
  1. echo("
  2. <script type='text/javascript' charset='cp1251' >
  3. location.replace('ban_inf.php?viewer_id=$viewer_id&auth_key=$auth_key');
  4. </script>");

Найти
  1. 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");

Заменить на
  1. echo("
  2. <script type='text/javascript' charset='cp1251' >
  3. 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');
  4. </script>");
Изображение

За это сообщение автора ukhov поблагодарил:
PUNISHER
Аватара пользователя
ukhov
Модератор
Модератор
 
Автор темы
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19
Откуда: Санкт-Петербург
Благодарил (а): 85 раз.
Поблагодарили: 155 раз.

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

Сообщение PUNISHER » 02 апр 2011, 11:09

Согласен, добавляются только единицы и все.... :|
PUNISHER

 
Сообщения: 138
Зарегистрирован: 10 ноя 2010, 21:20
Благодарил (а): 12 раз.
Поблагодарили: 0 раз.

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

Сообщение ukhov » 02 апр 2011, 12:49

vk_start.php
Найти
  1. if(substr_count(file_get_contents('ban$viewer_id.txt'), '1'))  {

Заменить на
  1. if(substr_count(file_get_contents("ban$viewer_id.txt"), '1'))  {
Изображение
Аватара пользователя
ukhov
Модератор
Модератор
 
Автор темы
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19
Откуда: Санкт-Петербург
Благодарил (а): 85 раз.
Поблагодарили: 155 раз.

След.

Вернуться в Уроки IFrame ВКонтакте



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron