Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ваш форум: кое-что не могу настроить!
 
 автор: Boris   (14.11.2005 в 08:53)   письмо автору
 
 

Здравствуйте!
Вот прилаживаю ваш форум к себе!
На локальной машине все работает, а на хостинге не работает:
Не крепятся файлы и фотографии
Не работает переключатель вид форума

У меня и на обоих серверах стоит одинаковый PHP Version 4.3.11
Пожалуйста, разъясните как такое может быть или поподробнее разжуйте как оно работает,
сам ну никак не могу допереть (простите за сленг)! Ну никак! Параллельно стараюсь конечно!
Вид остается лестничный и все!
вот файл переключателя setstruct.php:

<?php
  
///////////////////////////////////////////////////
  // Web-приложение форум - LiteForum
  // Поддержка http://www.softtime.ru/forum/
  // 2003-2004 (C) IT-студия SoftTime (http://www.softtime.ru)
  // Симдянов И.В. (simdyanov@softtime.ru)
  // Голышев С.В. (softtime@softtime.ru)
  // Кузнецов М.В. (kuznetsov@softtime.ru)
  ///////////////////////////////////////////////////
  // Выставляем уровень обработки ошибок (http://www.softtime.ru/info/articlephp.php?id_article=23)
  
Error_Reporting(E_ALL & ~E_NOTICE); 
  
// Устанавливаем соединение с базой данных
  
require_once("../admin/config_forum.php");
  
// Подключаем библиотеку форума
  
require_once("./utils/utils.php");
  
// Извлекаем значения параметров из строки запроса
  
$id_forum $_GET['id_forum'];
  
$id_theme $_GET['id_theme'];
  
$page $_GET['page'];
  
$struct $_GET['struct'];
  
$down $_GET['down'];
  
// Определяем путь, где расположен форум
  
$tmppos strrpos($_SERVER['PHP_SELF'],"/") + 1;
  
