|
|
|
| Изучая раздел вашего учебника в разделе гостевая книга на файлах наблюдаю много синтаксических ошибок. Например:
<?php
$dir_rec->close(); // закрываем директорию
@rsort($names); //
?>
|
Значок -> он там специально? Это такой синтаксис. Или просто опечатка?
@ это понятно что опечатка. Ну и так по тексту...
А так классная, простая гостевая книга. Уже внедряю... | |
|
|
|
|
|
|
|
для: Axxil
(23.07.2004 в 16:04)
| | "->" Это так оно и есть на самом деле.
>@ это понятно что опечатка. Ну и так по тексту...
:) Вовсе нет. Это не опечатка. Это значок используется для подавления ошибок при выводе на страницу.
| |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(23.07.2004 в 16:36)
| | А я вместо dir_rec->close() использовал просто closedir($dir_rec).
Так не правильно?
А можно подробнее насчёт @ и ->. Что это за символы? | |
|
|
|
|
|
|
|
для: Axxil
(23.07.2004 в 18:00)
| | -> если мне не изменяет память указатель к внутренним функциям класса (в данном случае класс dir)
@ - если указывает вместе с функцией то ошибки во время ее выполнения будут игнорироваться
| |
|
|
|
|
|
|
|
для: Artem S.
(23.07.2004 в 22:04)
| | Да, dir - это внутренний каласс PHP для работы с директориями.
PS Вы меня опередили :))) | |
|
|
|
|
|
|
|
для: Axxil
(23.07.2004 в 18:00)
| | Символ @ очень примечателен... Дело в том, что функции в PHP, в случае ошибок, например, при передаче пустого значения вместо массива и т.п. наровят вывести в окно браузера текстовые предупреждения. Это не всегда удобно, так как может нарушить дизайн сайта. Для подавления таких сообщений используется символ @. Например, это удобно при построении всевозможных счётчиков - если база данных MySQL лежит - любое обращение к ней будет завершаться неудачей и выводм предупреждения - символ @ это предотвращает, поэтому посетители не испытывают неудобств при посещении сайта (хотя его посещение не фиксируется), в большинстве случаев они даже не подозревают об том, что данный сервис лежит.
Это так же удобно, когда вы хотите вместо маловразумительной фразы на английском языке сообщить посетителю о проблемах, например:
<?php
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx)
{
echo "<p>К сожалению, не доступен сервер MySQL, попробуйте зайти позже.</p>";
exit();
}
?>
|
В этом случае посетитель, ничего кроме фразы "К сожалению, не доступен сервер MySQL, попробуйте зайти позже" не увидит... В противном случае, перед этой фразой будет выведено что-то вроде: Warning: mysql_connect(): Access denied for user: 'user@host' (Using password: YES) in \usr\www\host\main\config.php on line 8 | |
|
|
|
|
|
|
|
для: cheops
(23.07.2004 в 22:08)
| | Есть ещё один интересный приём, можно подавить вывод ошибок и предупреждений в целом файле при его включении в другой:
<?php
@include "index.php";
?>
|
PS Но всё же злоупотреблять ими не следует, так как вам не будут видны ошибки в скрипте, что затруднит отладку... | |
|
|
|
|
|
|
|
для: Axxil
(23.07.2004 в 16:04)
| | У меня проблема с liteforum
Установил. Загрузил. Создаю новую тему. Заполняю поля:
- Тема
- Имя
- Сообщение
Он выдает "неуказанна тема сообщения"
Та же проблема наблюдается с фото галереей.
Новости, Голосование и Гостевая на mySQL работают нормально. | |
|
|
|
|
|
|
|
для: Artem S.
(26.07.2004 в 16:37)
| | liteforum - требует для своей работы включённой директивы register_globals. Через пол месяца будет выложена вторая версия поддерживающая работу с отключённой директивой register_globals. В ней будет дизайн: два skin-а (один тот, что используется на этом форуме), с возможностью переключения и добаления собственного скина, мощная система администрирования и т.д.
PS Странно, что фотогалерея не работает - не могли бы вы описать ситуацию? | |
|
|
|
|
|
|
|
для: cheops
(26.07.2004 в 17:10)
| | Ситуация такая:
> Установил скрипт
> Подключил его к базе данных
> Зашел на станицу администрирования
> Добавляю новую категорию, после чего получаю сообщение
"Ошибка при добавлении каталога"
База данных работает. Так как ей пользуются все ваши скрипты которые я установил.
P.S. А предложения по увеличению функциональности форума принимаются или это уже решенный вопрос? | |
|
|
|
|
|
|
|
для: Artem S.
(26.07.2004 в 19:14)
| | >P.S. А предложения по увеличению функциональности форума
>принимаются или это уже решенный вопрос?
Да, конечно принимаются :), они сейчас будут очень кстати... | |
|
|
|
|
|
|
|
для: cheops
(26.07.2004 в 17:10)
| | Кстати register_globals у меня on
И видимо причина в другом.
Я попробовал добавить строчки в файл addtheme.php
<?php
$theme = $_POST["theme"];
$author = $_POST["author"];
$message = $_POST["message"];
?>
|
После чего получил собщение:
"Ошибка добовления темы"
Error: You have an error in your SQL syntax near ')' at line 9
(с учетом добавочных строк) | |
|
|
|
|
|
|
|
для: Artem S.
(26.07.2004 в 20:09)
| | Хм... скачал с сайта установил в новую базу данных - действительно при первом обращении промелькнуло такое сообщение - стал отлаживать - пропала куда-то зараза :))), уже базу другую создал - всё-равно... попробуйте ещё раз добавить тему - у вас только при первом обращении ошбка вылазит или постоянно?
Но, действительно, есть какая-то нестабильность при пустой базе сообщений... будем ловить. | |
|
|
|
|
|
|
|
для: cheops
(26.07.2004 в 20:35)
| | Ошибка в файле addcat.php (из архива фото)
У вас
NULL,
'".$_POST['name']."',
'".$_POST['description']."',
".$_POST['pos'].",
'$showhide',
".$_POST['id_catalog'].")";
|
А надо
NULL,
'".$_POST['name']."',
'".$_POST['description']."',
'".$_POST['pos']."',
'$showhide',
"'.$_POST['id_catalog'].'")";
|
В файле addtheme из архива форума помоему запросы тоже не корректны | |
|
|
|
|
|
|
|
для: Artem S.
(26.07.2004 в 21:01)
| | А после исправления заработало?
Вообще говоря странно, поля pos и id_catalog - цифровые, и вот этот вариант ещё старого форума пашет именно на таких запросах без кавычек. Мы как раз стараемся выкладывать в downloads то, что реально применяется и работает.
PS Не могли бы вы сообщить версию вашего сервера MySQL. | |
|
|
|
|
|
|
|
для: cheops
(26.07.2004 в 21:07)
| | После исправления заработало. Причем проверил еще раз. Убрал кавички, сохранил - неработает, поставил, сохранил - работает
Версия MySQL 3.23.53-max (строчка из phpMyAdmin) | |
|
|
|
|
|
|
|
для: Artem S.
(26.07.2004 в 21:15)
| | Сам форум, мы, конечно, на четвёртом разрабатывали, но он у насна сервере, где меньшая версия стояла, долго работал ...
Если вам не сложно, посмотрите какой тип выставлен в phpMyAdmin для спорных полей... Очень странно, что MySQL требует текстовые, а не числовые значения...
PS И за одно посмотрите, пожалуйста, все ли поля в phpMyAdmin в нижнем регистре? | |
|
|
|
|
|
|
|
для: cheops
(26.07.2004 в 21:41)
| | Я кажется понял в чем дело.
От куда мы получает $id_catalog в фото галерее и $id_forum в liteforum ???
Из глобального массива $_POST, но ведь я через POST эти ib_*** не передаю.
P.S. кавычки где требуется числовые значения я убрал. Проблема только с $id_catalog (фото) и $id_forum (форум)
| |
|
|
|
|
|
|
|
для: Artem S.
(26.07.2004 в 22:52)
| | В заглавных файлах, если параметр не передан - ему присваивается значение по умолчанию
<?php
// В index.php в liteforum
// Проверяем значение $id_forum на допустимое значение
if($id_forum=="") $id_forum = 1;
?>
|
Если директива register_globals включена в файле menu.php по ссылке addthemeform.php?id_forum=<?php echo $id_forum; ?> она передаётся в HTML-форму addthemeform.php, т.е. там его следует ловить по методу GET, а из него в addtheme.php id_forum передается по методу POST - так как он сидидт в поле hidden. | |
|
|
|
|
|
|
|
для: cheops
(26.07.2004 в 20:35)
| | Исправил запросы в файле addtheme.php
Он стал ругаться на отправку письма, тогда строчку с mail я закомментировал. После этого процесс прошел удачно, но новая тема не появилась. | |
|
|
|
|
|
|
|
для: Artem S.
(26.07.2004 в 21:11)
| | Отправку письма можно отключить в админе или в базе данных (таблица settings, поле mail : 0 - выключено, 1 - включено).
Нужно в двух местах править - при добавлении новой темы в таблицу posts - помещается сообщение, а в themes - тема... Хотя если сервер цифровые столбцы воспринимает как текстовые... вообще странно это... | |
|
|
|
|
|
|
|
для: cheops
(26.07.2004 в 21:35)
| | Видимо это проблема моего софта и вашей вины тут нет. Извините что отнял у вас время. Попробую решить проблему своими силами | |
|
|
|