| |
|
|
| | Этот код находит, есть ли соответствие переменной, переданной, скажем, из формы, в содержимом файла, выводит соответствующее уведомление и записывает переменную в файл, таким образом при передаче одного и того же значения повторно результат вывода изменится с "не найдено" на "найдено":
$pid = stripslashes($_GET['pid']);
$pids = file_get_contents("pidbase.txt");
if (strpos ($pids, $pid) !== false)
{
echo("Найдено");
}
else
{
$fd = fopen("pidbase.txt","a");
fwrite($fd, "$pid\r\n");
fclose($fd);
{
echo("Не найдено");
}
}
|
Как сделать, чтобы при передаче одного и того же значения $pid первые два раза выводило "не найдено", а после- "найдено"? Лучше даже, чтобы количество раз регулировалось.Возможно такое?
Для более наглядного представления- при запросе пользователями страницы постоянно передается один и тот же параметр- $pid, уникальный для каждого из них. Нужно ограничить количество разрешенных для одного пользователя просмотров содержимого страницы.И вывести, соответственно, ошибку, когда лимит для пользователя исчерпан. | |
| |
|
|
| |
|
|
| |
для: Loneliness
(22.01.2007 в 01:07)
| | | Проблему можно решить при помощи сессий, нужно при первом вхождении пользователя или при аутентификации передать пользователю параметр $_SESSION['start'] = 1;
Если пользователь заходит и его PID совпадает, что $_SESSION['start'] увеличивается на один, соответственно $x можно менять лимит вхождений.
<?php
session_start();
// Переменная определяет количество вхождений, разрешенное пользователю
$x = 3;
$pid = stripslashes($_GET['pid']);
$pids = file_get_contents("pidbase.txt");
if (strpos ($pids, $pid) !== false)
{
if($_SESSION['start'] == $x)
{
echo "Лимит вхождений исчерпан";
die;
}
echo("Найдено");
$_SESSION['start']++;
}
else
{
$fd = fopen("pidbase.txt","a");
fwrite($fd, "$pid\r\n");
fclose($fd);
{
echo("Не найдено");
}
}
?>
|
| |
| |
|
|
| |
|
|
| |
для: Pit0n
(22.01.2007 в 03:24)
| | | Упс... Не тот пример я привел. Дело в том, что запросы производятся реально не из браузера, а по смс, на базе интерактивных услуг сотового оператора. Сессии там никак не применить, поскольку реально к скрипту обращается сервер ОПСОСа.
Как это сделать без сессий? Может, при записи какие-то флаги ставить у переменной? | |
| |
|
|
| |
|
|
| |
для: loneliness
(22.01.2007 в 14:25)
| | | А сколько вообще должно пройти времени между первым и вторым(последним) заходом на страницу? Или их вообще должно быть к примеру два, независимо через какой период зашел пользователь на страницу? Если время не играет роли, то проще создать таблицу в MySQL с полями: 1. id - пользователя и 2. - количество заходов(всего), И при каждом заходе прибавлять в ячейке по единице, если лимит исчерпан, то Forbidden и т.д. | |
| |
|
|
| |
|
|
| |
для: Pit0n
(23.01.2007 в 02:52)
| | | Время прошедшее между визитами пользователя не имеет значения. К примеру, он имеет возможность три раза войти в раздел без ограничений, после- нет. С базами данных покамест совсем не дружу... Предпочтительнее на файлах. Тем более, что пользователей немного. | |
| |
|
|