
11.02.2009, 17:49
|
|
Новичок
Регистрация: 14.11.2008
Сообщений: 12
С нами:
9204703
Репутация:
10
|
|
blaga, спасибо, только не все понятно как делается,
вычеслил айпи
PHP код:
function ip() {
if(getenv("HTTP_CLIENT_IP") and preg_match("/^[0-9\.]*?[0-9\.]+$/is",getenv("HTTP_CLIENT_IP")) and getenv("HTTP_CLIENT_IP")!='127.0.0.1') {
$ip = getenv("HTTP_CLIENT_IP");
} elseif(getenv("HTTP_X_FORWARDED_FOR") and preg_match("/^[0-9\.]*?[0-9\.]+$/is",getenv("HTTP_X_FORWARDED_FOR")) and getenv("HTTP_X_FORWARDED_FOR")!='127.0.0.1') {
$ip = getenv("HTTP_X_FORWARDED_FOR");
} else {
$ip = getenv("REMOTE_ADDR");
}
return $ip;
}
$add_ip=ip();
занес эго в базу
PHP код:
$date = date("mdHis");
$link = mysql_connect("localhost","root","root");
$db = @mysql_select_db("antidos",$link);
if(!$link or !$db) die ('Ошибка поключения');
$ban = mysql_query("insert into black (ip,date) values ('$ad_ip','$date')");
а как теперь сверить текущие время и которое в базе ?
|
|
|
вот вся страница ошибку пишет в 108 строке |

