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

Форум PHP

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

 

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

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

тема: Интеграция LiteForum
 
 автор: P@Sol   (04.09.2006 в 15:59)   письмо автору
 
 

есть две папки с файлами, одна моя, вторая форум.. верхушку цепляю из файла top.php:
<?
function top($idr,$idpr)
{
  
$id_forum $_GET['id_forum'];
  if (!
$id_forum$id_forum=1;
 
  
$current_author $_COOKIE['current_author'];
  
$current_author str_replace("'","`",$current_author);
  if (!
get_magic_quotes_gpc())
  {
    
$current_author mysql_escape_string($current_author);
  }
 
  
$set mysql_query("SELECT * FROM settings");
  if(
$set)  $settings mysql_fetch_array($set);

  
$titleall $settings['name_forum'];

  if (!isset(
$title)) $title $titleall;

  if(!empty(
$current_author))
  {
    
settime($current_author,false,$id_forum);
    
$query "SELECT last_time.last_time$id_forum AS last_time
              FROM last_time, authors
              WHERE authors.name='
$current_author' AND
                    authors.id_author = last_time.id_author"
;
    
$ath mysql_query($query);
    if(!
$athputerror("Текст");
    
$lasttime mysql_result($ath,0);
  } else 
$current_author " Текст";
  
  if(empty(
$lasttime)) $lasttime date("Y-m-d H:i:s",time()-3600*2);

  if ((
$showforumsline || $readforumline) && $settings['show_forum_switch'] == 'yes'$shownewpost=true;
  else 
$shownewpost=false;

  if(
$showforumsline && $settings['show_forum_switch'] == 'yes'$show_switch_forum=true;
  else 
$show_switch_forum=false;

<
body style="padding: 2px; padding-top: 2px" topmargin="0" bottommargin="0" leftmargin="0" marginheight="0" marginwidth="0" rightmargin="0" bgcolor="white">

 <
table width=90border="0" cellpadding="0" cellspacing="0">
  <
tr height=82>
   <
td width=300><img src="/pic/logo2.gif" alt="&#204;&#202;&#209;"></td>
   <
td align=right valign=top>
    <
table border="0" cellpadding="0" cellspacing="0" width=100%>
     <
tr>
       <
td width=181>
       <
table border="0" cellpadding="0" cellspacing="0">
        <
tr>
         <
td width=181 height=98 style="background: url(/pic/forma_bg4.gif)" valign=middle>
 <?        if (!isset(
$_COOKIE['current_author'])){?>
          <form action=enter.php method=post>
          <table width=147 border="0" cellpadding="0" cellspacing="0"style="margin-left:20pt;margin-top:10pt;">
           <tr>
            <td width=100>
              <input type=text size=10 name=author maxlength=100><br>
              <input type=password size=10 name=pswrd maxlength=100>
              <input type=hidden name=id_forum value='<?=$id_forum?>'>
            </td>
            <td width=47><input type=submit value="&#194;&#245;&#238;&#228;"></td>
           </tr>
           <tr><td colspan=2><img src="/pic/p.gif" height=5></td></tr>
           <tr><td colspan=2><a href=# style="color: #827974;font-family:Verdana;font-size:8pt;">Проблемы?</a></td></tr>
          </table>
          </form>
<?         }
             else include 
"../utils/salutation.php";?>
         </td>
        </tr>
       </table>
      </td>
     </tr>
    </table>
   </td>
  </tr>
  <tr>
   <td><img src="/pic/p.gif" height=15></td>
  </tr>
 </table>
...

 }
?>

при заходе на форум, мне пишет Привет, P@Sol, а при заходе на мои страницы выдает форму для входа..почему?

что такое личные сообщения?

   
 
 автор: cheops   (04.09.2006 в 22:53)   письмо автору
 
   для: P@Sol   (04.09.2006 в 15:59)
 

Хм... не должно бы... а что передаётся в качестве параметров функции $idr,$idpr?

   
 
 автор: P@Sol   (05.09.2006 в 09:51)   письмо автору
 
   для: cheops   (04.09.2006 в 22:53)
 

idr - id раздела
idpr - id подраздела

они принимают участие в выводе меню.

А вот $_COOKIE['current_author'], которая отвечает что выводить форму или приветствие, при заходе на форум равняется имени, а при заходе на мои страницы пустая

в \Documents and Settings\имя\Cookies лежит файл имя@forum[4].txt с
current_author
123456
firma.int/forum/  //эту строку и удалял и заменял на firma.int/
1536
867092608
29807427
2318735888
29806622
*
wrdp
123456
firma.int/forum/ //тоже самое делал, что и выше
1536
867092608
29807427
2318885888
29806622
*

   
 
 автор: cheops   (05.09.2006 в 11:18)   письмо автору
 
   для: P@Sol   (05.09.2006 в 09:51)
 

А у вас как форум относительно других частей сайта расположен? Дело в том, что cookie может выставляться только на папку форума и не распространяться на другие части сайта (судя по дампу cookie так и происходит).

   
 
 автор: P@Sol   (05.09.2006 в 12:54)   письмо автору
 
   для: cheops   (05.09.2006 в 11:18)
 

у меня локальный домен firma.int в ней папки site, forum, skins, utils, liteforum.
в site - находится мои страницы, в forum- форум, skins - скины от форума переработанные под мой сат, utils - от форума (почти не трогал), liteforum - в ней папка admin для управление форумом.

но я же в куке заменял path...может не так?! как тогда сделать чтобы на форум и на site распространялись куки?

вот ваша функция установки куки
<?
function setallcookie($author$wrdp)
{
  
$set mysql_query("SELECT * FROM settings");
  if(
$set$settings mysql_fetch_array($set);
  
$tmppos strrpos($_SERVER['PHP_SELF'],"/") + 1;
  
$path substr($_SERVER['PHP_SELF'], 0$tmppos);
//  $parh="";
//  setcookie("current_author", $author, time() + 3600*24*$settings['cooktime']);
  
setcookie("current_author"$authortime() + 3600*24*$settings['cooktime'],$path);
//  setcookie("wrdp", $wrdp, time() + 3600*24*$settings['cooktime']);
  
setcookie("wrdp"$wrdptime() + 3600*24*$settings['cooktime'],$path);
  if(isset(
$_COOKIE['lineforum']))  setcookie("lineforum""set_line_forum"time() + 3600*24*$settings['cooktime'], $path);
//if(isset($_COOKIE['lineforum']))  setcookie("lineforum", "set_line_forum", time() + 3600*24*$settings['cooktime']);
//  if(isset($_COOKIE['lineforumdown'])) setcookie("lineforumdown", "set_line_forum_down", time() + 3600*24*$settings['cooktime']);
  
if(isset($_COOKIE['lineforumdown'])) setcookie("lineforumdown""set_line_forum_down"time() + 3600*24*$settings['cooktime'], $path);

}

   
 
 автор: P@Sol   (06.09.2006 в 09:43)   письмо автору
 
   для: P@Sol   (05.09.2006 в 12:54)
 

help

   
 
 автор: cheops   (06.09.2006 в 12:24)   письмо автору
 
   для: P@Sol   (05.09.2006 в 12:54)
 

Вместо переменной $path в функцию setcookie() передавайте строку "/".

   
 
 автор: P@Sol   (06.09.2006 в 17:37)   письмо автору
 
   для: cheops   (06.09.2006 в 12:24)
 

теперь проблема с подключением utils.php
в моем каталоге есть index.php в нем

<?
require_once("function.php");
$idr=0;
$idpr=0;
//Вывод шапки календаря
top($idr,$idpr);

в function.php

<?
  
// Устанавливаем соединение с базой данных
  
require_once("../forum/config.php");
  
// Подключаем библиотеку форума
  
require_once("../utils/utils.php");
require_once(
"../skins/mks/top.php");

в /skins/mks/top.php

<?
function top($idr,$idpr)
{
..
<?         }
             else include 
"../utils/salutation.php";?>
....

в /utils/salutation.php
<?
 
// пробовал сюда вставлять require_once("../utils/utils.php"); не помогло
         
echo $wrdp." - ".get_password($wrdp)."*"// выводит 123456 - *

   
 
 автор: cheops   (06.09.2006 в 22:58)   письмо автору
 
   для: P@Sol   (06.09.2006 в 17:37)
 

А проблема в чём? Какую-то ошибку пишет?

   
 
 автор: P@Sol   (07.09.2006 в 13:34)   письмо автору
 
   для: cheops   (06.09.2006 в 22:58)
 

get_password() не отрабатывается...ошибок не выводит

   
 
 автор: P@Sol   (08.09.2006 в 09:10)   письмо автору
 
   для: P@Sol   (07.09.2006 в 13:34)
 

help

   
 
 автор: P@Sol   (08.09.2006 в 16:09)   письмо автору
 
   для: P@Sol   (08.09.2006 в 09:10)
 

help...

   
 
 автор: P@Sol   (09.09.2006 в 15:58)   письмо автору
 
   для: P@Sol   (08.09.2006 в 16:09)
 

я буду настаивать, чтобы мне помогли

   
 
 автор: cheops   (10.09.2006 в 12:41)   письмо автору
 
   для: P@Sol   (06.09.2006 в 17:37)
 

Функция get_password() требует глобального массива $settings - он у вас определён?

PS Чтобы не возиться, просто определите один вариант. У вас поле type_crypt в таблице settings какое значение имеет? MD5?

   
 
 автор: P@Sol   (10.09.2006 в 15:35)   письмо автору
 
   для: cheops   (10.09.2006 в 12:41)
 

может не определен...посмотрю сегодня...
p.s. да:) счас я так и переписал ".MD5($wdrp)."
p.s.s. спасибо

   
 
 автор: P@Sol   (11.09.2006 в 15:59)   письмо автору
 
   для: P@Sol   (10.09.2006 в 15:35)
 

>Функция get_password() требует глобального массива $settings - он у вас определён?
определен...
>PS Чтобы не возиться, просто определите один вариант. У вас поле type_crypt в таблице >settings какое значение имеет? MD5?
поставил жестко - MD5

   
 
 автор: P@Sol   (05.09.2006 в 13:20)   письмо автору
 
   для: P@Sol   (04.09.2006 в 15:59)
 

когда заходишь читать личные сообщения у меня выскакивает:

Ошибка при выборке сообщений темы...

Error: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL 
server version for the right syntax to use near 'WHERE id_theme = 5 AND id_post = 8 AND 

зашел в код
<?
    
@putpost($posts['id_post'],
             
$id_theme,
             
2,
             
$lasttime,
             
$current_author,
             
$id_forum,
             
$lineforum,
             
$lineforumdown,
             
$skin,
             
$themes['hide']);

что такое переменная $skins выяснить не удалось (ну и не надо..), а вот куда делись $tbl_posts и $tbl_themes тоже не понятно. как я понял ошибка из-за того что не определена переменная $tbl_posts
Добавлено:
так и есть в personallyread.php не хватает что то типа:
<?
  
if($id_theme $id_theme_archive)
  {
    
    
$tbl_themes "themes";
    
$tbl_posts  "posts";
  }
  else
  {
        
$tbl_themes "archive_themes";
    
$tbl_posts  "archive_posts";
  }

и обращение к функции
<?
@putpost($posts['id_post'],
             
$id_theme,
             
2,
             
$lasttime,
             
$current_author,
             
$id_forum,
             
$lineforum,
             
$lineforumdown,
             
$skin,
             
$themes['hide'],
               
$tbl_posts,
               
$tbl_themes);

   
 
 автор: P@Sol   (06.09.2006 в 11:19)   письмо автору
 
   для: P@Sol   (05.09.2006 в 13:20)
 

В exit.php

<?php
   
// Осуществляем автоматический переход назад 
  
echo "<HTML><HEAD>
        <META HTTP-EQUIV='Refresh' CONTENT='0; URL="
.$_SERVER["HTTP_REFERER"]."'>
        </HEAD></HTML>"
;
  
// Выводим сообщение о том, что пароль посетителя забыт
  
include "../utils/topnull.php";
  echo 
"<p class=result>Логин и пароль забыты.</p>";
  echo 
"<p><a href=index.php?id_forum=$_GET[id_forum]>Вернуться к списку тем</a></p>";
?>

1. если реферера нет, то страница обновляется сама на себя бесконечное число раз
2. не понятно, зачем нужно сообщение о том, что пароль забыт

   
 
 автор: cheops   (06.09.2006 в 12:26)   письмо автору
 
   для: P@Sol   (06.09.2006 в 11:19)
 

Да, согласер не дело, добавьте перед редиректом строку
<?php
  
if(empty($_SERVER["HTTP_REFERER"])) $_SERVER["HTTP_REFERER"] = "index.php";
?>

   
 
 автор: P@Sol   (06.09.2006 в 15:32)   письмо автору
 
   для: cheops   (06.09.2006 в 12:26)
 

я так и сделал, но не понятно, зачем нужно сообщение о том, что пароль забыт и ссылки, если тебя все равно перебрасывает на другую страницу, поэтому удалил строки

include "../utils/topnull.php";
  echo "<p class=result>Логин и пароль забыты.</p>";
  echo "<p><a href=index.php?id_forum=$_GET[id_forum]>Вернуться к списку тем</a></p>";

   
 
 автор: cheops   (06.09.2006 в 22:57)   письмо автору
 
   для: P@Sol   (06.09.2006 в 15:32)
 

Если нет exit() после редиректа, то надпись успевает отобразится, особенно если у посетителя Интернет не слишком быстрый.

   
 
 автор: P@Sol   (07.09.2006 в 13:33)   письмо автору
 
   для: cheops   (06.09.2006 в 22:57)
 

я вернул все назад:)

   
Rambler's Top100
вверх

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