NForum.RU: Cкрипты PHP - NForum.RU

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Cкрипты PHP Скрипты,написанные нашими пользователями

#1 Пользователь офлайн   Nixoid 

  • Онлайн
  • Иконка
  • Группа: Супермодераторы
  • Сообщений: 1155
  • Регистрация: 27.01.2006

Отправлено Tuesday, 31.01.2006 - 11:42

Прошу любить и жаловать.
Скрипт обратной связи. Работает очень стабильно. Не путает кодировки. Не имеет ошибок в связи с простотой кода.
Сложность установки: легко.
Время установки: 3 мин.

Берём здесь
0


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Другие ответы в этой теме

#2 Пользователь офлайн   Dmitro 

  • Бывалый
  • Иконка
  • Группа: Суперпользователи
  • Сообщений: 154
  • Регистрация: 06.01.2006

Отправлено Tuesday, 31.01.2006 - 12:52

спасибо попробуем
0

#3 Пользователь офлайн   Dmitro 

  • Бывалый
  • Иконка
  • Группа: Суперпользователи
  • Сообщений: 154
  • Регистрация: 06.01.2006

Отправлено Tuesday, 31.01.2006 - 13:59

функционал работает, что-то не срослось с css, это постараюсь проверить, из-за структуры сайта вставлял в плавающий фрейм, надеюсь это не возбраняется...

Еще раз спасибо.
0

#4 Пользователь офлайн   Nixoid 

  • Онлайн
  • Иконка
  • Группа: Супермодераторы
  • Сообщений: 1155
  • Регистрация: 27.01.2006

Отправлено Tuesday, 31.01.2006 - 14:08

все скрипты распространяются как есть. Юзай, только комментарии не три во всех файлах. А с css смотри в самом header.html и в коде index.php (там стили для таблиц малость прописаны). По желанию можно удалить все стили.

Путь к стилю прописывай полный, а не относительный.

Рабочий скрипт смотри здесь или здесь

Две ссылки, разные стили. Код не менялся, только стили.
0

#5 Пользователь офлайн   Nixoid 

  • Онлайн
  • Иконка
  • Группа: Супермодераторы
  • Сообщений: 1155
  • Регистрация: 27.01.2006

Отправлено Tuesday, 31.01.2006 - 22:15

Скрипт #2: Калькулятор работ. Полезен для того, кто занимается бизнесом в сети и хочет привлечь посетителей путём интерактивного подсчёта сметы на работы или ещё чего-нить. Не требует MySQL.
Сложность установки: легко.
Время установки: 5 мин.

Хватаем, пока есть отсюда

В работе смотрим здесь
0

#6 Пользователь офлайн   Nixoid 

  • Онлайн
  • Иконка
  • Группа: Супермодераторы
  • Сообщений: 1155
  • Регистрация: 27.01.2006

Отправлено Wednesday, 01.02.2006 - 12:45

Господа! Ждите! Скоро выйдет первый релиз e-shop на базе PHP + MySQL. Причём апсолютно бесплатно. Сейчас проводится тест. Кому надо, подарю. Условие одно: копирайты не тереть.
0

#7 Пользователь офлайн   Dmitro 

  • Бывалый
  • Иконка
  • Группа: Суперпользователи
  • Сообщений: 154
  • Регистрация: 06.01.2006

Отправлено Wednesday, 01.02.2006 - 12:57

Ждем, однозначно :)
0

#8 Пользователь офлайн   OKC 

  • Завсегдатай
  • Иконка
  • Группа: Суперпользователи
  • Сообщений: 288
  • Регистрация: 14.10.2005

Отправлено Saturday, 18.02.2006 - 15:42

Nixoid (01.02.2006, 19:45) писал:

Господа! Ждите! Скоро выйдет первый релиз e-shop на базе PHP + MySQL. Причём апсолютно бесплатно. Сейчас проводится тест. Кому надо, подарю. Условие одно: копирайты не тереть.
Просмотр сообщения

Заглядел бы сей скриптец.
Сам пишешь на php?
0