11.02.2009, 17:37
|
|
Новичок
Регистрация: 11.02.2009
Сообщений: 21
С нами:
9076501
Репутация:
0
|
|
вот вся страница ошибку пишет в 108 строке
<?php
if (!defined('IN_ADMIN')) {
die();
}
require_once(dirname(__FILE__) . '/base/Constants.php');
require_once(dirname(__FILE__) . '/base/Template.php');
require_once(dirname(__FILE__) . '/base/TemplateCache.php');
$action = $_GET['action'];
$globalTemplate = new Template('index');
$output = '';
switch ($action) {
/**
* ----------------------
*
* hf,jnf c ajnjuhfabzvb
*
* ----------------------
*/
case 'add_pics':
case 'edit_pic':
$workId = intval($_GET['work']);
$id = intval($_GET['id']);
require_once(dirname(__FILE__) . '/objects/Work.php');
$work = Work::getById($workId);
if (!$work) {
$output .= <<<EOF
<h1>Работы с указанным идентификатРром не существует.</h1>
EOF;
break;
}
require_once(dirname(__FILE__) . '/objects/Picture.php');
if ($id == 0
&& isset($_POST['id'])
) {
$id = intval($_POST['id']);
}
if ($id > 0) {
$pic = Picture::getById($id);
$title = 'Редактировани µ';
} else {
$pic = Picture::create();
$title = 'Р‛обавление РЅРѕРІРѕРіРѕ';
}
if (!isset($_POST['do'])) {
$output .= <<<EOF
<h1>{$title} изображения в работу [{$work->getName()}]</h1>
EOF;
if ($id > 0) {
$output .= <<<EOF
<form method="post" action="?action={$action}&work={$work->getId()}">
<img src="../{$pic->getWebPictureThumbnail()}" />
EOF;
} else {
$output .= <<<EOF
<form enctype="multipart/form-data" method="post" action="?action={$action}&work={$work->getId()}">
<label for="image">Файл фотографии:</label>
<input type="file" name="image" id="image" />
EOF;
}
$output .= <<<EOF
<br />
<br />
<label for="description">Описание :</label>
<input type="text" name="description" id="description" value="{$pic->getDescription()}" />
<input type="hidden" name="id" value="{$pic->getId()}" />
<input type="hidden" name="work" value="{$work->getId()}" />
<input type="hidden" name="do" value="do" />
<br />
<br />
<input type="submit" value="готово" />
</form>
EOF;
} else {
$pic->setWork($work->getId());
if (isset($_FILES['image'])) {
require_once(dirname(__FILE__) . '/objects/Group.php');
$group = Group::getById($work->getId());
$result = DB::selectQuery('SELECT COUNT(*) as pcount FROM w_pictures WHERE work_id = ' . $work->getId());
$row = $result->fetchRow();
$num = $row['pcount'];
$pic->setPhotoFromForm($_FILES['image'], $group->getName() . ' ' . $work->getName() . ' ' . $num++);
}
$description = htmlentities($_POST['description'], ENT_QUOTES, 'utf-8');
$pic->setDescription($description);
if ($pic->save()) {
TemplateCache::drop(Constants::CACHE_WORK . $work->getId());
TemplateCache::drop(Constants::CACHE_PICTURE . $pic->getId());
$output .= <<<EOF
<h1>{$title} изображения РІ работу [{$work->getName()}] СѓСЃРїРµС?РЅРѕ заверС?ено</h1>
<p>Вернуться в <a href="?action=pictures&work={$work->getId()}">список фотографий</a>.</p>
EOF;
}
}
break;
case 'del_pic':
$id = intval($_GET['id']);
$workId = intval($_GET['work']);
require_once(dirname(__FILE__) . '/objects/Picture.php');
$pic = Picture::getById($id);
if (!$pic) {
$output .= <<<EOF
<h1>Р?зображения СЃ таким идентификатРром РЅРµ существует.</h1>
EOF;
break;
}
if ($pic->delete()) {
TemplateCache::drop(Constants::CACHE_WORK . $workId);
TemplateCache::drop(Constants::CACHE_PICTURE . $pic->getId());
$output .= <<<EOF
<h1>Р?зображение СѓСЃРїРµС?РЅРѕ удалено.</h1>
<p>Вернуться в <a href="?action=pictures&work={$workId}">спРсок фотографий работы</a>.</p>
EOF;
}
break;
case 'pictures':
$groupId = intval($_GET['group']);
$workId = intval($_GET['work']);
require_once(dirname(__FILE__) . '/objects/Work.php');
$work = Work::getById($workId);
if (!$work) {
$output .= <<<EOF
<h1>Работы с указанным идентификатРром нет.</h1>
<p>Вернуться в <a href="?action=works&group={$groupId}">спи сок работ группы</a>.</p>
EOF;
break;
}
$output .= <<<EOF
<h1>Список фотографий для работы [{$work->getName()}]</h1>
<hr />
EOF;
require_once(dirname(__FILE__) . '/objects/Picture.php');
require_once(dirname(__FILE__) . '/base/DBCollection.php');
$pics = new DBCollection(Picture::create(), 'WHERE work_id = ' . $workId);
foreach($pics->getList() as $pic) {
$output .= <<<EOF
<p>
<a href="?action=edit_pic&id={$pic->getId()}&work={$workId}" title="редактировать"> v </a>
<a href="?action=del_pic&id={$pic->getId()}&work={$workId}" title="удалить" onclick="return confirm('Точно?');"> x </a>
|
<img src="../{$pic->getWebPictureThumbnail()}" />
</p>
EOF;
}
if ($pics->getCount() == 0) {
$output .= <<<EOF
<p>Пока пусто</p>
EOF;
}
$output .= <<<EOF
<hr />
<p>
<a href="?action=add_pics&work={$workId}">Р‛РѕР± авить</a> |
<a href="?action=works&group={$groupId}">Р’РµС РЅСѓС‚СЊСЃСЏ РІ СЃРїРёСЃРѕРє работ</a>
</p>
EOF;
break;
/**
* ----------------------
*
* РАБОТА РЎ РАБОТАМР?
*
* ----------------------
*/
case 'del_work':
$id = intval($_GET['id']);
$groupId = intval($_GET['group']);
require_once(dirname(__FILE__) . '/objects/Picture.php');
require_once(dirname(__FILE__) . '/base/DBCollection.php');
$pics = new DBCollection(Picture::create(), 'WHERE work_id = ' . $id);
if ($pics->getCount() > 0) {
$output .= <<<EOF
<h1>В работе существуют фотографии. Сначала удалите их.</h1>
EOF;
} else {
require_once(dirname(__FILE__) . '/objects/Work.php');
$work = Work::getById($id);
if (!$work) {
$output .= <<<EOF
<h1>Работы с указанным идентификатРром не существует.</h1>
EOF;
} else {
if ($work->delete()) {
TemplateCache::drop(Constants::CACHE_WORK . $work->getId());
TemplateCache::drop(Constants::CACHE_INDEX);
$output .= <<<EOF
<h1>Работа [{$work->getName()}] СѓСЃРїРµС?РЅРѕ удалена.</h1>
<p>Вернуться в <a href="?action=works&group={$groupId}">спи сок работ группы</a>.</p>
EOF;
}
}
}
break;
case 'add_work':
case 'edit_work':
$id = intval($_GET['id']);
$group_id = intval($_GET['group']);
require_once(dirname(__FILE__) . '/objects/Group.php');
$group = Group::getById($group_id);
if (!$group) {
$output .= <<<EOF
<h1>Р‛СЂСѓРїРїС‹ СЃ указанным идентификатРром РЅРµ существует.</h1>
<p>Вернуться в <a href="index.php">список групп</a>.</p>
EOF;
break;
}
if ($id == 0
&& isset($_POST['id'])
) {
$id = intval($_POST['id']);
}
require_once(dirname(__FILE__) . '/objects/Work.php');
if ($id > 0) {
$work = Work::getById($id);
$title = 'Редактировани µ';
} else {
$work = Work::create();
$title = 'Р‛обавление РЅРѕРІРѕР№';
}
if (!isset($_POST['do'])) {
$output .= <<<EOF
<h1>{$title} работы (группа [{$group->getName()}])</h1>
<form method="post" action="?action=edit_work&group={$group->getId()}">
<label for="name">Название:</label>
<input type="text" name="name" id="name" size="50" value="{$work->getName()}" />
<br />
<label for="link">Ссылка:</label>
<input type="text" name="link" id="link" size="60" value="{$work->getLink()}" />
<br />
<label for="description">Описание :</label>
<textarea id="description" name="description" cols="70" rows="5">{$work->getDescription()}</textarea>
<input type="hidden" name="id" value="{$work->getId()}" />
<input type="hidden" name="do" value="do" />
<br />
<br />
<input type="submit" value="готово" />
</form>
EOF;
} else {
$name = htmlentities($_POST['name'], ENT_QUOTES, 'utf-8');
$description = htmlentities($_POST['description'], ENT_QUOTES, 'utf-8');
$link = $_POST['link'];
$work->setName($name);
if (!$work->getDate()) {
$work->setDate(time());
}
$work->setLink($link);
$work->setDescription($description);
$work->setGroup($group->getId());
if ($work->save()) {
TemplateCache::drop(Constants::CACHE_INDEX);
TemplateCache::drop(Constants::CACHE_WORK . $group->getId());
$output .= <<<EOF
<h1>{$title} работы [{$work->getName()}] РІ РіСЂСѓРїРїРµ [{$group->getName()}] СѓСЃРїРµС?РЅРѕ заверС?ено</h1>
<p>Вернуться в <a href="?action=works&group={$group->getId()}">список работ группы</a>.</p>
EOF;
}
}
break;
case 'works':
$groupId = intval($_GET['group']);
require_once(dirname(__FILE__) . '/objects/Group.php');
$group = Group::getById($groupId);
if (!$group) {
$output .= <<<EOF
<h1>Р‛СЂСѓРїРїС‹ СЃ указанным идентификатРром нет.</h1>
<p>Вернуться в <a href="index.php">список групп</a>.</p>
EOF;
break;
}
$output .= <<<EOF
<h1>Список работ в группе [{$group->getName()}]</h1>
<hr />
EOF;
require_once(dirname(__FILE__) . '/objects/Work.php');
require_once(dirname(__FILE__) . '/base/DBCollection.php');
$works = new DBCollection(Work::create(), 'WHERE group_id = ' . $groupId);
foreach($works->getList() as $work) {
$output .= <<<EOF
<p>
<a href="?action=edit_work&id={$work->getId()}&group={$group->getId()}" title="редактировать"> v </a>
<a href="?action=del_work&id={$work->getId()}&group={$group->getId()}" title="удалить" onclick="return confirm('Точно?');"> x </a>
|
<a href="?action=pictures&work={$work->getId()}&group={$group->getId()}">{$work->getName()}</a>
</p>
EOF;
}
if ($works->getCount() == 0) {
$output .= <<<EOF
<p>Пока пусто</p>
EOF;
}
$output .= <<<EOF
<hr />
<p>
<a href="?action=add_work&group={$group->getId()}">Р‛обавить</a> |
<a href="index.php">Р’РµСЂРЅСѓС‚СЊС СЏ РІ СЃРїРёСЃРѕРє РіСЂСѓРїРї</a>
</p>
EOF;
break;
/**
* ----------------------
*
* РАБОТА РЎ Р‛Р РЈРџРџРђРњР?
*
* ----------------------
*/
case 'del_group':
$id = intval($_GET['id']);
require_once(dirname(__FILE__) . '/objects/Work.php');
require_once(dirname(__FILE__) . '/base/DBCollection.php');
$works = new DBCollection(Work::create(), 'WHERE group_id = ' . $id);
if ($works->getCount() > 0) {
$output .= <<<EOF
<h1>В группе существуют работы. Сначала удалите их.</h1>
EOF;
} else {
require_once(dirname(__FILE__) . '/objects/Group.php');
$group = Group::getById($id);
if (!$group) {
$output .= <<<EOF
<h1>Р‛СЂСѓРїРїС‹ СЃ указанным идентификатРром РЅРµ существует.</h1>
EOF;
} else {
if ($group->delete()) {
TemplateCache::drop(Constants::CACHE_INDEX);
$output .= <<<EOF
<h1>Р‛СЂСѓРїРїР° [{$group->getName()}] СѓСЃРїРµС?РЅРѕ удалена.</h1>
<p>Вернуться в <a href="index.php">список групп</a>.</p>
EOF;
}
}
}
break;
case 'add_group':
case 'edit_group':
$id = intval($_GET['id']);
if ($id == 0
&& isset($_POST['id'])
) {
$id = intval($_POST['id']);
}
require_once(dirname(__FILE__) . '/objects/Group.php');
if ($id > 0) {
$group = Group::getById($id);
$title = 'Редактировани µ';
} else {
$group = Group::create();
$title = 'Р‛обавление РЅРѕРІРѕР№';
}
if (!isset($_POST['do'])) {
$output .= <<<EOF
<h1>{$title} РіСЂСѓРїРїС‹</h1>
<form method="post" action="?action=edit_group">
<label for="name">Название:</label>
<input type="text" name="name" id="name" value="{$group->getName()}" /><br />
<label for="year">Р‛ата:</label>
<input type="text" name="day" id="day" size="2" value="{$group->getDay()}" />.<input type="text" name="month" id="month" size="2" value="{$group->getMonth()}" />.<input type="text" name="year" id="year" size="4" value="{$group->getYear()}" />
<input type="hidden" name="id" value="{$group->getId()}" />
<input type="hidden" name="do" value="do" />
<br />
<br />
<input type="submit" value="готово" />
</form>
EOF;
} else {
$name = htmlentities($_POST['name'], ENT_QUOTES, 'utf-8');
$group->setName($name);
$group->setYear(intval($_POST['year']));
$group->setMonth(intval($_POST['month']));
$group->setDay(intval($_POST['day']));
if ($group->save()) {
TemplateCache::drop(Constants::CACHE_INDEX);
$output .= <<<EOF
<h1>{$title} РіСЂСѓРїРїС‹ [{$group->getName()}] СѓСЃРїРµС?РЅРѕ заверС?ено</h1>
<p>Вернуться в <a href="index.php">список групп</a>.</p>
EOF;
}
}
break;
default:
require_once(dirname(__FILE__) . '/objects/Group.php');
require_once(dirname(__FILE__) . '/base/DBCollection.php');
$groups = new DBCollection(Group::create());
$output .= <<<EOF
<h1>РЎРїРёСЃРѕРє РіСЂСѓРїРї</h1>
<hr />
EOF;
while ($group = $groups->shift()) {
$output .= <<<EOF
<p>
<a href="?action=edit_group&id={$group->getId()}" title="редактировать"> v </a>
<a href="?action=del_group&id={$group->getId()}" title="удалить" onclick="return confirm('Точно?');"> x </a>
|
<a href="?action=works&group={$group->getId()}">{$group->getName()}</a>
</p>
EOF;
}
$output .= <<<EOF
<hr />
<p>
<a href="?action=add_group">Р‛РѕР±Р°РІРёС ‚СЊ</a>
</p>
EOF;
break;
}
|
|
|

