Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обновление страницы, Очистить страницу от прошлого результата 
V
    Опции темы
Voldemar2004
  Дата 1.4.2012, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: нет
Всего: 23



Такая проблема: есть список тем форума, выводится по кнопке "все темы форума". Потом я щелкаю по названию темы, чтобы вывести ответы для этой темы - все выводится правильно. Но если опять вызвать "все темы форума", то выводятся все темы + то, что было на предыдущей странице - т.е. список тем форума + ответы для какой-то другой темы.

Код

<?php

require("allscript.php");

echo "<!DOCTYPE html>";
echo "<html xmlns=\"http://www.w3.org/1999/xhtml\">";

echo "<head>\n";
    echo "<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' >";
    
    echo "<title>Форум</title>\n";
    
    echo "<meta name=\"keywords\" content=\"\" >\n";
    echo "<meta name=\"description\" content=\"\" >\n";
    echo "<link rel=\"stylesheet\" href=\"style.css\" type=\"text/css\" media=\"screen, projection\" />\n";
    
echo "</head>\n";

echo "<body>\n";

echo "<div align=\"center\" style=\"margin: 30px\">";

        //echo "--------------------- Ответить в тему: ---------------------------------------------------";
        
        echo "<BR><BR>";

        echo "<form method=\"POST\">";
        
            echo "--------------------- Выбрать список всех тем: ---------------------------------------";            
            
            echo "<BR><BR>";
            echo "<input type=\"submit\" name=\"allthemes\" value=\"Все темы форума\">";
                
            echo '<BR><BR>';
            
            echo "--------------------------------- Создать тему: --------------------------------------";    
            
            echo "<BR><BR>";
            echo "Название темы: <input type=\"text\" name=\"themeName\">";
            echo "<BR><BR>";
            echo "Текст темы:";
            echo "<TEXTAREA name=\"comment\" cols=\"70\" rows=\"3\">";            
            echo "</TEXTAREA>";
            echo "<BR>";
            echo "<input type=\"submit\" name=\"createTheme\" value=\"Создать тему\">";            
        echo "</form>";
        
        echo "<BR><BR>";
        
        echo "------------------------------------------------------------------------------------------";            

echo "</div>";

echo "</body>\n";
        