#9 Пользователь офлайн   Nixoid 

  • Онлайн
  • Иконка
  • Группа: Супермодераторы
  • Сообщений: 1155
  • Регистрация: 27.01.2006

Отправлено Saturday, 18.02.2006 - 22:07

погоди... пока скрипт очень сырой. Надо оттестить.

Да, сам.
0

#10 Пользователь офлайн   OKC 

  • Завсегдатай
  • Иконка
  • Группа: Суперпользователи
  • Сообщений: 288
  • Регистрация: 14.10.2005

Отправлено Tuesday, 21.02.2006 - 03:41

нужны скрипты антифлуд и время выполнения всей программы php?
0

#11 Пользователь офлайн   Nixoid 

  • Онлайн
  • Иконка
  • Группа: Супермодераторы
  • Сообщений: 1155
  • Регистрация: 27.01.2006

Отправлено Tuesday, 21.02.2006 - 11:46

Лови, только скрипт глючноват. Иногда страницу не открывает.

<?php
 
$ipLog='ip.txt';   // Your logfiles name here
$timeout='24';            // How many hours to block IP
$goHere='add.php';   // Allowed pages name here
 
function record($REMOTE_ADDR,$ipLog,$goHere)
{  
    $log=fopen("$ipLog", "a+");  
    fputs ($log,$REMOTE_ADDR."][".time()."\n");  
    fclose($log);  
    Header ("Location: $goHere"); exit(0);
}  
function check($REMOTE_ADDR,$ipLog,$timeout)  
{
    global $valid;  
    $ip=$REMOTE_ADDR;
    $data=file("$ipLog");  
    $now=time();
 
    foreach ($data as $record)  
    {
        $subdata=explode("][",$record);
        if ($now < ($subdata[1]+3600*$timeout) && $ip == $subdata[0])  
        {
            $valid=0;  
echo "Здравствуйте! Это система антифлуда. Данная страница будет доступна для вас снова через $timeout часов.";
            break;
        }
        else
        {
           $value = 1;
         }
    }
}  
check($REMOTE_ADDR,$ipLog,$timeout);
if (!$valid) record($REMOTE_ADDR,$ipLog,$goHere);  
 
?>

0

#12 Пользователь офлайн   OKC 

  • Завсегдатай
  • Иконка
  • Группа: Суперпользователи
  • Сообщений: 288
  • Регистрация: 14.10.2005

Отправлено Wednesday, 22.02.2006 - 03:15

Nixoid, пасиба
0

#13 Пользователь офлайн   Nixoid 

  • Онлайн
  • Иконка
  • Группа: Супермодераторы
  • Сообщений: 1155
  • Регистрация: 27.01.2006

Отправлено Wednesday, 22.02.2006 - 12:34

OKC (22.02.2006, 03:15) писал:

Nixoid, пасиба
Просмотр сообщения

...но имей ввиду, что это скрипт только АНТИФЛУДА.
0

#14 Пользователь офлайн   OKC 

  • Завсегдатай
  • Иконка
  • Группа: Суперпользователи
  • Сообщений: 288
  • Регистрация: 14.10.2005

Отправлено Friday, 24.02.2006 - 06:36

я так и понял сразу, спасибо
0

#15 Пользователь офлайн   Nixoid 

  • Онлайн
  • Иконка
  • Группа: Супермодераторы
  • Сообщений: 1155
  • Регистрация: 27.01.2006

Отправлено Sunday, 26.02.2006 - 01:36

Слушай ОКС! А у тебя эти скрипты где будут работать? Я имею ввиду кроме php будет ещё чё-нить на хостинге?
0

#16 Пользователь офлайн   OKC 

  • Завсегдатай
  • Иконка
  • Группа: Суперпользователи
  • Сообщений: 288
  • Регистрация: 14.10.2005

Отправлено Sunday, 26.02.2006 - 05:50

Nixoid: у меня нету больше хостинга, только домен остался. а скрипты такие я нашел. если надо могу выложить
0

#17 Пользователь офлайн   Nixoid 

  • Онлайн
  • Иконка
  • Группа: Супермодераторы
  • Сообщений: 1155
  • Регистрация: 27.01.2006