11.02.2009, 17:45
|
|
Новичок
Регистрация: 08.02.2009
Сообщений: 17
С нами:
9080549
Репутация:
0
|
|
какую. функцию надо использовать чтобы вычислить IP интеренет ресурса ? ну например вводишь сайт в строку, а оно тебе показывает ип...
Поможет кто?
|
|
|

11.02.2009, 17:45
|
|
Постоянный
Регистрация: 07.03.2008
Сообщений: 479
С нами:
9567480
Репутация:
61
|
|
У меня вот ещё какой есть вопрос....
Узер отправляет запрос по которому в БД заносятся поля...1 из которых Time (сделанное функцией time())
Как сделать так чтоб через 60секунд после создание в БД записи, включился PHP скрипт который долее выполнит нужную работу?
Только вот проблема....я бы понимаю юзер нажал на кнопку и пошло проверка на то, что прошло ли 60 сек.... А тут как-то надо вызвать без вмешательства пользователя.
|
|
|

11.02.2009, 17:48
|
|
Участник форума
Регистрация: 08.02.2009
Сообщений: 196
С нами:
9080952
Репутация:
127
|
|
blaga, ты наверно несовсем понял что я хочу)
|
|
|

11.02.2009, 17:51
|
|
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
С нами:
10597286
Репутация:
694
|
|
маркиза
а что тегом [php] не учили в детстве пользоваться?
а по сути хз на что он там ругаеться где то там на ООП ругаеться.
Последний раз редактировалось blaga; 11.02.2009 в 17:55..
|
|
|

