|
|
|
| to Cheops!
На самом деле все именно так!
Касательно версии 2.1.5:
В версии 2.1.5 функция settime($author,$enter) имела всего 2 параметра. Параметр $id_forum ей не передавался. Поэтому никаких ошибок не выозникало естественно. Ведь переменная $id_forum не участвовала. Файл registerform.php имеет форму, в ней передается скрытый параметр $id_forum - <input type=hidden name=id_forum value=<?php echo $id_forum; ?>> на обработчик формы register.php. Но скрипт register.php никак не извлекает переменную $id_forum из отправленных методом POST данных! Отсюда и картинка которую мы видим в адресной строке, когда регистрируем нового пользователя на форуме версии 2.1.5 - http://wdc/lf21/forum/index.php?id_forum= . Заметьте, что GET-параметр id_forum имеет пустое значение!
Касательно версии 3.0.1
В версии 3.0.1 функция settime() претерпела изменения. Теперь она использует еще один параметр $id_forum. Функция вызывается в скрипте register.php. НО! Так как файл register.php практически не претерпел изменений, то есть переменная $id_forum в нем не объявлялась (как и в старой версии), и соотвественно не передавалась в функцию settime().
Функция не может выполнить sql-запрос
"SELECT UNIX_TIMESTAMP(last_time.now$id_forum) AS now_time FROM authors, last_time
WHERE authors.name='$author' AND authors.id_author = last_time.id_author", поскольку получающее в результате запроса название поля last_time.now (вместо last_time.now1) просто не сущуствует!
Отсюда и источник всех бед! Насколько я понимаю вы просто-напросто забыли вместе со всеми данными из формы извлечь еще и $id_forum.
Решение: добавить в файле register.php строку $id_forum = $_POST['id_forum'];
Проверьте, все именно так и есть!!!
P.S. Надеюсь я понятно изложил :) | |
|
|
|
|
|
|
|
для: Saddam
(10.12.2005 в 03:13)
| | Действительно, спасибо огромно... причём как обнаружил, ->F@$#!$T<- - http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=10013 этот косяк ещё и в readall.php находится. Новую версию LiteForum 3.0.3, где исправлены эти ошибки выложена в раздел downloads.
http://www.softtime.ru/info/liteforum.php | |
|
|
|
|
|
|
|
для: cheops
(10.12.2005 в 13:58)
| | Похоже, просто инъекция этой строки в сам readall.php или utils.php и config.php, которые он включает, не помогает. Попробую поискать по ходу вызовов функций. | |
|
|
|
|
|
|
|
для: cheops
(10.12.2005 в 13:58)
| | Однако при замене
if(isset($_COOKIE['current_author'])) settime($_COOKIE['current_author'],true,$id_forum);
на
if(isset($_COOKIE['current_author'])) settime($_COOKIE['current_author'],$id_forum = $_POST['id_forum'],);
получаем белый экран, без ошибки, не знаю, есть ли в этом смысл...
если написать
if(isset($_COOKIE['current_author'])) settime($_COOKIE['current_author'],$_POST['id_forum'],);
-эффект тот же
Хм... Убрать запятую перед последней скобкой d_forum']); -и опять ошибка! | |
|
|
|
|
|
|
|
для: ->F@$#!$T<-
(10.12.2005 в 14:23)
| | Что не очень понятен смысл манипуляций? Да это должно вызывать ошибку... | |
|
|
|
|
|
|
|
для: cheops
(11.12.2005 в 01:50)
| | Похоже, я так ничё и не понял :)
Ну, зато 3.0.3 теперь работает :) | |
|
|
|
|
|
|
|
для: ->F@$#!$T<-
(11.12.2005 в 14:41)
| | Почти работает
В новой версии вашего форума есть еще одна ошибка в файле addperform.php.
Для ее исправления нужно
1. Заменить 20-ую строку на
$id_addresser = $_GET['id_author'];
|
2. Заменить 24-ую строку на
if(!preg_match("|^[\d]+$|",$id_addresser) && !empty($id_addresser)) exit();
|
3. Заменить 30-ую строку на
$query = "SELECT * FROM authors WHERE id_author = $id_addresser";
|
| |
|
|
|
|
|
|
|
для: ZC
(11.12.2005 в 17:57)
| | Не хотите добавить смайлы и в названия тем, которые отображаются на главной странице форума | |
|
|
|
|
|
|
|
для: ZC
(11.12.2005 в 17:59)
| | Хм... пожалуй можно. | |
|
|
|
|
|
|
|
для: ZC
(11.12.2005 в 17:57)
| | Ага, есть такое дело - исправил, выложил версию 3.0.4 в раздел downloads. | |
|
|
|
|
|
|
|
для: cheops
(11.12.2005 в 18:20)
| | Я нашел еще один касяк. В файле enterform.php есть ссылка на форму registerform.php...
Вообщем, короче, етот кусок кода
<p class=texthelp>Для авторизации Вам необходимо ввести Ваше имя и пароль.
Пройдите <a href="registerform.php">регистрацию</a>, если вы еще не еще не зарегистрированы на форуме.
</p>
|
надо заменить на
<p class=texthelp>Для авторизации Вам необходимо ввести Ваше имя и пароль.
Пройдите <a href="registerform.php?id_forum=<? echo $id_forum; ?>">регистрацию</a>, если вы еще не еще не зарегистрированы на форуме.
</p>
|
Проверьте и сами поймете. :)
P.S. Кстати этим косяком страдает и ваш форум! Который тут висит! | |
|
|
|
|
|
|
|
для: Saddam
(12.12.2005 в 00:16)
| | И еще одна, насколько я понимаю, ошибочная ситуация:
в файле index.php (главная страница форума) со строки 125 идет такой код:
if($themes['hide'] == 'lock')
{
if($posts_in_topic>1) $closetheme = "(тема закрыта)";
else $closetheme = "(тема перенесена)";
$closetitle = "Тема закрыта для обсуждения";
}
|
Так вот следовало бы написать не if($posts_in_topic>1), а if($posts_in_topic>=1), поскольку, если в теме одно сообщение и я ее закрываю, то пишет, что "тема перенесена", вместо "тема закрыта". Конечно несерьезно, но всё же. | |
|
|
|
|
|
|
|
для: Saddam
(12.12.2005 в 10:54)
| | Это не от хорошей жизни сделано... дело в том, что при переносе темы остаётся тема указатель на старом месте. Если так сделать, то всегда будет писаться (тема закрыта), что угнетающе действует на автора темы. Учитывая, что такие ошибки совершают в основном вновьприбывшие - они могут покинуть форум не разбираясь в фичах движка - очень бы этого не хотелось. Закрыть тему с одним сообщением требуется реже, чем перенести тему, поэтому мы пошли на такой шаг. | |
|
|
|
|
|
|
|
для: Saddam
(12.12.2005 в 00:16)
| | >Я нашел еще один касяк.
Есть такое дело, выложу сегодня поправленную версию, без изменения версии последней строки, а то уж мы чего-то резво взялись :))) обычно до этой версии полгода идём... | |
|
|
|
|
|
|
|
для: cheops
(12.12.2005 в 15:26)
| | Ага, а то так глядишь мелкими шажочками и до 4 версии к Новому году доберемся :)) | |
|
|
|
|
|
|
|
для: Saddam
(12.12.2005 в 15:30)
| | :) | |
|
|
|
|
|
|
|
для: cheops
(10.12.2005 в 13:58)
| | А как можно правильнее спрятать папку Admin?
Вот у вас её как будто-бы нет...
Может, где-нибудь в настройках Апаче можно, или лучше скриптом?
Или, может, самый надёжный способ - переименовать admin/index.htm и убрать отображение indexes/каталогов в httpd.conf :))))))))))?
P.S. Самому ковыряться и искать, честно признаться, банально нету времени, т.к. приходится кроме учёбы тянуть втроём с однокурсниками первую в Украине масштабную Wi-Fi сеть (R=10км) с последующим образованием в провайдера и плюс лепить под него на скорую руку портал по типу matrix.farlep.net... | |
|
|
|
|
|
|
|
для: ->F@$#!$T<-
(16.12.2005 в 00:03)
| | Да просто переименуй папку admin как хочешь, как-нибудь вроде nimda (admin наоборот), чтоб никто не догадался и защитить папку средствами Apache. (с помощью .htaccess & .htpasswd)
Больше ниче и не надо думать | |
|
|
|
|
|
|
|
для: ->F@$#!$T<-
(16.12.2005 в 00:03)
| | 1) Во-первых её следует в обязательном порядке переименовать.
2) Во-вторых, как правильно пишет Saddam, директорию следует запоролить либо при помощи конфигрурационных файлов .htaccess и .htpasswd, о которых можно почитать в статье http://www.softtime.ru/info/articlephp.php?id_article=27, либо при помощи специально созданного для таких вещей Web-приложения "Система авторизации HTTP-Basic", которую можно свободно загрузить из раздела downloads http://www.softtime.ru/info/authorization.php. | |
|
|
|
|
|
|
|
для: cheops
(16.12.2005 в 13:56)
| | >1) Во-первых её следует в обязательном порядке переименовать.
вот этот пункт я всегда недопонимал: если защищать директорию с помощью апача, то чем это может грозить в плане безопасности? Только подбор пароля? | |
|
|
|
|
|
|
|
для: Loki
(16.12.2005 в 16:20)
| | Да просто спокойнее :))) | |
|
|
|
|
|
|
|
для: cheops
(17.12.2005 в 00:40)
| |
Ошибка при выборке тем форума...
Error: Unknown column 'last_time.last_time1' in 'field list'
|
3.0.4 :D | |
|
|
|
|
|
|
|
для: AKiRA
(03.01.2006 в 22:06)
| | А также загляните в xml.php :))))))) И смените ссылки. | |
|
|
|
|
|
|
|
для: Akira
(03.01.2006 в 22:07)
| | Хм... а чего-то ничего подозрительного не вижу... | |
|
|
|
|
|
|
|
для: cheops
(04.01.2006 в 00:22)
| |
<title>Форум PHP портала SoftTime</title>
<link>http://www.softtime.ru/forum/</link>
<description>Форум PHP портала SoftTime поддерживается авторами нескольких книг по PHP</description>';
|
| |
|
|
|
|
|
|
|
для: Akira
(04.01.2006 в 00:24)
| | Хм... да, действительно как-то не хорошо получилось - нужно будет поправить. | |
|
|
|
|
|
|
|
для: AKiRA
(03.01.2006 в 22:06)
| | >3.0.4 :D
Как ставили из инсталлятора? | |
|
|
|
|
|
|
|
для: cheops
(04.01.2006 в 00:20)
| | Ага, все из него :) Скачал чисто с сайта. | |
|
|
|
|
|
|
|
для: Akira
(04.01.2006 в 00:24)
| | Хм... странно, а никаких ограничений на MySQL-пользователя нет? Какие версии серверов используются? | |
|
|
|
|
|
|
|
для: cheops
(04.01.2006 в 00:33)
| | Да я к тому, что нету там last_time1. И нужно ли не знаю. Поэтому хотел бы попросить слить дамп рабочий :)
Да кстати, хочу перекинуть в другой вид форум. И вообще меня немного напрягает, тот факт, что структуру сложно поменять. | |
|
|
|
|
|
|
|
для: Akira
(04.01.2006 в 00:54)
| | А, да в дампе нет в корне, таблица должна быть такой
CREATE TABLE last_time (
id_author int(11) NOT NULL auto_increment,
now1 datetime NOT NULL default '0000-00-00 00:00:00',
last_time1 datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id_author)
) TYPE=MyISAM;
|
Обновлю архив в течении дня. Хотя при автоматической установке из админа - всё должно быть протекать нормально... | |
|
|
|