Отправлено Sunday, 26.02.2006 - 11:57

Конечно выкладывай. Тема для того и создана. :)
0

#18 Пользователь офлайн   OKC 

  • Завсегдатай
  • Иконка
  • Группа: Суперпользователи
  • Сообщений: 288
  • Регистрация: 14.10.2005

Отправлено Thursday, 02.03.2006 - 05:15

Скрипт Антифлуд:
<?
/*
=================================================================
_DIMA_NOFLOOD.PHP, version 1.1, 2002-11-11
=================================================================

© Dmitry Borodin
Homepage: http://php.spb.ru/
Report bugs: [email protected]

Что это:

Модуль защиты от флуда PHP-сайтов методом частых вызовов
PHP-файлов, для создания большой нагрузки. Защищает так же
от автоматического выкачивания сайта с одного IP.

=================================================================

Описание
~~~~~~~~
Для подключения этого модуля напишите include("_dima_noflood.php")
в самом начале вашей программы. В случае флуда этот модуль завершит
работу по команде exit. При нормальной работе - только увеличит
счетчики загрузок и никак не отразится на вашем скрипте.

Для настройки программы создайте сколько угодно правил на разное
кол-во секунд. Например, первое правило "не более 11 загрузок за 10
секунд" надо записать как "$nf_flood[10]=>11". Если хочется второе
правило, допустим "не более 200 загрузок за час", то
дополнительно в тот же массив надо дописать "$nf_flood[3600]=>200"
(3600 - это 1 час). Правил может быть любое кол-во (но чем меньше,
тем быстрее работает).

Если по какому либо правилу возникает флуд, т.е. кол-во загрузок
за последние Х секунд превысило N заданных раз, то происходит
следующее:
1. доступ для этого IP-адреса закрывается
2. остальные правила как считали, так и продолжают считать/следить
за допустимой нагрузкой
3. сработавшее на флуд правило запоминает текущее время каждого
обращения, из-за чего при регулярных продолжениях вызовов сайта
этот счетчик не будет никогда сброшен
Сработавшее флуд-правило очистит счетчик запросов, т.е. снимет игнор,
только если в течении Х секунд к сайту не будет ни одного запроса.
Если сработало правило флуда на 5 минут, то пользователь-флудер
должен покинуть ваш сайт минимум на 5 минут. Если этот пользователь
обратится через 4 минуты на сайт, то время окончания игнора повторно
увеличится на 5 минут. Таким образом, это очень продвинута защита от
скачиваний - стоит программе превысить любое из правил флуда,
то повторные попытка что-то скачать только оттянут время снятия
игнора. Дополнительно это приведет к срабатыванию более строгих
правил, например на 60 минут (и придется уже минимум 60 минут
не обращаться к сайту, чтобы игнор был сброшен).

Раз в $nf_cron_run секунд запускается функция поиска старых файлов,
которые устарели не менее, чем на $nf_old_file секунд. По-умолчанию,
поиск производится раз в 20 минут, при котором стираются все файлы,
которые устарели минимум на 2 часа. Внимание! Программа стирает ВСЕ
файлы в своем каталоге ($nf_path), которые не начинаются с ".".
Поэтому, чтобы закрыть каталог от доступа через браузер, положите
туда файл ".htaccess" из 2х строк:
Order Allow,Deny
Deny from all

Кроме проверки на флуд программа не позволит вызвать ни одного
вашего PHP-скрипта параллельно. Т.е. если идет параллельный вызов,
а старый вызов (и процесс с PHP-скриптом) еще не закончился,
то более новый запрос будет отвергнут. Это достигается простым
открытием файла. Файл после открытия не закрывается, из-за чего
остается блокированным на весь период работы вашего скрипта.

Сообщения/ошибки:
- в случае параллельного вызова программа пишет
"Parallel processing disable." и завершает работу
- при достижении флуда программа пишет "Flood detect!" и завершается
- если невозможно открыть файл на запись/чтение, то программа пишет
короткое имя файла (без каталога) и причину, работа не прерывается,
т.е. ваш скрипт получит управление (такие ошибки возможны только
при первоначальной настройке программы)

Когда вы меняете набор флуд правил в $nf_flood, то сразу после этого
стирайте все файла в каталоге $nf_path!

=================================================================
*/

