imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 09.02.2008, 20:08     # 1
Mitia
Guest
 
Сообщения: n/a

два вопроса - удалить строку и бан по ip

$manlix = file("$manlixfile");
$manlixrandom = rand(0, sizeof($manlix)-1);
$manlixtext = $manlix[$manlixrandom];
if (empty($QUERY_STRING))
{
echo $manlixtext;
}
else
{
if ($QUERY_STRING != "")
{
echo "<font color=\"$QUERY_STRING\">$manlixtext</font>";
}
}
?>
Надо чтоб не только выводил строку но и удалял эту строку из исходного файла
и второе
организовать бан чтоб человек не мог определённое время обновлять эту страницу.
заранее спасибо, сам я полный чайник в этом - жизнь заставила - поэтому прошу как можно проще.
 
Старый 10.02.2008, 02:09     # 2
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
1
Код:
<?
$manlix = file("$manlixfile");
$manlixrandom = rand(0, sizeof($manlix)-1);
$manlixtext = $manlix[$manlixrandom];
if (empty($QUERY_STRING))
{
echo $manlixtext;
}
else
{
if ($QUERY_STRING != "")
{
echo "<font color=\"$QUERY_STRING\">$manlixtext</font>";
}
}
unset($manlix[$manlixrandom]);
file_put_contents($manlixfile, implode("\n", $manlix));
?>
2. Что значит "не мог обновлять страницу"?? Как Вы себе это представляете? Пользователь на своей стооны со своим браузером и компьютером волен делать что угодно, и Вы ничего с этим не сделаете полюбому!

Дургое дело что на повторную загрузку (если определели) можно ничего не выдавать, выдвать что-то другое, посылать, банить или предпринимать еще какие-то действия...
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.

Последний раз редактировалось Hubbitus; 10.02.2008 в 02:22.
Hubbitus вне форума  
Старый 10.02.2008, 04:48     # 3
Mitia
Guest
 
Сообщения: n/a

1
Огромное спасибо, строку удаляет, но зачем то добавляет пустые строки т.е.
изначальный файл
1
2
3
4
после работы скрипта
1

3

4

в следующий раз добавляет ещё стоклько же пустых строк
а хотелось бы чтоб получалось так
1
3
4
по второму вопросу, да надо например перенаправлять куда либо в течении например 10 мин. Т.е. посмотрел страничку, потом 10 мин при повторной загрузке получает - зайдите позже, потом опять посмотрел и опять 10 мин зайдите позже
 
Старый 10.02.2008, 19:22     # 4
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
Сообщение от Mitia Посмотреть сообщение
Огромное спасибо, строку удаляет, но зачем то добавляет пустые строки т.е.
ми пардон.
Просто поменяйте:
file_put_contents($manlixfile, implode("\n", $manlix));
на
file_put_contents($manlixfile, implode('', $manlix));

Блокировать надо именно по IP? А если через прокси люди сидят, все окажутся заблокированными? И наоборот, заблокирован - сменил прокси и снова все получил... Думаю гораздо проще блокировать по флагу в сессии (куки по сути) - "защищённость" та же, то есть никакая, зато реализовать в 2 строчки.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 11.02.2008, 08:52     # 5
Mitia
Guest
 
Сообщения: n/a

ещё раз спасибо по первому вопросу.
а по второму, можно эти две строчки?
Моя благодарность не будет иметь границ, в пределах разумного.
 
Старый 11.02.2008, 13:40     # 6
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Код:
<?
/*
This is neccesary if session_autostart is off, overwise - may be safly removed.
And it MUST be first (before any output) string
*/
@session_start();

#Settings. May bi in other place: Config-file, DataBase etc...
$manlixfile = 'test.dat';
$manlix_period = 30;	#In seconds

	#Check acces, and save date into session
	if (( $sec_diff = date('U') - @$_SESSION['manlix_last_date']) < $manlix_period){
	exit('Wait more '.($manlix_period - $sec_diff).' second!');
	}
	else $_SESSION['manlix_last_date'] = date('U');

$manlix = file($manlixfile);
$manlixrandom = rand(0, sizeof($manlix)-1);
$manlixtext = $manlix[$manlixrandom];

	if (!empty($QUERY_STRING))
	echo "<font color=\"$QUERY_STRING\">$manlixtext</font>";
	else echo $manlixtext;

#Save results
unset($manlix[$manlixrandom]);
file_put_contents($manlixfile, implode('', $manlix));
?>
Естественно Вы должны понимать что такая защита скорее "от дурака", и почистить куки много кто может догадаться. Впрочем сменить прокси задача не сложнее...

Ну и еще, все это конечно хорошо, но есть два момента тут еще:
1. При высокой нагрузке, это даст сбой из-за состояния гонки при записи и считывания одного и того же файла одновременно из разных потоков, хорошо бы делать блокировку. Но это уже для домашней работы.
2. А что будет если файл кончится? Тоже думаю проверить как эту, таки о ошибки записи...

В общем дерзайте, и все у Вас получится.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 11:16.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.