echo "</html>";


        if ( isset ($_POST['allthemes'])) {
            
            if (@$db = mysqli_connect(HOST_CONNECT, LOGIN_CONNECT, PASSWORD_CONNECT, DB_CONNECT)) {
               mysqli_query($db, "SET NAMES cp1251");
               
                if ($res = mysqli_query($db, 'SELECT themeID, ChapterName, CreatorID, CreateDate, Text FROM `themeID`')) {
                  while ($pole = mysqli_fetch_row($res)) {
                    
                    ViewTheme($pole[2], $pole[3], $pole[1], $pole[4]);
                    
                  }                  
                  mysqli_free_result($res);
               }
               mysqli_close($db);
            }
            else {
               echo "Не удалось установить подключение к базе данных";
            }
        
        }


        if ( isset ($_POST["createTheme"]) ) {
            
            // ---------- Отправка комментария на сервер в БД
            
            $comment_time = date("Y.m.d") . ' ' . date("H:i:s");
            
            if (@$db = mysqli_connect(HOST_CONNECT, LOGIN_CONNECT, PASSWORD_CONNECT, DB_CONNECT)) {
               mysqli_query($db, "SET NAMES cp1251");
               
               //---------------------------------------------------------------------
               // Если директива magic_quotes_gpc включена,
               // то удаляем защитные косые черты:               
               if ( get_magic_quotes_gpc() ) {
                $themeName = stripcslashes($_POST['themeName']);
               }               
               // Экранируем спецсимволы:
               $themeName = mysqli_real_escape_string($db, $_POST['themeName']);
               //---------------------------------------------------------------------
               // Если директива magic_quotes_gpc включена,
               // то удаляем защитные косые черты:               
               if ( get_magic_quotes_gpc() ) {
                $login = stripcslashes($_POST['login']);
               }               
               // Экранируем спецсимволы:
               $login = mysqli_real_escape_string($db, $_POST['login']);
               //---------------------------------------------------------------------
               // Если директива magic_quotes_gpc включена,
               // то удаляем защитные косые черты:               
               if ( get_magic_quotes_gpc() ) {
                $comment = stripcslashes($_POST['comment']);
               }               
               // Экранируем спецсимволы:
               $comment = mysqli_real_escape_string($db, $_POST['comment']);
               //---------------------------------------------------------------------
               
                echo 'Login для вставки в themeID = ' . $login . '<br>';
                
                if ($res = mysqli_query($db, "INSERT INTO `themeID` values('','" . $themeName . "','" . $login . "','" . $comment_time . "','" . $comment . "')")) {
                                        echo "INSERT INTO `themeID` values('','" . $themeName . "','" . $login . "','" . $comment_time . "','" . $comment . "')";
                    mysqli_free_result($res);
                }
               mysqli_close($db);
            }
            else {
               echo "Не удалось установить подключение к базе данных";
            }
            
        }



        
        if ( isset ($_POST['go']) ) {
        
        echo 'переменная go существует' . '<br>';
        
            // ---------- Отправка комментария на сервер в БД
            
            $comment_time = date("Y.m.d") . ' ' . date("H:i:s");
            
            $themeIDtoINSERT;
                
            if (@$db = mysqli_connect(HOST_CONNECT, LOGIN_CONNECT, PASSWORD_CONNECT, DB_CONNECT)) {
               mysqli_query($db, "SET NAMES cp1251");               
           //---------------------------------------------------------------------
           // Если директива magic_quotes_gpc включена,
           // то удаляем защитные косые черты:               
           if ( get_magic_quotes_gpc() ) {
            //$login = stripcslashes($_POST['login']);
            $login = stripcslashes($login);
           }               
           // Экранируем спецсимволы:
           $login = mysqli_real_escape_string($db, $login);
           //---------------------------------------------------------------------
           
           echo 'login LastViewedTheme = ' . $login . '<br>';   
               
                if ($res = mysqli_query($db, "select `LastViewedTheme` from `USERINFO` where `login` = '" . $login . "'")) {
                    while ($pole = mysqli_fetch_row($res)) {
                        $themeIDtoINSERT = $pole[0];        
                    }                    
                  mysqli_free_result($res);
                }
               mysqli_close($db);
            }
            else {
               echo "Не удалось установить подключение к базе данных";
            }                    
            //----------------------------------------------------------------------------------------------------
                        
            if (@$db = mysqli_connect(HOST_CONNECT, LOGIN_CONNECT, PASSWORD_CONNECT, DB_CONNECT)) {
               mysqli_query($db, "SET NAMES cp1251");
               
           //---------------------------------------------------------------------
           // Если директива magic_quotes_gpc включена,
           // то удаляем защитные косые черты:               
           if ( get_magic_quotes_gpc() ) {
            $themeIDtoINSERT = stripcslashes($themeIDtoINSERT);
           }               
           // Экранируем спецсимволы:
           $themeIDtoINSERT = mysqli_real_escape_string($db, $themeIDtoINSERT);
           //---------------------------------------------------------------------
           // Если директива magic_quotes_gpc включена,
           // то удаляем защитные косые черты:               
           if ( get_magic_quotes_gpc() ) {
            $loginComment = stripcslashes($loginComment);
           }               
           // Экранируем спецсимволы:
           $loginComment = mysqli_real_escape_string($db, $loginComment);
           //---------------------------------------------------------------------
           // Если директива magic_quotes_gpc включена,
           // то удаляем защитные косые черты:               
           if ( get_magic_quotes_gpc() ) {
            $ThemeComment = stripcslashes($ThemeComment);
           }               
           // Экранируем спецсимволы:
           $ThemeComment = mysqli_real_escape_string($db, $ThemeComment);           
           //---------------------------------------------------------------------
                if ($res = mysqli_query($db, "INSERT INTO `forum` VALUES('','" . $themeIDtoINSERT . "','" . $comment_time . "','" . $loginComment . "','" . $ThemeComment . "')")) {
                                        echo "INSERT INTO `forum` VALUES('','" . $themeIDtoINSERT . "','" . $comment_time . "','" . $loginComment . "','" . $ThemeComment . "')";
                  //mysqli_free_result($res);
                }
               mysqli_close($db);
            }
            else {
               echo "Не удалось установить подключение к базе данных";
            }        
        }
        

