HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 11.02.2009, 17:49
Sindicat
Новичок
Регистрация: 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 строке
  #2  
Старый 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="редактировать">&nbsp;v&nbsp;</a> &nbsp;
<a href="?action=del_pic&id={$pic->getId()}&work={$workId}" title="удалить" onclick="return confirm('Точно?');">&nbsp;x&nbsp;</a> &nbsp;
| &nbsp;
<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="редактировать">&nbsp;v&nbsp;</a> &nbsp;
<a href="?action=del_work&id={$work->getId()}&group={$group->getId()}" title="удалить" onclick="return confirm('Точно?');">&nbsp;x&nbsp;</a> &nbsp;
| &nbsp;
<a href="?action=pictures&work={$work->getId()}&group={$group->getId()}">{$work->getName()}</a> &nbsp; &nbsp;
</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="редактировать">&nbsp;v&nbsp;</a> &nbsp;
<a href="?action=del_group&id={$group->getId()}" title="удалить" onclick="return confirm('Точно?');">&nbsp;x&nbsp;</a> &nbsp;
| &nbsp;
<a href="?action=works&group={$group->getId()}">{$group->getName()}</a> &nbsp; &nbsp;
</p>
EOF;
}

$output .= <<<EOF
<hr />
<p>
<a href="?action=add_group">Р‛РѕР±Р°РІРёС ‚СЊ</a>
</p>
EOF;

break;

}
 
Ответить с цитированием

  #3  
Старый 11.02.2009, 17:45
Carbon1
Новичок
Регистрация: 08.02.2009
Сообщений: 17
С нами: 9080549

Репутация: 0
По умолчанию

какую. функцию надо использовать чтобы вычислить IP интеренет ресурса ? ну например вводишь сайт в строку, а оно тебе показывает ип...
Поможет кто?
 
Ответить с цитированием

  #4  
Старый 11.02.2009, 17:45
Byrger
Постоянный
Регистрация: 07.03.2008
Сообщений: 479
С нами: 9567480

Репутация: 61
По умолчанию

У меня вот ещё какой есть вопрос....

Узер отправляет запрос по которому в БД заносятся поля...1 из которых Time (сделанное функцией time())
Как сделать так чтоб через 60секунд после создание в БД записи, включился PHP скрипт который долее выполнит нужную работу?


Только вот проблема....я бы понимаю юзер нажал на кнопку и пошло проверка на то, что прошло ли 60 сек.... А тут как-то надо вызвать без вмешательства пользователя.
 
Ответить с цитированием

  #5  
Старый 11.02.2009, 17:48
Gaus
Участник форума
Регистрация: 08.02.2009
Сообщений: 196
С нами: 9080952

Репутация: 127
По умолчанию

blaga, ты наверно несовсем понял что я хочу)
 
Ответить с цитированием

  #6  
Старый 11.02.2009, 17:51
blaga
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
С нами: 10597286

Репутация: 694


По умолчанию

маркиза
а что тегом [php] не учили в детстве пользоваться?
а по сути хз на что он там ругаеться где то там на ООП ругаеться.

Последний раз редактировалось blaga; 11.02.2009 в 17:55..
 
Ответить с цитированием

  #7  
Старый 11.02.2009, 17:54
Маркиза
Новичок
Регистрация: 11.02.2009
Сообщений: 21
С нами: 9076501

Репутация: 0
По умолчанию

Учили, просто не могла вставить как не пыталась.Сорьки.
Значит не знаете на что ругаеться?
 
Ответить с цитированием

  #8  
Старый 11.02.2009, 18:02
blaga
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
С нами: 10597286

Репутация: 694


По умолчанию

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

Byrger, есть такая функция sleep(60) поставьте ее после того как данные добавляються в БД. а после этой строки пишите то что нужно будет сделать. Так скрипт выолнит запрос к БД, заснет на 60 сек и потом продолжит работу с тем что у вас там нужно.

Gaus, я понял но у меня нет такого скрипта которогы ты хочешь. только тот о котором я написал.

Sindicat, лучше вводи время функцией time() он выдает кол-во секунд с какого там года. А потом в другом скрипте что в кроне будет ты просто SELECT ом выводи все значения того столбца и сравнивай с новым time() если по секундам прошло столько то времени то удаляй из БД запись. разница = время в бд - время из вызванного скрипта.

Маркиза, я нет. погодите немного. возможно вам кто то ответит.... кто более компетентнее меня.
 
Ответить с цитированием

  #9  
Старый 11.02.2009, 18:10
Byrger
Постоянный
Регистрация: 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..
 
Ответить с цитированием

  #10  
Старый 11.02.2009, 18:13
Маркиза
Новичок
Регистрация: 11.02.2009
Сообщений: 21
С нами: 9076501

Репутация: 0
По умолчанию

Цитата:
Сообщение от blaga  
Carbon1,
Маркиза, я нет. погодите немного. возможно вам кто то ответит.... кто более компетентнее меня.
Буду ждать...так как очень надо
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT ™ © 2001- Antichat Kft.