11.02.2009, 17:54
|
|
Новичок
Регистрация: 11.02.2009
Сообщений: 21
С нами:
9076501
Репутация:
0
|
|
Учили, просто не могла вставить как не пыталась.Сорьки.
Значит не знаете на что ругаеться?
|
|
|

11.02.2009, 18:02
|
|
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
С нами:
10597286
Репутация:
694
|
|
Carbon1, WHOIS. насколько я знаю функции такой вроде нету. или просто я не встречал. а вообще отправляешь куда нить через сокеты например запрос, а потом парсишь ответ.
Byrger, есть такая функция sleep(60) поставьте ее после того как данные добавляються в БД. а после этой строки пишите то что нужно будет сделать. Так скрипт выолнит запрос к БД, заснет на 60 сек и потом продолжит работу с тем что у вас там нужно.
Gaus, я понял но у меня нет такого скрипта которогы ты хочешь. только тот о котором я написал.
Sindicat, лучше вводи время функцией time() он выдает кол-во секунд с какого там года. А потом в другом скрипте что в кроне будет ты просто SELECT ом выводи все значения того столбца и сравнивай с новым time() если по секундам прошло столько то времени то удаляй из БД запись. разница = время в бд - время из вызванного скрипта.
Маркиза, я нет. погодите немного. возможно вам кто то ответит.... кто более компетентнее меня.
|
|
|