// ViewTheme(Логин, Дата_cоздания, Заголовок, Текст_темы)
function ViewTheme($Login, $CreateDate, $Chapter, $Text) { 
    $Comment = "<div style=\"margin-left: 5px; margin-bottom: 5px;\">"
        . "<div style=\"margin-bottom: 2px; border: 1px solid #454545; width: 700px; height: 25px; color: #ffffff; font-size: 18px; text-align: center; background-color: #326546; padding-top: 4px;\">&nbspТема: " . "<A href='?do=print&m1=$Chapter')> $Chapter </A>" . "</div>"
        . "<div style=\"border: 1px solid #454545; width: 700px; height: 25px; color: #ffffff; font-size: 18px; text-align: left; background-color: #3B9D61; padding-top: 4px;\">&nbspТему создал: " . $Login . ", " . $CreateDate . "</div>"
        . "<div style=\"border-left: 1px solid #454545; border-right: 1px solid #454545; border-bottom: 1px solid #454545; padding: 7px; width: 686px; color: #333333; font-size: 18px; text-align: justify; background-color: #42D37B;\">" . $Text . "</div>"
        . "</div>";
    echo $Comment;
}
//-------------------------------------------------------------------------------------
# Функция, которая будет вызываться по этой ссылке
function DoPrint($par1) {
            // ---------- Вывод заголовка:
            if (@$db = mysqli_connect(HOST_CONNECT, LOGIN_CONNECT, PASSWORD_CONNECT, DB_CONNECT)) {
               mysqli_query($db, "SET NAMES cp1251");
               $sql_q = "SELECT themeID, ChapterName, CreatorID, CreateDate, Text FROM `themeID` WHERE ChapterName='". $par1 . "'";
                if ($res = mysqli_query($db, $sql_q)) {
                  while ($pole = mysqli_fetch_row($res)) {
                    // ViewTheme(Логин, Дата_cоздания, Заголовок, Текст_темы)
                    ViewTheme($pole[2], $pole[3], $pole[1], $pole[4]);
                    $themeID = $pole[0];
                  }                  
                  mysqli_free_result($res);
               }
               mysqli_close($db);
            }
            else {
               echo "Не удалось установить подключение к базе данных";
            }
        
            // ---------- Вывод комментариев:
            
            if (@$db = mysqli_connect(HOST_CONNECT, LOGIN_CONNECT, PASSWORD_CONNECT, DB_CONNECT)) {
               mysqli_query($db, "SET NAMES cp1251");
                if ($res = mysqli_query($db, "SELECT forum.Number, forum.themeID, forum.CreateDate, forum.login, forum.Text FROM `forum` INNER JOIN `themeID` ON forum.themeID=themeID.themeID where themeID.ChapterName = '" . $par1 . "'")) {
                  while ($pole = mysqli_fetch_row($res)) {
                    // ViewComment($Login, $CreateDate, $Text)
                    ViewComment($pole[3], $pole[2], $pole[4]);                    
                  }
                  mysqli_free_result($res);
               }
               mysqli_close($db);
            }
            else {
               echo "Не удалось установить подключение к базе данных";
            }
            
            //-------------------------------------------------------------------------------------------
            // Выводим форму для ответа:

                echo '<BR><BR>';

                echo "<form method=\"POST\">";
                    echo "Имя пользователя: " . "<BR>" . "<input type=\"text\" name=\"loginComment\" id=\"loginComment\" value=\"User \">" . "<br><br>";
                    echo "Текст сообщения:" . "<BR>";
                    echo "<TEXTAREA name=\"ThemeComment\" id=\"ThemeComment\" cols=\"70\" rows=\"3\">";            
                    echo "</TEXTAREA>";            
                    echo "<BR><BR>";            
                    echo "<input type=\"submit\" name=\"go\" value=\"Ответить в тему\" >";    
                echo "</form>";
            //------------------------------------------------------------------------------------------
                        
            if (@$db = mysqli_connect(HOST_CONNECT, LOGIN_CONNECT, PASSWORD_CONNECT, DB_CONNECT)) {
               mysqli_query($db, "SET NAMES cp1251");
                // Когда форум будет внедрен на сайт, то поменять $_POST['loginComment'] на $_POST['login']:
                if ($res = mysqli_query($db, "UPDATE `userinfo` SET `LastViewedTheme` = '" . $themeID . "' WHERE `login` = '" . 'vova' . "'")) {
                    //mysqli_free_result($res);
                }
               mysqli_close($db);
            }
            else {
               echo "Не удалось установить подключение к базе данных";
            }            
}