//
// Путь к каталогу, где будут копится файлы
// В этом каталоге будут стерты все файлы, кроме тех, что начинаются
// с "." в имени.
//
// ОБЯЗАТЕЛЬНО ЗАДАЙТЕ КАТАЛОГ ДЛЯ ВРЕМЕННЫХ ФАЙЛОВ:
//
//$nf_path=getenv("DOCUMENT_ROOT")."/tmp-ip/";

//exit(getcwd());
$nf_path="/var/www/data/talken/tmp-ip/";

// имя файла для юзера - генерится из его IP-адреса
$nf_fip=$nf_path.getenv("REMOTE_ADDR");

// имя файла для встроенного крона (должно начинаться с точки)
$nf_fcron=$nf_path.".time";

//
// сек => кол-во
//
// не более скольки загрузок за сколько секунд можно сделать,
// чтобы не получить игнор
//
$nf_flood=array(
10 => 10, // не более 10 загрузок за 10 секунд
60 => 30, // не более 30 загрузок за минуту
300 => 50, // не более 50 загрузок за 5 минут
3600 => 200, // не более 200 загрузок за час
);

$nf_cron_run=1200; // раз в сколько секунд проверять старые файлы

$nf_old_file=7200; // через сколько секунд считать файл старым (и удалять)



/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */



function cron_update($fn,$update) {

if (!file_exists($fn)) {
if (!@touch($fn)) {
echo "не могу создать <b>".basename($fn)."</b>, проверьте права на файлы (w+)<br>";
return -1;
}
}
else {
if (time()-filemtime($fn)<$update) {return 0;}
}

$f=@fopen($fn,"r+");
if (!$f) {
echo "не могу открыть <b>".basename($fn)."</b>, проверьте права на файлы (r+)<br>";
return -1;
}
if (!flock($f,6)) {return;}
$text=fgets($f,100);
if (time()-intval($text)<$update) {return 0;}
fseek($f,0,SEEK_SET);
fwrite($f,time()." ");
fclose($f);

return 1;

}


$nf_cron_code=cron_update($nf_fcron,$nf_cron_run);
if ($nf_cron_code==-1) return;
if ($nf_cron_code==1) {
if ($nf_dir=@opendir($nf_path)) {
$nf_time=time()-$nf_old_file;
while (($nf_tmp=readdir($nf_dir))!==false) {
if ($nf_tmp[0]==".") continue;
if (filemtime($nf_path.$nf_tmp)<$nf_time &&
preg_match("!^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$!",$nf_tmp))
{
if (!unlink($nf_path.$nf_tmp)) {
echo "не могу удалить <b>$nf_tmp</b><br>";
}
}
}
closedir($nf_dir);
}
}
unset($nf_cron_code);


if (file_exists($nf_fip)) {
$nf_f=@fopen($nf_fip,"r+");
if (!flock($nf_f,6)) exit("Parallel processing disable.");
if (!$nf_f) {
echo "не могу открыть <b>".basename($nf_fip)."</b> (r+)<br>";
return;
}
$nf_buf=fgets($nf_f,1000);
$nf_buf=explode("|",$nf_buf);
}
else {
for ($nf_i=0; $nf_i<count($nf_flood)*2; $nf_i++) $nf_buf[]=0;
$nf_f=@fopen($nf_fip,"a+");
if (!$nf_f) {
echo "не могу создать <b>".basename($nf_fip)."</b> (a+)<br>";
return;
}
if (!flock($nf_f,6)) exit("Parallel processing disable.");
}


$nf_i=0;
$nf_stopflag=0;

//echo "<pre>";print_r($nf_buf);