11.02.2009, 18:10
|
|
Постоянный
Регистрация: 07.03.2008
Сообщений: 479
С нами:
9567480
Репутация:
61
|
|
Сообщение от blaga
Carbon1, WHOIS. насколько я знаю функции такой вроде нету. или просто я не встречал. а вообще отправляешь куда нить через сокеты например запрос, а потом парсишь ответ.
Byrger, есть такая функция sleep(60) поставьте ее после того как данные добавляються в БД. а после этой строки пишите то что нужно будет сделать. Так скрипт выолнит запрос к БД, заснет на 60 сек и потом продолжит работу с тем что у вас там нужно.
Gaus, я понял но у меня нет такого скрипта которогы ты хочешь. только тот о котором я написал.
Sindicat, лучше вводи время функцией time() он выдает кол-во секунд с какого там года. А потом в другом скрипте что в кроне будет ты просто SELECT ом выводи все значения того столбца и сравнивай с новым time() если по секундам прошло столько то времени то удаляй из БД запись. разница = время в бд - время из вызванного скрипта.
Маркиза, я нет. погодите немного. возможно вам кто то ответит.... кто более компетентнее меня.
Sleep Действует на весь скрипт целиком? Пользователю придётся ждать когда скрипт "проснётся"?
Ну вызовет ли это большую нагрузку на сервер?
Пользователь должен находится в этот момент на данной странице? или может дольше гулять по просторам инета?
Последний раз редактировалось Byrger; 11.02.2009 в 18:13..
|
|
|

11.02.2009, 18:13
|
|
Новичок
Регистрация: 11.02.2009
Сообщений: 21
С нами:
9076501
Репутация:
0
|
|
Сообщение от blaga
Carbon1,
Маркиза, я нет. погодите немного. возможно вам кто то ответит.... кто более компетентнее меня.
Буду ждать...так как очень надо
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|