$path substr($_SERVER['PHP_SELF'], 0$tmppos);
  if(
$struct)
  {
    
$query "SELECT * FROM settings";
    
$set mysql_query($query);
    if(
$set$settings mysql_fetch_array($set);
    
setcookie("lineforum""set_line_forum"time() + 3600*24*$settings['cooktime'], $path);
    
// Если определена переменная $down новые сортируем сообщения от старых дат к новым
    
if(!empty($down)) setcookie("lineforumdown""set_line_forum_down"time() + 3600*24*$settings['cooktime'], $path);
    else 
setcookie("lineforumdown"""0$path);
  } else 
setcookie("lineforum"""0$path);
  
// Осуществляем автоматический переход к теме
  
echo "<HTML><HEAD>
        <META HTTP-EQUIV='Refresh' CONTENT='0; URL=read.php?id_forum=
$id_forum&id_theme=$id_theme&page=$page'> 
        </HEAD></HTML>"
;
?>


Каким образом происходит сортировка, вижу лишь запись в Куки, а где обрашение к БД и т.д.
if($struct)
  {
    $query = "SELECT * FROM settings";
    $set = mysql_query($query);
    if($set) $settings = mysql_fetch_array($set);
    setcookie("lineforum", "set_line_forum", time() + 3600*24*$settings['cooktime'], $path);
    // Если определена переменная $down новые сортируем сообщения от старых дат к новым
    if(!empty($down)) setcookie("lineforumdown", "set_line_forum_down", time() + 3600*24*$settings['cooktime'], $path);
    else setcookie("lineforumdown", "", 0, $path);
  } else setcookie("lineforum", "", 0, $path);


Ага, файл setstruct.php обновляет и вызывает файл read.php, где все и происходит!
Куки у меня работают:
переменная lineforum = set_line_forum т.е. читается и передается, но линейным форум все равно не становитя((
А как работает эта функция и что значит @?

// Рекурсивно выводим все подчинённые сообщения
      @putpost($posts['id_post'],
               $id_theme,
               2,
               $lasttime,
               $current_author,
               $id_forum,
               $lineforum,
               $lineforumdown,
               $skin,
               $themes['hide']);

   
 
 автор: cheops   (14.11.2005 в 15:21)   письмо автору
 
   для: Boris   (14.11.2005 в 08:53)
 

К сожалению, в код последней версии просочилась ошибка при реализации системы переключения между структурным и линейным форумом. Пожалуйста загрузите обновлённую версиию или просто исправьте 40 строку файла read.php c
<?php
    $lineforum 
mysql_escape_string($$lineforum);
?>

на
<?php
    $lineforum 
mysql_escape_string($lineforum);
?>


PS В ближайшее время будет вылжена 3 версия форума, включающая множество новых функций, таких раздельный учёт времени последнего посещения в разделах, RSS, более гибкую настройку параметров форума, помесячную статистику по темам и сообщениям.

   
 
 автор: boris   (15.11.2005 в 06:18)   письмо автору
 
   для: cheops   (14.11.2005 в 15:21)
 

Спасибо, заработало!
Чесно говоря меня смутили поначалу эти два подряд $$, но до сознания видимо не дошло!
Обязательно скачаю обновленные файлы, надеюсь там фото и файлы крепятся!
Кстати на локальной машине у меня все работало! Почему? (так для общего развития)
Кстати не мешало бы ввести функцию "забыли пароль", как это делается повсеместно, у вас пароль вспоминается если только я в On-line. Может я вперед сам это напишу, тогда поделюсь!
Еще раз спасибо, но я еще вернусь!

   
 
 автор: cheops   (15.11.2005 в 13:47)   письмо автору
 
   для: boris   (15.11.2005 в 06:18)
 

Когда не работате на UNIX, а работате на Windows - скорее всего проблемы с правами доступа на директории, где записываются файлы.

   
 
 автор: Boris   (15.11.2005 в 14:14)   письмо автору
 
   для: cheops   (15.11.2005 в 13:47)
 

Что за права доступа на директории? Можно поподробнее, это в php.ini?
Еще:
В странице анминистрирования можно добавить ссылки, где они потом отображаются и при помощи какого файла?
Что это за ссылки?
Я добавил пару, но их нет нигде...

   
 
 автор: cheops   (15.11.2005 в 22:30)   письмо автору
 
   для: Boris   (15.11.2005 в 14:14)
 

Нет имеются ввиду права доступа на директории в UNIX, вот несколко ссылок по теме
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1553
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=158
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1444
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1404
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=969

Ссылки пока не поддерживаются базовыми скинами, только расширенным, который в свободно-распространяемую версию не входит.

   
 
 автор: Boris   (16.11.2005 в 06:00)   письмо автору
 
   для: cheops   (15.11.2005 в 22:30)
 

Спасибо за ответ, но с UNIX я ни разу не сталкивался....
Звонил провайдеру, он сказал, что если php работает в режиме safemode, то нужно вместо ф-ии copy использовать move_uploaded_file.
А так же разрешить доступ к дирректории куда пишуться файлы либо программно в php, лбо через ssh-клиент? командой cmod
Можно, пожалуйста, ссылочки об этом, я ничего не понял, что за клиент, как и чего...

Вот фрагмент файла editpost.php

// Перемещаем файл из временной директории сервера в
    // директорию /files Web-приложения
   // if (copy($_FILES['attach']['tmp_name'], $path))
    if (move_uploaded_file($_FILES['attach']['tmp_name'], $path))
    {
      echo "файл скопирован";
      
      // Уничтожаем файл во временной директории
      unlink($_FILES['attach']['tmp_name']);
      // Изменяем права доступа к файлу
      chmod($path, 0644);
    }
    else
    {
     echo "фиг вам";
    }
    $path = " putfile = '$path', ";
  }
  ///////////////////////////////////////////////////////////
  // Блок формирования и выполнения SQL-запроса
  ///////////////////////////////////////////////////////////
  // Добавляем обновлённое сообщение
  $query_update = "UPDATE posts SET name = '$message',
                                    $path
                                    url = '$url'
                   WHERE id_post = $id_post";
  // Обновляем время последнего посещения для автора сообщения
  $query_author = "UPDATE authors
                   SET time = NOW()
                   WHERE id_author = $id_author";
  // Выполняем SQL-запросы
  if(mysql_query($query_update) && mysql_query($query_author))
  {
    // В случае успеха осуществляем автоматический переход
    // к теме     
   //echo "<HTML><HEAD>
   //      <META HTTP-EQUIV='Refresh' CONTENT='0; URL=read.php?id_forum=".$id_forum."&id_theme=$id_theme&id_post=$id_post'>
   //      </HEAD></HTML>";
  } else puterror("Ошибка при обновлении сообщения...");


Выдает "фиг вам"

еще:
Поиск не получается, файл srchform.php выдает:
Error: You have an error in your SQL syntax near 'BOOLEAN MODE) AND id_forum = 1 AND ' at line 2

еще:
Каким образом и где шифруется пароль пользователя, я вижу типа: 0a4c525504929539 вместо моего пароля, как его воспроизвести обратно, например хочу знать пароли посетителей форума.
Что это в sql-запросе: PASSWORD('$pswrd') ?
Кто я, администратор или нет!

Пожалуйста, найдите время ответить. Жду.... С уважением, Борис.

   
 
 автор: Boris   (16.11.2005 в 08:32)   письмо автору
 
   для: Boris   (16.11.2005 в 06:00)
 

Ага, заметил, что если вместо PASSWORD('$pswrd') поставить просто '$pswrd' в запросе к БД, то в базу заносится пароль в первозданном виде, что это за операция, зачем нужна и как перекодировать обратно пароли пользователей?

Да, пожалуйста не забудте про мои вышеописанные проблемы, понимаю, что слишком много, но я почти в вакууме и надежда только на ваш форум и книги....

   
 
 автор: cheops   (16.11.2005 в 13:47)   письмо автору
 
   для: Boris   (16.11.2005 в 08:32)
 

Это необратимое шифрование - т.е. расшифровать пароли нельзя, даже если базу данных у вас украдут, злоумышленику потребуется значительное время на взлом каждого пароля. Если пользователь потерял пароль - его необходимо назначить новый, также зашифровав его функцией PASSWORD.

   
 
 автор: cheops   (16.11.2005 в 13:48)   письмо автору
 
   для: Boris   (16.11.2005 в 06:00)
 

С поиском хуже, это означает, что у вас достаточно старая база данных и она не поддерживает логический режим поиска.

   
 
 автор: Boris   (16.11.2005 в 13:58)   письмо автору
 
   для: cheops   (16.11.2005 в 13:48)
 

Как тогда быть с поиском, отключить? Какой вопрос мне задать хостеру чтобы точно узнать, что это БД старая?

   
 
 автор: Boris   (16.11.2005 в 14:11)   письмо автору
 
   для: Boris   (16.11.2005 в 13:58)
 

Все, ухожу с работы, завтра обязательно загляну, спасибо!
Но проблема пока еще актуальна!

   
 
 автор: cheops   (16.11.2005 в 14:11)   письмо автору
 
   для: Boris   (16.11.2005 в 13:58)
 

Спросите у хостера версию MySQL.

   
 
 автор: cheops   (16.11.2005 в 13:53)   письмо автору
 
   для: Boris   (16.11.2005 в 06:00)
 

Помимо "фиг вам" что-нибудь ещё выдаётся?

   
 
 автор: Boris   (16.11.2005 в 13:56)   письмо автору
 
   для: cheops   (16.11.2005 в 13:53)
 

Ничего! На фоне пустого экрана надпись!

   
 
 автор: cheops   (16.11.2005 в 13:56)   письмо автору
 
   для: Boris   (16.11.2005 в 06:00)
 

Ссылки по SSH
http://www.softtime.ru/forum/read.php?id_forum=5&id_theme=3511
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3094
http://www.softtime.ru/forum/read.php?id_forum=5&id_theme=2225
http://www.softtime.ru/forum/read.php?id_forum=2&id_theme=2503
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=262

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования