
Эксперт
  
Профиль
Группа: Завсегдатай
Сообщений: 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;\"> Тема: " . "<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;\"> Тему создал: " . $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;\"> Ответ от: " . $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) 
|