# Получаем параметры с которыми был вызван текущий скрипт
$do     = isset($_REQUEST['do']) ? $_REQUEST['do'] : '';
$param1 = isset($_REQUEST['m1']) ? $_REQUEST['m1'] : '';

# В зависимости от полученных параметров решаем какую функцию будем выполнять
if($do=='print') DoPrint($param1);
//-------------------------------------------------------------------------------------
function ViewComment($Login, $CreateDate, $Text) {
    $Comment = "<div style=\"margin-left: 5px; margin-bottom: 5px;\">"
            . "<div style=\"border: 1px solid #454545; width: 700px; height: 25px; color: #ffffff; font-size: 18px; text-align: left; background-color: #4caac8; padding-top: 4px;\">&nbspОтвет от: " . $Login . ", " . $CreateDate . "</div>"
            . "<div style=\"border-left: 1px solid #454545; border-right: 1px solid #454545; border-bottom: 1px solid #454545; padding: 7px; width: 686px; color: #333333; font-size: 18px; text-align: justify; background-color: lightblue;\">" . $Text . "</div>"
            . "</div>";
    echo $Comment;
}        
?>



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Voldemar2004
Дата 1.4.2012, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: нет
Всего: 23



выбираем все темы форума:

user posted image

Добавлено @ 19:17
выбираем какую-то тему - щелкаем по заголовку:

user posted image

Добавлено @ 19:18
Ну и суть проблемы:

user posted image

Добавлено через 7 минут и 40 секунд
На третьем скине - опять выбираем список всех тем - но как сделать, чтобы не выводились результаты предыдущего запроса ?

Это сообщение отредактировал(а) Voldemar2004 - 1.4.2012, 19:20


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Voldemar2004
  Дата 4.4.2012, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: нет
Всего: 23



Проблему решил ! Надо было сделать так:

Код

echo "<A href='?do=All&m1=$ThemesList')> Ссылка </A>";

# В зависимости от полученных параметров решаем какую функцию будем выполнять
if($do=='All') DoPrintAllThemes($ThemesList);

function DoPrintAllThemes($ThemesList) {

            if (@$db = mysqli_connect(HOST_CONNECT, LOGIN_CONNECT, PASSWORD_CONNECT, DB_CONNECT)) {
               mysqli_query($db, "SET NAMES cp1251");
               
                if ($res = mysqli_query($db, 'SELECT themeID, ChapterName, CreatorID, CreateDate, Text FROM `themeID`')) {
                  while ($pole = mysqli_fetch_row($res)) {                    

                    ViewTheme($pole[2], $pole[3], $pole[1], $pole[4]);                    
                  }                  
                  mysqli_free_result($res);
               }
               mysqli_close($db);
            }
            else {
               echo "Не удалось установить подключение к базе данных";
            }
            
}



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0895 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.