foreach ($nf_flood as $nf_k=>$nf_v) {
if ($nf_buf[$nf_i+1]+$nf_k<time()) {
$nf_buf[$nf_i]=1;
$nf_buf[$nf_i+1]=time();
}
else {
if ($nf_buf[$nf_i]>$nf_v) {
$nf_stopflag=1;
$nf_buf[$nf_i+1]=time();
}
$nf_buf[$nf_i]++;
}
$nf_i+=2;
}


ftruncate($nf_f,0);
fseek($nf_f,0);
fputs($nf_f,implode("|",$nf_buf));

//print_r($nf_buf);
if ($nf_stopflag) exit("Flood detect!");

unset($nf_f);
unset($nf_i);
unset($nf_k);
unset($nf_v);
unset($nf_stopflag);
unset($nf_buf);
unset($nf_fip);
unset($nf_path);
unset($nf_flood);
unset($nf_cron_run);
unset($nf_cron_idle);

?>
Скрипт Времени работы всего скрипта:
<?

/*
Для тонкого измерения времи выполнения всей программы и отдельных
кусков (их м.б. очень много) нужно расставить в программе якоря -
"начать замер времени" и "закончить". Якоря различаются своими именами.

Можно использовать для замера SQL запроса, в теле цикла, просто в
разных местах.

Учитывается не только время выполнения, но и кол-во раз вызова
замера времени. Ключевое слово 'my_time' использовать нельзя (т.е.
нельзя вызывать timestart("my_time") - придумывайте любое другое слово).

Параметры:

timeprint("%max") или "%min" - показ % времени
%max: 100% занимает самая длительная из всех замеренных операций
%min: 0% занимает самая быстрая из всех замеренных операций,
а остальные цифры - колво процетов от времени, НА сколько
другие операции медленнее самой быстрой

timeprint("graf") - выдать графическое представление %max

timeprint("nomain") - не выдавать нижние 3 строчки об общем
времени работы программы

Чтобы использовать несколько паметров, перечислите их так:

timeprint("%min %max graf");


------------------- 1 --------------------
Самое простое:
1. подключить этот файл в _начале_ вашей программы через include()
2. вызвать в самом конце вашей программы: timeprint()
Результат:
появиться время выполнения всей программы (от инклюда, до timeprint)
Вывод:
общее время работы программы подсчитывается автоматически

------------------- 2 --------------------
Замер выполнения SQL запрос:
был код:
....
mysql_query(....);
....
заменить на код:
....
timerstart("имя1");
mysql_query(....);
timeend("имя1");
....
в конце программы:
timeprint();
Результат:
дополнительно появиться время (под кодовым названием "имя1") между этими
двумя точками

------------------- 3 --------------------
Замер времени при многократных вызовах одних и тех же якорей
был код:
....
while() {
....
}
....
заменить на
....
while() {
timestart("имя2");
....
timestop("имя2");
}
....
в конце программы:
timeprint();
Результат:
дополнительно сообщат, сколько раз это все вызывали, общее время и среднее
время на один цикл.




*/


error_reporting(2039);


function timestart($name) {
global $mytimestats;
if (strlen($name)==0) {
// Ошибка использования функции TIMESTART. Тpебуется указать паpаметp!
return;
}
$x=explode(" ",microtime());
$x[1]=substr("$x[1]",2,14);
$mytimestats[$name][temp]=$x[1]+$x[0];
//echo "<br> *-* ".$mytimestats[$name][temp]." *-* <br>";
}

function timestop($name) {
global $mytimestats;
if (strlen($name)==0) {
// Ошибка использования функции TIMEEND. Тpебуется указать паpаметp!
return;
}
$x=explode(" ",microtime());
$x[1]=substr("$x[1]",2,14);
$mytimestats[$name][all]+=$x[1]+$x[0]-$mytimestats[$name][temp];
$mytimestats[$name][counter]++;
//echo "<br> *---* ".$mytimestats[$name][all]." *---* <br>";
}

function timeprint($par="") {
timestop("my_time");
global $mytimestats;

$k=array_keys($mytimestats);

if (strstr($par,"nomain")) {
$nomain=1;
}
if (strstr($par,"%min")) {
$proc1=1;
$procent1="<td>% от min</td>";
}
if (strstr($par,"%max")) {
$proc2=1;
$procent2="<td>% от max</td>";
}
if (strstr($par,"graf")) {
$graf=1;
$grafik="<td align=center>общее<br>время</td>";
}
if ($proc1 || $proc2 || $graf) {
$mmin=999999;
$mmax=-1;
for ($i=0; $i<count($k); $i++) {
if ($k[$i]=="my_time") continue;
if ($mmin>$mytimestats[$k[$i]][all]) $mmin=$mytimestats[$k[$i]][all];
if ($mmax<$mytimestats[$k[$i]][all]) $mmax=$mytimestats[$k[$i]][all];
}
}

echo "<center><table border=1 cellspacing=0 cellpadding=3><tr><td align=center>счетчик</td>
<td align=center>кол-во<br>вызовов</td>
<td align=center>общее<br>вpемя</td><td align=center>сpеднее<br>вpемя</td>
$procent1$procent2$grafik</tr>";
for ($i=0; $i<count($k); $i++) {
if ($k[$i]=="my_time") continue;
@printf("<tr><td><b>$k[$i]</b></td><td>%d</td><td>%.4f</td><td>%.4f</td>",
$mytimestats[$k[$i]][counter],
$mytimestats[$k[$i]][all],
(float)$mytimestats[$k[$i]][all]/$mytimestats[$k[$i]][counter]);
if ($k[$i]<>"my_time") {
if ($proc1) {
printf("<td>%02.1f%%</td>",(float)$mytimestats[$k[$i]][all]/$mmin*100-100);
}
if ($proc2) {
printf("<td>%02.1f%%</td>",(float)$mytimestats[$k[$i]][all]/$mmax*100);
}
if ($graf) {
$width=round(100*(float)$mytimestats[$k[$i]][all]/$mmax);
$width2=100-$width;
echo "<td><table width=100 border=0 ".
"cellspacing=0 cellpadding=0>".
"<tr><td width=$width background=_dima_timestat1.gif>".
"<img src='_dima_timestat2.gif' width=$width height=20><br>".
"</td><td width=$width2 bgcolor=#ccaaaa>".
"<img src='_dima_timestat2.gif' width=$width2 height=20><br>".
"</td></tr></table></td>";
}
$tt+=$mytimestats[$k[$i]][all];
$tc+=$mytimestats[$k[$i]][counter];
}
else {
if ($proc1) echo "<td>&nbsp;</td>";
if ($proc2) echo "<td>&nbsp;</td>";
if ($graf) echo "<td>&nbsp;</td>";
}
echo "</tr>";
}
if (!$nomain)
printf("
<tr><td colspan=4>вся пpогpамма pаботала %.4f сек</tD></tr>
<tr><td colspan=4>все внутpенные вызовы заняли %.4f сек (%d pаз)</tD></tr>
<tr><td colspan=4>остаток вpемени %.4f сек</tD>",
$mytimestats[my_time][all],$tt,$tc,
$mytimestats[my_time][all]-$tt);
echo "</td></table></center>\r\n\r\n\r\n";

}


timestart("my_time");


?>
0

#19 Пользователь офлайн   Nixoid 

  • Онлайн
  • Иконка
  • Группа: Супермодераторы
  • Сообщений: 1155
  • Регистрация: 27.01.2006

Отправлено Thursday, 02.03.2006 - 08:43

Да, ОКС! Скрипт, выложенный тобой, более продуктивен. Зато мой роднее. Если зациклиться на нём и доработать, то получится очень хороший скрипт. Но мне он изначально не нужен, так что вот.
0

#20 Пользователь офлайн   Evgen2626 

  • Новичок
  • Иконка
  • Группа: Пользователи
  • Сообщений: 2
  • Регистрация: 29.08.2010

Отправлено Sunday, 29.08.2010 - 00:55

яваскрипты html php
http://depositfiles....files/jaq9dm4wo
http://turbobit.net/bw23lqj65znk.html
Кто хохочет научится торговать на бирже форекс и открыть демо или реальный счет посетите
этот сайт http://evgen2626.aiq.ru/
0

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему