Создать ответ 
Построение дерева иерархии или дерева комментариев
Автор Сообщение
Kenpack Не на форуме
Сержант
*

Сообщений: 37
У нас с: Jan 2014
Сообщение: #121
RE: Построение дерева иерархии или дерева комментариев
Здравствуйте. Извините если я уже надоел вам, но не могли вы бы мне помочь? у меня возникла проблема с защитой комментариев. Суть такая: когда я например имею вот такой адрес сайта http://localhost/userscript1/test/18/18?comment_list=1 то комментарии выводятся нормально, но если я поменяю на другой адрес например (18?comment_list=1 на 20?comment_list=1), то я получу совсем другие комментарии на моём статье, не знаете как решить эту проблему? Весь код вот такой:
Код:
<?php
session_start();

include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь
if (isset($_COOKIE['auto']) and isset($_COOKIE['name']) and isset($_COOKIE['password']))
{//если есть необходимые переменные
    if ($_COOKIE['auto'] == 'yes') { // если пользователь желает входить автоматически, то запускаем сессии
          $_SESSION['password']=strrev(md5($_COOKIE['password']))."b3p6f"; //в куках пароль был не зашифрованный, а в сессиях обычно храним зашифрованный
          $_SESSION['name']=$_COOKIE['name'];//сессия с логином
          $_SESSION['id']=$_COOKIE['id'];//идентификатор пользователя
        }    
    }

if (!empty($_SESSION['name']) and !empty($_SESSION['password']))
{
//если существет логин и пароль в сессиях, то проверяем их и извлекаем аватар
$name = $_SESSION['name'];
$password = $_SESSION['password'];
$result2 = mysql_query("SELECT id,avatar FROM users WHERE name='$name' AND password='$password' AND activation='1'",$db);
$myrow2 = mysql_fetch_array($result2);
//извлекаем нужные данные о пользователе
}

$link = mysql_connect("localhost", "Danil", "1234561") or die("Could not connect: " . mysql_error());
mysql_select_db("comment", $link);

$_SESSION[full_url]=mysql_real_escape_string(basename($_SERVER['REQUEST_URI']));
$_SESSION[mess_url]=strtok($_SESSION[full_url], '?');

if (isset($_POST[contr_cod])) {
$_SESSION[comment_mess_login]=$_POST[mess_login];
$_SESSION[comment_user_text]=$_POST[user_text];
if (get_magic_quotes_gpc()=="0") {
  $_SESSION[comment_mess_login]=mysql_real_escape_string($_SESSION[comment_mess_login]);
  $_SESSION[comment_user_text]=mysql_real_escape_string($_SESSION[comment_user_text]);
}
$_SESSION[comment_mess_login]=htmlspecialchars($_POST[mess_login]);
$_SESSION[comment_user_text]=htmlspecialchars($_POST[user_text]);

if (md5($_POST[contr_cod])==$_POST[prov_summa]) {
$result = mysql_query("SELECT id FROM comment WHERE login='".$_SESSION["comment_mess_login"]."' and UNIX_TIMESTAMP(date)>'".(time()-120)."'", $link);
if (mysql_num_rows($result)>0){
$_SESSION["send"] = "Вы слишком часто отправляете комментарии!";
header("Location: $_SESSION[mess_url]#last");
exit;
}
if (isset($_POST[parent_id])) $result = mysql_query("insert into comment (parent_id,first_parent,date,theme,login,message) values ('".$_POST[parent_id]."','".$_POST[first_parent]."','".date("Y-m-d H:i:s")."','".$_SESSION[mess_url]."','".$_SESSION[comment_mess_login]."','".$_SESSION[comment_user_text]."')");
  else $result = mysql_query("insert into comment (date,theme,login,message) values ('".date("Y-m-d H:i:s")."','".$_SESSION[mess_url]."','".$_SESSION[comment_mess_login]."','".$_SESSION[comment_user_text]."')");
  $_SESSION[send]='Комментарий принят и ожидает модерации.';
  $_SESSION[comment_mess_login]='';
  $_SESSION[comment_user_text]='';
  header("Location: $_SESSION[mess_url]#last");
  exit;
}
else {
  $_SESSION[send] = "Неверный проверочный код!";
  header("Location: $_SESSION[mess_url]#last");
  exit;
}
}
?>
<?php
if (!empty($_SERVER['HTTP_CLIENT_IP']))
    $ip=$_SERVER['HTTP_CLIENT_IP'];
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
else $ip=$_SERVER['REMOTE_ADDR'];
$ip_position=strpos($ip,',');
if ($ip_position>0) $ip_short=substr($ip, 0, $ip_position);
else $ip_short=$ip;
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Сайт</title>
<style type="text/css">
.spoiler_body {display:none;}
.spoiler_link {cursor:pointer;}
.open_hint {margin:5px 0px 0px 0px; width:100px; border: 1px solid #4874a3; cursor:pointer; background:#afeeee;}
</style>
</head>
<script type="text/javascript"
src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.spoiler_link').click(function(){
  $(this).parent().children('div.spoiler_body').toggle('normal');
  return false;
});
});
</script>
<body>
<?php
if (!isset($myrow2['avatar']) or $myrow2['avatar']=='')    
{
    if (isset($_COOKIE['name']))
{

echo ' value="'.$_COOKIE['name'].'">';
}
if (isset($_COOKIE['password']))
{

echo ' value="'.$_COOKIE['password'].'">';
}
print <<<HERE
<p><a href='vxod.php'>Авторизация</a></p>
HERE;
}

else
{
print <<<HERE
<img alt='$_SESSION[name]' src='$myrow2[avatar]' class='avatar_menu_user'><a href='user.php?id=$_SESSION[id]'>Моя страница</a>
HERE;
}

?>
<?php
echo '<div id="last" align="center">';

echo '<form method="POST" action="'.$_SESSION[mess_url].'#last">';
echo '<table border="0" style="border: 1px solid #4874a3;
border-radius:8px;" bgcolor="#7799ee" cellspacing="4" align="center">';
echo '<tr><td colspan="2" align="center">';
echo '<b>Добавить комментарий к теме:</b><br>';

$prov_cod=rand(1000,9980); $prov_cod_2=rand(1,19);

echo '<textarea cols="65" rows="5" name="user_text" required>'
.$_SESSION[comment_user_text].'</textarea><br>';
echo '</td></tr><tr><td width="300">';

echo '<b>Ваше имя: </b><input type="text" name="mess_login" maxlength="20"
value="'.$_SESSION['name'].'" required>';

echo '</td><td align="right">';
echo '<b>'.$prov_cod.' + '.$prov_cod_2.' = </b>';
echo '<input type="hidden" name="prov_summa" value="'.md5($prov_cod+$prov_cod_2).'">';

echo '<input type="text" name="contr_cod" maxlength="4" size="4" required>';
echo '<input type="submit" value="Отправить"></td></tr></table></form>';

$_SESSION[comment_mess_login]='';
$_SESSION[comment_user_text]='';

if (isset($_SESSION[send])and($_SESSION[send]!="")) {
echo '<font color="red"><b>'.$_SESSION[send].'</b></font>';
$_SESSION[send]="";
}
echo '</div>';
?>

<table border="0" width="555" align="center">
<tr>
  <td>
   <hr>
   <div style="border: 2px solid Cornflowerblue; padding:4px; border-radius:5px;">
<?php
function col_pages($count, $this, $radius) {
$j=0; $out=""; $td='<td width="35" bgcolor="lightgreen">';
if (($this-$radius)<1) $i=1;
     else $i=$this-$radius;
if ($i==1) $i++;

if (($count-($radius*2+1))<$i) $i=$count-($radius*2+1);
if ($i<2) $i=2;

if ($this!=1)
  $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list=1">1</a></td>';
     else $out.=$td.'<b>[ 1 ]</b></td>';

if ($i>2) $out.=$td.'...</td>';

while ((($i<=($this+$radius)) or ($j<($radius*2+1))) and ($i<$count)) {
if ($i!==$this)
  $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list='.$i.'">'.$i.'</a></td>';
     else $out.=$td.'<b>[ '.$i.' ]</b></td>';
$i++; $j++;
}
if ($i<$count) $out.=$td.'...</td>';
if ($count>1) {
     if ($count!=$this)
      $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list='.$count.'">
      '.$count.'</a></td>';
     else $out.=$td.'<b>[ '.$count.' ]</b></td>';
}
return $out;
}
if (is_numeric($_POST[comment_id])and($_POST[ocenka]=='0' or $_POST[ocenka]=='1')){
$result = mysql_query("SELECT login FROM comment WHERE id='".$_POST[comment_id]."'", $link);
$login=mysql_fetch_array($result);
if ($login['login']!='Administrator') {
$result = mysql_query("SELECT count(id),ocenka FROM ocenka_comment WHERE comment_id='".$_POST[comment_id]."' and ip='".$ip_short."'", $link);
$number = mysql_fetch_array($result);
if ($number[0]==0) {
     $result = mysql_query("insert into ocenka_comment (date,comment_id,ip,ocenka)
     values ('".date("Y-m-d H:i:s")."','".$_POST[comment_id]."','".$ip_short."','".$_POST[ocenka]."')"); }
elseif ($number[ocenka]!=$_POST[ocenka]) {
     $result = mysql_query("UPDATE ocenka_comment
     SET date='".date("Y-m-d H:i:s")."',ocenka='".$_POST[ocenka]."'
     WHERE comment_id='".$_POST[comment_id]."' and ip='".$ip_short."'"); }
}
}

if (is_numeric($_GET[comment_list]) and $_GET[comment_list]>0) {
if ($_GET[comment_list]>$count_list) $comment_list=$count_list;
    else $comment_list=$_GET[comment_list];
}
else $comment_list=1;
if ($comment_list==0) $comment_list=1;


$result = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url]."' and moderation=1 and first_parent=0", $link);
$count_list=floor((mysql_num_rows($result)-1)/5)+1;

if (is_numeric($_GET[comment_list]) and $_GET[comment_list]>0) {
if ($_GET[comment_list]>$count_list) $comment_list=$count_list;
    else $comment_list=$_GET[comment_list];
}
else $comment_list=1;
if ($comment_list==0) $comment_list=1;

$result = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url]."' and moderation=1 and first_parent=0 ORDER BY id desc LIMIT ".($comment_list*5-5).",5", $link);
$number = mysql_num_rows($result);
if ($number>0) {
$zapros='';
for ($n=1; $n<=$number; $n++) {
     $parents[$n]=mysql_fetch_array($result);
     $zapros.=$parents[$n][id].','.$parents[$n][id].',';
}
$zapros=substr($zapros, 0, -1);

$result = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url]."' and moderation=1 and id IN(".$zapros.")  ORDER BY id desc", $link);
$result2 = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url]."' and moderation=1 and first_parent IN(".$zapros.") ORDER BY id", $link);
$number = mysql_num_rows($result);


echo '<hr><div align="center" style="padding:3px; border-radius:5px;">
<u><b>Последние комментарии посетителей:</b></u><br>';


function parents($parent=0,$left=0) {
global $tags;

for ($i=0;$i<=count($tags[$parent])-1;$i++) {

$result_minus = mysql_query("SELECT sum(ocenka=1), sum(ocenka=0) FROM ocenka_comment WHERE comment_id='".$tags[$parent][$i][0]."' LIMIT 1");
$ocenka_com=mysql_fetch_array($result_minus);

if ($tags[$parent][$i][2]=='Administrator') $tags[$parent][$i][2]='<font color="#cc1111">Administrator</font>';
if ($tags[$parent][$i][6]==0) $tags[$parent][$i][6]=$tags[$parent][$i][0];

echo '<div align="right" style="margin:0px 0px 0px '.$left.'px;">';
echo '<br><table border="0" width="95%" style="border: 1px solid #4874a3;" bgcolor="#fffabc"><tr>';
echo '<td align="left" style="padding:5px 5px 5px 5px;">';
echo '<div id="m'.$tags[$parent][$i][0].'"></div><b>'.$tags[$parent][$i][2].'</b></td>';
echo '<td width="140">';
echo '<span style="font-size:12px;">('.$tags[$parent][$i][3].')</span></td>';
if ($tags[$parent][$i][2]!='<font color="#cc1111">Administrator</font>'){
echo '<td width="20" >';
echo '<form method="POST" action="'.$_SESSION[full_url].'#m'.$tags[$parent][$i][0].'">';
echo '<input type="hidden" name="comment_id" value="'.$tags[$parent][$i][0].'">';
echo '<input type="hidden" name="ocenka" value="1">';
echo '<input type="image" src="comm_up.gif" title="Хороший комментарий" align="middle">';
echo '</form></td>';
echo '<td width="5"><b>'.($ocenka_com[0]-$ocenka_com[1]).'</b></td>';
echo '<td width="20">';
echo '<form method="POST" action="'.$_SESSION[full_url].'#m'.$tags[$parent][$i][0].'">';
echo '<input type="hidden" name="comment_id" value="'.$tags[$parent][$i][0].'">';
echo '<input type="hidden" name="ocenka" value="0">';
echo '<input type="image" src="comm_down.gif" title="Плохой комментарий" align="middle">';
echo '</form>';
}
echo '</td></tr></table>';
echo '<table border="0" width="95%" style="border: 1px solid #eeeeee;"bgcolor="#f0fff0">';
echo '<td>';
if ($parent>0) {
$result = mysql_query("SELECT message FROM comment WHERE id='".$parent."'");
$message = mysql_fetch_array($result);
echo '<div>'.wordwrap(nl2br($message["message"]), 70, "\n", 1).'</div>';
}
if (($ocenka_com[0]-$ocenka_com[1])<0)
echo '<div><a href="javscript://" class="spoiler_link">Показать / скрыть плохой комментарий</a><div class="spoiler_body">'.wordwrap(nl2br($tags[$parent][$i][1]), 70, "\n", 1).'</div></div>';
else echo wordwrap(nl2br($tags[$parent][$i][1]), 70, "\n", 1);
echo '</td></tr></table>';
echo '<div align="center" class="open_hint" onClick="comm_on('.$tags[$parent][$i][0].','.$tags[$parent][$i][6].')">Ответить</div>';
     if (isset($tags[ $tags[$parent][$i][0] ])) parents($tags[$parent][$i][0],20);
     echo '</div>';
    
}
}
while ($comments=mysql_fetch_assoc($result)) $tags[(int)$comments['parent_id']][]=array((int)$comments['id'], $comments['message'], $comments['login'], $comments['date'], $comments['plus'], $comments['minus'], $comments['first_parent'] );
while ($comments=mysql_fetch_assoc($result2)) $tags[(int)$comments['parent_id']][]=array((int)$comments['id'], $comments['message'], $comments['login'], $comments['date'], $comments['plus'], $comments['minus'], $comments['first_parent'] );
echo parents().'</div>';
echo '<table style="border: 1px solid #4874a3;" cellspacing="2" cellpadding="0">';
echo '<tr align="center">';
  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list>1) echo '<a href="'.$_SESSION[mess_url].'">В начало</a>';
    else echo 'В начало';
  echo '</td>';
  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list>1) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.($comment_list-1).'">Назад</a>';
    else echo 'Назад';
  echo '</td>';

echo col_pages((int)$count_list, (int)$comment_list, 3);

  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list<$count_list) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.($comment_list+1).'">Вперед</a>';
    else echo 'Вперед';
  echo '</td>';
  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list<$count_list) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.$count_list.'">В конец</a>';
    else echo 'В конец';
  echo '</td>';
echo '</tr>';
echo '</table>';
}
else echo 'Комментарии отсутствуют!';
?>
<div id="hint" style="position:absolute; display: none;">
<?php echo '<form name="add_comment" method="POST" action="'.$_SESSION[full_url].'#last">'; ?>
<table border="0" style="border: 1px solid #4874a3; border-radius:8px;" bgcolor="#7799ee" cellspacing="4" align="center">
  <tr>
   <td colspan="2" style="cursor:pointer;" align="right"><font color="Lawngreen"><div id="close_hint"><b>Закрыть[x]</b></div></font>
    <?php
    $prov_cod=rand(100,980); $prov_cod_2=rand(1,19);

    echo '<textarea cols="65" rows="5" name="user_text" required>'.$_SESSION[comment_user_text].'</textarea>';
   echo '</td></tr><tr><td width="300">';

    echo '<b>Ваше имя: </b><input type="text" name="mess_login" maxlength="20" value="'.$_SESSION['name'].'" required>';

   echo '</td><td align="right">';
    echo '<b>'.$prov_cod.' + '.$prov_cod_2.' = </b>';
    echo '<input type="hidden" name="prov_summa" value="'.md5($prov_cod+$prov_cod_2).'">';
    ?>
    <input type="text" name="contr_cod" maxlength="4" size="4" required>
    <input type="hidden" name="parent_id" value="0">
    <input type="hidden" name="first_parent" value="0">
    <input type="submit" value="Отправить">
   </td>
  </tr>
</table>
</form>
</div>
</div>
  </td>
</tr>
</table>
<script type="text/javascript">
$('html').mousemove(function(e){
$('.open_hint').click(function(){
  $('#hint').fadeIn(700);
  $('#hint').offset({top:e.pageY+15, left:e.pageX-550});
  return false;
});
});
$('#close_hint').click(function(){
$('#hint').fadeOut(700);
return false;
});
</script>
<script type="text/javascript">
function comm_on(p_id,first_p) {
document.add_comment.parent_id.value = p_id;
document.add_comment.first_parent.value = first_p;
}
</script>
</body>
</html>
13.01.2014 21:15:26
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #122
RE: Построение дерева иерархии или дерева комментариев
Тут надо смотреть, на что влияют эти цифры.
При смене цифр меняется контент страницы? Если да, так значит страница другая и следовательно и комментарии должны быть другими.
13.01.2014 21:23:14
Найти все сообщения Цитировать это сообщение
Kenpack Не на форуме
Сержант
*

Сообщений: 37
У нас с: Jan 2014
Сообщение: #123
RE: Построение дерева иерархии или дерева комментариев
Да, только содержимое контента меняется, но я подумал что как-нибудь можно скрыть цифру 18 например в адресе 18?comment_list=1, и получить вот такой целый адрес http://localhost/userscript1/test/18/?comment_list=1 (/18/ это id статьи). Но чтобы ни какая цифры ничего не решала до ?comment_list=1, чтобы пользователь не поставил другие комментарии. Возможно ли это реализовать?
13.01.2014 21:36:08
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #124
RE: Построение дерева иерархии или дерева комментариев
Конечно можно, но только у меня на локалке не работает ЧПУ в .htaccess, поэтому делаю "вслепую", т.к. не могу проверять.
Попробуйте во всех SQL запросах (всего их 6) заменить
PHP код:
$_SESSION[mess_url
на
PHP код:
substr($_SESSION[mess_url],0,strrpos($_SESSION[mess_url],'/')+1
13.01.2014 22:08:28
Найти все сообщения Цитировать это сообщение
Kenpack Не на форуме
Сержант
*

Сообщений: 37
У нас с: Jan 2014
Сообщение: #125
RE: Построение дерева иерархии или дерева комментариев
Комментарий не выводит, возможно из-за чпу... у меня вот такой код например в .htaccess
Код:
AddDefaultCharset UTF-8
RewriteEngine on
RewriteRule ^test/([0-9]+) test.php?id=$1
а в test.php уже с поставленными substr($_SESSION[mess_url],0,strrpos($_SESSION[mess_url],'/')+1)
Код:
<?php
session_start();
include ("config.php");
if (isset($_GET['id'])) {$id = $_GET['id'];}
$result100 = mysql_query("SELECT * FROM entries WHERE id='$id'",$dbpower);
$myrow = mysql_fetch_array($result100);
include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь
if (isset($_COOKIE['auto']) and isset($_COOKIE['name']) and isset($_COOKIE['password']))
{//если есть необходимые переменные
    if ($_COOKIE['auto'] == 'yes') { // если пользователь желает входить автоматически, то запускаем сессии
          $_SESSION['password']=strrev(md5($_COOKIE['password']))."b3p6f"; //в куках пароль был не зашифрованный, а в сессиях обычно храним зашифрованный
          $_SESSION['name']=$_COOKIE['name'];//сессия с логином
          $_SESSION['id']=$_COOKIE['id'];//идентификатор пользователя
        }    
    }

if (!empty($_SESSION['name']) and !empty($_SESSION['password']))
{
//если существет логин и пароль в сессиях, то проверяем их и извлекаем аватар
$name = $_SESSION['name'];
$password = $_SESSION['password'];
$result2 = mysql_query("SELECT id,avatar FROM users WHERE name='$name' AND password='$password' AND activation='1'",$db);
$myrow2 = mysql_fetch_array($result2);
//извлекаем нужные данные о пользователе
}

$link = mysql_connect("localhost", "Danil", "1234561") or die("Could not connect: " . mysql_error());
mysql_select_db("comment", $link);

$_SESSION[full_url]=mysql_real_escape_string(basename($_SERVER['REQUEST_URI']));
$_SESSION[mess_url]=strtok($_SESSION[full_url], '?');

if (isset($_POST[contr_cod])) {
$_SESSION[comment_mess_login]=$_POST[mess_login];
$_SESSION[comment_user_text]=$_POST[user_text];
if (get_magic_quotes_gpc()=="0") {
  $_SESSION[comment_mess_login]=mysql_real_escape_string($_SESSION[comment_mess_login]);
  $_SESSION[comment_user_text]=mysql_real_escape_string($_SESSION[comment_user_text]);
}
$_SESSION[comment_mess_login]=htmlspecialchars($_POST[mess_login]);
$_SESSION[comment_user_text]=htmlspecialchars($_POST[user_text]);

if (md5($_POST[contr_cod])==$_POST[prov_summa]) {
$result = mysql_query("SELECT id FROM comment WHERE login='".$_SESSION["comment_mess_login"]."' and UNIX_TIMESTAMP(date)>'".(time()-120)."'", $link);
if (mysql_num_rows($result)>0){
$_SESSION["send"] = "Вы слишком часто отправляете комментарии!";
header("Location: $_SESSION[mess_url]#last");
exit;
}
if (isset($_POST[parent_id])) $result = mysql_query("insert into comment (parent_id,first_parent,date,theme,login,message) values ('".$_POST[parent_id]."','".$_POST[first_parent]."','".date("Y-m-d H:i:s")."','".substr($_SESSION[mess_url],0,strrpos($_SESSION[mess_url],'/')+1)."','".$_SESSION[comment_mess_login]."','".$_SESSION[comment_user_text]."')");
  else $result = mysql_query("insert into comment (date,theme,login,message) values ('".date("Y-m-d H:i:s")."','".substr($_SESSION[mess_url],0,strrpos($_SESSION[mess_url],'/')+1)."','".$_SESSION[comment_mess_login]."','".$_SESSION[comment_user_text]."')");
  $_SESSION[send]='Комментарий принят и ожидает модерации.';
  $_SESSION[comment_mess_login]='';
  $_SESSION[comment_user_text]='';
  header("Location: $_SESSION[mess_url]#last");
  exit;
}
else {
  $_SESSION[send] = "Неверный проверочный код!";
  header("Location: $_SESSION[mess_url]#last");
  exit;
}
}
?>
<?php
if (!empty($_SERVER['HTTP_CLIENT_IP']))
    $ip=$_SERVER['HTTP_CLIENT_IP'];
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
else $ip=$_SERVER['REMOTE_ADDR'];
$ip_position=strpos($ip,',');
if ($ip_position>0) $ip_short=substr($ip, 0, $ip_position);
else $ip_short=$ip;
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Сайт</title>
<style type="text/css">
.spoiler_body {display:none;}
.spoiler_link {cursor:pointer;}
.open_hint {margin:5px 0px 0px 0px; width:100px; border: 1px solid #4874a3; cursor:pointer; background:#afeeee;}
</style>
</head>
<script type="text/javascript"
src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.spoiler_link').click(function(){
  $(this).parent().children('div.spoiler_body').toggle('normal');
  return false;
});
});
</script>
<body>
<?php echo $myrow['text']; ?>
<?php
if (!isset($myrow2['avatar']) or $myrow2['avatar']=='')    
{
    if (isset($_COOKIE['name']))
{

echo ' value="'.$_COOKIE['name'].'">';
}
if (isset($_COOKIE['password']))
{

echo ' value="'.$_COOKIE['password'].'">';
}
print <<<HERE
<p><a href='vxod.php'>Авторизация</a></p>
HERE;
}

else
{
print <<<HERE
<img alt='$_SESSION[name]' src='$myrow2[avatar]' class='avatar_menu_user'><a href='user.php?id=$_SESSION[id]'>Моя страница</a>
HERE;
}

?>
<?php
echo '<div id="last" align="center">';

echo '<form method="POST" action="'.$_SESSION[mess_url].'#last">';
echo '<table border="0" style="border: 1px solid #4874a3;
border-radius:8px;" bgcolor="#7799ee" cellspacing="4" align="center">';
echo '<tr><td colspan="2" align="center">';
echo '<b>Добавить комментарий к теме:</b><br>';

$prov_cod=rand(1000,9980); $prov_cod_2=rand(1,19);

echo '<textarea cols="65" rows="5" name="user_text" required>'
.$_SESSION[comment_user_text].'</textarea><br>';
echo '</td></tr><tr><td width="300">';

echo '<b>Ваше имя: </b><input type="text" name="mess_login" maxlength="20"
value="'.$_SESSION['name'].'" required>';

echo '</td><td align="right">';
echo '<b>'.$prov_cod.' + '.$prov_cod_2.' = </b>';
echo '<input type="hidden" name="prov_summa" value="'.md5($prov_cod+$prov_cod_2).'">';

echo '<input type="text" name="contr_cod" maxlength="4" size="4" required>';
echo '<input type="submit" value="Отправить"></td></tr></table></form>';

$_SESSION[comment_mess_login]='';
$_SESSION[comment_user_text]='';

if (isset($_SESSION[send])and($_SESSION[send]!="")) {
echo '<font color="red"><b>'.$_SESSION[send].'</b></font>';
$_SESSION[send]="";
}
echo '</div>';
?>

<table border="0" width="555" align="center">
<tr>
  <td>
   <hr>
   <div style="border: 2px solid Cornflowerblue; padding:4px; border-radius:5px;">
<?php
function col_pages($count, $this, $radius) {
$j=0; $out=""; $td='<td width="35" bgcolor="lightgreen">';
if (($this-$radius)<1) $i=1;
     else $i=$this-$radius;
if ($i==1) $i++;

if (($count-($radius*2+1))<$i) $i=$count-($radius*2+1);
if ($i<2) $i=2;

if ($this!=1)
  $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list=1">1</a></td>';
     else $out.=$td.'<b>[ 1 ]</b></td>';

if ($i>2) $out.=$td.'...</td>';

while ((($i<=($this+$radius)) or ($j<($radius*2+1))) and ($i<$count)) {
if ($i!==$this)
  $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list='.$i.'">'.$i.'</a></td>';
     else $out.=$td.'<b>[ '.$i.' ]</b></td>';
$i++; $j++;
}
if ($i<$count) $out.=$td.'...</td>';
if ($count>1) {
     if ($count!=$this)
      $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list='.$count.'">
      '.$count.'</a></td>';
     else $out.=$td.'<b>[ '.$count.' ]</b></td>';
}
return $out;
}
if (is_numeric($_POST[comment_id])and($_POST[ocenka]=='0' or $_POST[ocenka]=='1')){
$result = mysql_query("SELECT login FROM comment WHERE id='".$_POST[comment_id]."'", $link);
$login=mysql_fetch_array($result);
if ($login['login']!='Administrator') {
$result = mysql_query("SELECT count(id),ocenka FROM ocenka_comment WHERE comment_id='".$_POST[comment_id]."' and ip='".$ip_short."'", $link);
$number = mysql_fetch_array($result);
if ($number[0]==0) {
     $result = mysql_query("insert into ocenka_comment (date,comment_id,ip,ocenka)
     values ('".date("Y-m-d H:i:s")."','".$_POST[comment_id]."','".$ip_short."','".$_POST[ocenka]."')"); }
elseif ($number[ocenka]!=$_POST[ocenka]) {
     $result = mysql_query("UPDATE ocenka_comment
     SET date='".date("Y-m-d H:i:s")."',ocenka='".$_POST[ocenka]."'
     WHERE comment_id='".$_POST[comment_id]."' and ip='".$ip_short."'"); }
}
}

if (is_numeric($_GET[comment_list]) and $_GET[comment_list]>0) {
if ($_GET[comment_list]>$count_list) $comment_list=$count_list;
    else $comment_list=$_GET[comment_list];
}
else $comment_list=1;
if ($comment_list==0) $comment_list=1;


$result = mysql_query("SELECT * FROM comment WHERE theme='".substr($_SESSION[mess_url],0,strrpos($_SESSION[mess_url],'/')+1)."' and moderation=1 and first_parent=0", $link);
$count_list=floor((mysql_num_rows($result)-1)/5)+1;

if (is_numeric($_GET[comment_list]) and $_GET[comment_list]>0) {
if ($_GET[comment_list]>$count_list) $comment_list=$count_list;
    else $comment_list=$_GET[comment_list];
}
else $comment_list=1;
if ($comment_list==0) $comment_list=1;

$result = mysql_query("SELECT * FROM comment WHERE theme='".substr($_SESSION[mess_url],0,strrpos($_SESSION[mess_url],'/')+1)."' and moderation=1 and first_parent=0 ORDER BY id desc LIMIT ".($comment_list*5-5).",5", $link);
$number = mysql_num_rows($result);
if ($number>0) {
$zapros='';
for ($n=1; $n<=$number; $n++) {
     $parents[$n]=mysql_fetch_array($result);
     $zapros.=$parents[$n][id].','.$parents[$n][id].',';
}
$zapros=substr($zapros, 0, -1);

$result = mysql_query("SELECT * FROM comment WHERE theme='".substr($_SESSION[mess_url],0,strrpos($_SESSION[mess_url],'/')+1)."' and moderation=1 and id IN(".$zapros.")  ORDER BY id desc", $link);
$result2 = mysql_query("SELECT * FROM comment WHERE theme='".substr($_SESSION[mess_url],0,strrpos($_SESSION[mess_url],'/')+1)."' and moderation=1 and first_parent IN(".$zapros.") ORDER BY id", $link);
$number = mysql_num_rows($result);


echo '<hr><div align="center" style="padding:3px; border-radius:5px;">
<u><b>Последние комментарии посетителей:</b></u><br>';


function parents($parent=0,$left=0) {
global $tags;

for ($i=0;$i<=count($tags[$parent])-1;$i++) {

$result_minus = mysql_query("SELECT sum(ocenka=1), sum(ocenka=0) FROM ocenka_comment WHERE comment_id='".$tags[$parent][$i][0]."' LIMIT 1");
$ocenka_com=mysql_fetch_array($result_minus);

if ($tags[$parent][$i][2]=='Administrator') $tags[$parent][$i][2]='<font color="#cc1111">Administrator</font>';
if ($tags[$parent][$i][6]==0) $tags[$parent][$i][6]=$tags[$parent][$i][0];

echo '<div align="right" style="margin:0px 0px 0px '.$left.'px;">';
echo '<br><table border="0" width="95%" style="border: 1px solid #4874a3;" bgcolor="#fffabc"><tr>';
echo '<td align="left" style="padding:5px 5px 5px 5px;">';
echo '<div id="m'.$tags[$parent][$i][0].'"></div><b>'.$tags[$parent][$i][2].'</b></td>';
echo '<td width="140">';
echo '<span style="font-size:12px;">('.$tags[$parent][$i][3].')</span></td>';
if ($tags[$parent][$i][2]!='<font color="#cc1111">Administrator</font>'){
echo '<td width="20" >';
echo '<form method="POST" action="'.$_SESSION[full_url].'#m'.$tags[$parent][$i][0].'">';
echo '<input type="hidden" name="comment_id" value="'.$tags[$parent][$i][0].'">';
echo '<input type="hidden" name="ocenka" value="1">';
echo '<input type="image" src="comm_up.gif" title="Хороший комментарий" align="middle">';
echo '</form></td>';
echo '<td width="5"><b>'.($ocenka_com[0]-$ocenka_com[1]).'</b></td>';
echo '<td width="20">';
echo '<form method="POST" action="'.$_SESSION[full_url].'#m'.$tags[$parent][$i][0].'">';
echo '<input type="hidden" name="comment_id" value="'.$tags[$parent][$i][0].'">';
echo '<input type="hidden" name="ocenka" value="0">';
echo '<input type="image" src="comm_down.gif" title="Плохой комментарий" align="middle">';
echo '</form>';
}
echo '</td></tr></table>';
echo '<table border="0" width="95%" style="border: 1px solid #eeeeee;"bgcolor="#f0fff0">';
echo '<td>';
if ($parent>0) {
$result = mysql_query("SELECT message FROM comment WHERE id='".$parent."'");
$message = mysql_fetch_array($result);
echo '<div>'.wordwrap(nl2br($message["message"]), 70, "\n", 1).'</div>';
}
if (($ocenka_com[0]-$ocenka_com[1])<0)
echo '<div><a href="javscript://" class="spoiler_link">Показать / скрыть плохой комментарий</a><div class="spoiler_body">'.wordwrap(nl2br($tags[$parent][$i][1]), 70, "\n", 1).'</div></div>';
else echo wordwrap(nl2br($tags[$parent][$i][1]), 70, "\n", 1);
echo '</td></tr></table>';
echo '<div align="center" class="open_hint" onClick="comm_on('.$tags[$parent][$i][0].','.$tags[$parent][$i][6].')">Ответить</div>';
     if (isset($tags[ $tags[$parent][$i][0] ])) parents($tags[$parent][$i][0],20);
     echo '</div>';
    
}
}
while ($comments=mysql_fetch_assoc($result)) $tags[(int)$comments['parent_id']][]=array((int)$comments['id'], $comments['message'], $comments['login'], $comments['date'], $comments['plus'], $comments['minus'], $comments['first_parent'] );
while ($comments=mysql_fetch_assoc($result2)) $tags[(int)$comments['parent_id']][]=array((int)$comments['id'], $comments['message'], $comments['login'], $comments['date'], $comments['plus'], $comments['minus'], $comments['first_parent'] );
echo parents().'</div>';
echo '<table style="border: 1px solid #4874a3;" cellspacing="2" cellpadding="0">';
echo '<tr align="center">';
  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list>1) echo '<a href="'.$_SESSION[mess_url].'">В начало</a>';
    else echo 'В начало';
  echo '</td>';
  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list>1) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.($comment_list-1).'">Назад</a>';
    else echo 'Назад';
  echo '</td>';

echo col_pages((int)$count_list, (int)$comment_list, 3);

  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list<$count_list) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.($comment_list+1).'">Вперед</a>';
    else echo 'Вперед';
  echo '</td>';
  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list<$count_list) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.$count_list.'">В конец</a>';
    else echo 'В конец';
  echo '</td>';
echo '</tr>';
echo '</table>';
}
else echo 'Комментарии отсутствуют!';
?>
<div id="hint" style="position:absolute; display: none;">
<?php echo '<form name="add_comment" method="POST" action="'.$_SESSION[full_url].'#last">'; ?>
<table border="0" style="border: 1px solid #4874a3; border-radius:8px;" bgcolor="#7799ee" cellspacing="4" align="center">
  <tr>
   <td colspan="2" style="cursor:pointer;" align="right"><font color="Lawngreen"><div id="close_hint"><b>Закрыть[x]</b></div></font>
    <?php
    $prov_cod=rand(100,980); $prov_cod_2=rand(1,19);

    echo '<textarea cols="65" rows="5" name="user_text" required>'.$_SESSION[comment_user_text].'</textarea>';
   echo '</td></tr><tr><td width="300">';

    echo '<b>Ваше имя: </b><input type="text" name="mess_login" maxlength="20" value="'.$_SESSION['name'].'" required>';

   echo '</td><td align="right">';
    echo '<b>'.$prov_cod.' + '.$prov_cod_2.' = </b>';
    echo '<input type="hidden" name="prov_summa" value="'.md5($prov_cod+$prov_cod_2).'">';
    ?>
    <input type="text" name="contr_cod" maxlength="4" size="4" required>
    <input type="hidden" name="parent_id" value="0">
    <input type="hidden" name="first_parent" value="0">
    <input type="submit" value="Отправить">
   </td>
  </tr>
</table>
</form>
</div>
</div>
  </td>
</tr>
</table>
<script type="text/javascript">
$('html').mousemove(function(e){
$('.open_hint').click(function(){
  $('#hint').fadeIn(700);
  $('#hint').offset({top:e.pageY+15, left:e.pageX-550});
  return false;
});
});
$('#close_hint').click(function(){
$('#hint').fadeOut(700);
return false;
});
</script>
<script type="text/javascript">
function comm_on(p_id,first_p) {
document.add_comment.parent_id.value = p_id;
document.add_comment.first_parent.value = first_p;
}
</script>
</body>
</html>
14.01.2014 15:45:04
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #126
RE: Построение дерева иерархии или дерева комментариев
Я правильно понимаю, что все ваши темы, к которым оставляются комментарии меняются в зависимости от значения test.php?id=... ? То есть, если изменить id, то тема меняется... А для чего тогда вторая цифра в приведенной вами строке - http://localhost/userscript1/test/18/18?comment_list=1

И есть ли другие значения в URL кроме test.php, например example.php?id=... ?
Все никак не могу понять структуру вашего сайта...

Просто, если комментарии нужно оставлять только в test.php, то можно привязаться к id. Тогда в SQL запросах вместо $_SESSION[mess_url] (уже substr($_SESSION[mess_url],0,strrpos($_SESSION[mess_url],'/')+1)) можно использовать новую переменную, которая будет получать значение из $_GET["id"] (например, $id, т.к. она у Вас уже используется).

Только предварительно $_GET['id'] необходимо проверить для защиты от SQL инъекций. Для этого до первого использования переменной $_GET['id'], вместо чтроки:
PHP код:
if (isset($_GET['id'])) {$id $_GET['id'];} 
добавьте строчки:
PHP код:
if (isset($_GET['id']) and is_numeric($_GET['id'])) $id=$_GET["id"];
else 
$id=''
14.01.2014 18:52:52
Найти все сообщения Цитировать это сообщение
Kenpack Не на форуме
Сержант
*

Сообщений: 37
У нас с: Jan 2014
Сообщение: #127
RE: Построение дерева иерархии или дерева комментариев
вот http://localhost/userscript1/test/18/ , где 18 это id статьи (темы), а дальше 18?comment_list=1 , где число 18-это сохранённая страница в бд (theme).

у меня есть и другие страницы кроме test.php, например user.php (личный кабинет пользователя моего сайта).

Я попробовал добавить
Код:
if (isset($_GET['id'] and is_numeric($_GET['id'])) $id=$_GET["id"];
else $id='';
но выдаёт вот такую ошибку
Код:
Parse error: syntax error, unexpected T_LOGICAL_AND, expecting ',' or ')' in Z:\home\localhost\www\userscript1\test.php on line 4



Другое: Я попробую полностью убрать постраничную навигацию, и посмотреть как поведёт себя код, если всё нормально, то я оставлю всё в покое. Но желательно конечно бы с постраничным навигацией...
14.01.2014 19:43:22
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #128
RE: Построение дерева иерархии или дерева комментариев
Скобку пропустил Blush

PHP код:
if (isset($_GET['id']) and is_numeric($_GET['id'])) $id=$_GET["id"];
else 
$id=''

Вверху пост уже исправил...

Самое главное: у всех статей, независимо от того что идет между "/" и "/" id разные или нет. Если id у всех разные, то к ним и привяжемся.
14.01.2014 20:04:59
Найти все сообщения Цитировать это сообщение
Kenpack Не на форуме
Сержант
*

Сообщений: 37
У нас с: Jan 2014
Сообщение: #129
RE: Построение дерева иерархии или дерева комментариев
всё равно комментарии не выводятся.
весь код у меня такой:
Код:
<?php
session_start();
include ("config.php");
if (isset($_GET['id']) and is_numeric($_GET['id'])) $id=$_GET["id"];
else $id='';
$result100 = mysql_query("SELECT * FROM entries WHERE id='$id'",$dbpower);
$myrow = mysql_fetch_array($result100);
include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь
if (isset($_COOKIE['auto']) and isset($_COOKIE['name']) and isset($_COOKIE['password']))
{//если есть необходимые переменные
    if ($_COOKIE['auto'] == 'yes') { // если пользователь желает входить автоматически, то запускаем сессии
          $_SESSION['password']=strrev(md5($_COOKIE['password']))."b3p6f"; //в куках пароль был не зашифрованный, а в сессиях обычно храним зашифрованный
          $_SESSION['name']=$_COOKIE['name'];//сессия с логином
          $_SESSION['id']=$_COOKIE['id'];//идентификатор пользователя
        }    
    }

if (!empty($_SESSION['name']) and !empty($_SESSION['password']))
{
//если существет логин и пароль в сессиях, то проверяем их и извлекаем аватар
$name = $_SESSION['name'];
$password = $_SESSION['password'];
$result2 = mysql_query("SELECT id,avatar FROM users WHERE name='$name' AND password='$password' AND activation='1'",$db);
$myrow2 = mysql_fetch_array($result2);
//извлекаем нужные данные о пользователе
}

$link = mysql_connect("localhost", "Danil", "1234561") or die("Could not connect: " . mysql_error());
mysql_select_db("comment", $link);

$_SESSION[full_url]=mysql_real_escape_string(basename($_SERVER['REQUEST_URI']));
$_SESSION[mess_url]=strtok($_SESSION[full_url], '?');

if (isset($_POST[contr_cod])) {
$_SESSION[comment_mess_login]=$_POST[mess_login];
$_SESSION[comment_user_text]=$_POST[user_text];
if (get_magic_quotes_gpc()=="0") {
  $_SESSION[comment_mess_login]=mysql_real_escape_string($_SESSION[comment_mess_login]);
  $_SESSION[comment_user_text]=mysql_real_escape_string($_SESSION[comment_user_text]);
}
$_SESSION[comment_mess_login]=htmlspecialchars($_POST[mess_login]);
$_SESSION[comment_user_text]=htmlspecialchars($_POST[user_text]);

if (md5($_POST[contr_cod])==$_POST[prov_summa]) {
$result = mysql_query("SELECT id FROM comment WHERE login='".$_SESSION["comment_mess_login"]."' and UNIX_TIMESTAMP(date)>'".(time()-120)."'", $link);
if (mysql_num_rows($result)>0){
$_SESSION["send"] = "Вы слишком часто отправляете комментарии!";
header("Location: $_SESSION[mess_url]#last");
exit;
}
if (isset($_POST[parent_id])) $result = mysql_query("insert into comment (parent_id,first_parent,date,theme,login,message) values ('".$_POST[parent_id]."','".$_POST[first_parent]."','".date("Y-m-d H:i:s")."','".substr($_SESSION[mess_url],0,strrpos($_SESSION[mess_url],'/')+1)."','".$_SESSION[comment_mess_login]."','".$_SESSION[comment_user_text]."')");
  else $result = mysql_query("insert into comment (date,theme,login,message) values ('".date("Y-m-d H:i:s")."','".substr($_SESSION[mess_url],0,strrpos($_SESSION[mess_url],'/')+1)."','".$_SESSION[comment_mess_login]."','".$_SESSION[comment_user_text]."')");
  $_SESSION[send]='Комментарий принят и ожидает модерации.';
  $_SESSION[comment_mess_login]='';
  $_SESSION[comment_user_text]='';
  header("Location: $_SESSION[mess_url]#last");
  exit;
}
else {
  $_SESSION[send] = "Неверный проверочный код!";
  header("Location: $_SESSION[mess_url]#last");
  exit;
}
}
?>
<?php
if (!empty($_SERVER['HTTP_CLIENT_IP']))
    $ip=$_SERVER['HTTP_CLIENT_IP'];
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
else $ip=$_SERVER['REMOTE_ADDR'];
$ip_position=strpos($ip,',');
if ($ip_position>0) $ip_short=substr($ip, 0, $ip_position);
else $ip_short=$ip;
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Сайт</title>
<style type="text/css">
.spoiler_body {display:none;}
.spoiler_link {cursor:pointer;}
.open_hint {margin:5px 0px 0px 0px; width:100px; border: 1px solid #4874a3; cursor:pointer; background:#afeeee;}
</style>
</head>
<script type="text/javascript"
src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.spoiler_link').click(function(){
  $(this).parent().children('div.spoiler_body').toggle('normal');
  return false;
});
});
</script>
<body>
<?php echo $myrow['text']; ?>
<?php
if (!isset($myrow2['avatar']) or $myrow2['avatar']=='')    
{
    if (isset($_COOKIE['name']))
{

echo ' value="'.$_COOKIE['name'].'">';
}
if (isset($_COOKIE['password']))
{

echo ' value="'.$_COOKIE['password'].'">';
}
print <<<HERE
<p><a href='vxod.php'>Авторизация</a></p>
HERE;
}

else
{
print <<<HERE
<img alt='$_SESSION[name]' src='$myrow2[avatar]' class='avatar_menu_user'><a href='user.php?id=$_SESSION[id]'>Моя страница</a>
HERE;
}

?>
<?php
echo '<div id="last" align="center">';

echo '<form method="POST" action="'.$_SESSION[mess_url].'#last">';
echo '<table border="0" style="border: 1px solid #4874a3;
border-radius:8px;" bgcolor="#7799ee" cellspacing="4" align="center">';
echo '<tr><td colspan="2" align="center">';
echo '<b>Добавить комментарий к теме:</b><br>';

$prov_cod=rand(1000,9980); $prov_cod_2=rand(1,19);

echo '<textarea cols="65" rows="5" name="user_text" required>'
.$_SESSION[comment_user_text].'</textarea><br>';
echo '</td></tr><tr><td width="300">';

echo '<b>Ваше имя: </b><input type="text" name="mess_login" maxlength="20"
value="'.$_SESSION['name'].'" required>';

echo '</td><td align="right">';
echo '<b>'.$prov_cod.' + '.$prov_cod_2.' = </b>';
echo '<input type="hidden" name="prov_summa" value="'.md5($prov_cod+$prov_cod_2).'">';

echo '<input type="text" name="contr_cod" maxlength="4" size="4" required>';
echo '<input type="submit" value="Отправить"></td></tr></table></form>';

$_SESSION[comment_mess_login]='';
$_SESSION[comment_user_text]='';

if (isset($_SESSION[send])and($_SESSION[send]!="")) {
echo '<font color="red"><b>'.$_SESSION[send].'</b></font>';
$_SESSION[send]="";
}
echo '</div>';
?>

<table border="0" width="555" align="center">
<tr>
  <td>
   <hr>
   <div style="border: 2px solid Cornflowerblue; padding:4px; border-radius:5px;">
<?php
function col_pages($count, $this, $radius) {
$j=0; $out=""; $td='<td width="35" bgcolor="lightgreen">';
if (($this-$radius)<1) $i=1;
     else $i=$this-$radius;
if ($i==1) $i++;

if (($count-($radius*2+1))<$i) $i=$count-($radius*2+1);
if ($i<2) $i=2;

if ($this!=1)
  $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list=1">1</a></td>';
     else $out.=$td.'<b>[ 1 ]</b></td>';

if ($i>2) $out.=$td.'...</td>';

while ((($i<=($this+$radius)) or ($j<($radius*2+1))) and ($i<$count)) {
if ($i!==$this)
  $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list='.$i.'">'.$i.'</a></td>';
     else $out.=$td.'<b>[ '.$i.' ]</b></td>';
$i++; $j++;
}
if ($i<$count) $out.=$td.'...</td>';
if ($count>1) {
     if ($count!=$this)
      $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list='.$count.'">
      '.$count.'</a></td>';
     else $out.=$td.'<b>[ '.$count.' ]</b></td>';
}
return $out;
}
if (is_numeric($_POST[comment_id])and($_POST[ocenka]=='0' or $_POST[ocenka]=='1')){
$result = mysql_query("SELECT login FROM comment WHERE id='".$_POST[comment_id]."'", $link);
$login=mysql_fetch_array($result);
if ($login['login']!='Administrator') {
$result = mysql_query("SELECT count(id),ocenka FROM ocenka_comment WHERE comment_id='".$_POST[comment_id]."' and ip='".$ip_short."'", $link);
$number = mysql_fetch_array($result);
if ($number[0]==0) {
     $result = mysql_query("insert into ocenka_comment (date,comment_id,ip,ocenka)
     values ('".date("Y-m-d H:i:s")."','".$_POST[comment_id]."','".$ip_short."','".$_POST[ocenka]."')"); }
elseif ($number[ocenka]!=$_POST[ocenka]) {
     $result = mysql_query("UPDATE ocenka_comment
     SET date='".date("Y-m-d H:i:s")."',ocenka='".$_POST[ocenka]."'
     WHERE comment_id='".$_POST[comment_id]."' and ip='".$ip_short."'"); }
}
}

if (is_numeric($_GET[comment_list]) and $_GET[comment_list]>0) {
if ($_GET[comment_list]>$count_list) $comment_list=$count_list;
    else $comment_list=$_GET[comment_list];
}
else $comment_list=1;
if ($comment_list==0) $comment_list=1;


$result = mysql_query("SELECT * FROM comment WHERE theme='".substr($_SESSION[mess_url],0,strrpos($_SESSION[mess_url],'/')+1)."' and moderation=1 and first_parent=0", $link);
$count_list=floor((mysql_num_rows($result)-1)/5)+1;

if (is_numeric($_GET[comment_list]) and $_GET[comment_list]>0) {
if ($_GET[comment_list]>$count_list) $comment_list=$count_list;
    else $comment_list=$_GET[comment_list];
}
else $comment_list=1;
if ($comment_list==0) $comment_list=1;

$result = mysql_query("SELECT * FROM comment WHERE theme='".substr($_SESSION[mess_url],0,strrpos($_SESSION[mess_url],'/')+1)."' and moderation=1 and first_parent=0 ORDER BY id desc LIMIT ".($comment_list*5-5).",5", $link);
$number = mysql_num_rows($result);
if ($number>0) {
$zapros='';
for ($n=1; $n<=$number; $n++) {
     $parents[$n]=mysql_fetch_array($result);
     $zapros.=$parents[$n][id].','.$parents[$n][id].',';
}
$zapros=substr($zapros, 0, -1);

$result = mysql_query("SELECT * FROM comment WHERE theme='".substr($_SESSION[mess_url],0,strrpos($_SESSION[mess_url],'/')+1)."' and moderation=1 and id IN(".$zapros.")  ORDER BY id desc", $link);
$result2 = mysql_query("SELECT * FROM comment WHERE theme='".substr($_SESSION[mess_url],0,strrpos($_SESSION[mess_url],'/')+1)."' and moderation=1 and first_parent IN(".$zapros.") ORDER BY id", $link);
$number = mysql_num_rows($result);


echo '<hr><div align="center" style="padding:3px; border-radius:5px;">
<u><b>Последние комментарии посетителей:</b></u><br>';


function parents($parent=0,$left=0) {
global $tags;

for ($i=0;$i<=count($tags[$parent])-1;$i++) {

$result_minus = mysql_query("SELECT sum(ocenka=1), sum(ocenka=0) FROM ocenka_comment WHERE comment_id='".$tags[$parent][$i][0]."' LIMIT 1");
$ocenka_com=mysql_fetch_array($result_minus);

if ($tags[$parent][$i][2]=='Administrator') $tags[$parent][$i][2]='<font color="#cc1111">Administrator</font>';
if ($tags[$parent][$i][6]==0) $tags[$parent][$i][6]=$tags[$parent][$i][0];

echo '<div align="right" style="margin:0px 0px 0px '.$left.'px;">';
echo '<br><table border="0" width="95%" style="border: 1px solid #4874a3;" bgcolor="#fffabc"><tr>';
echo '<td align="left" style="padding:5px 5px 5px 5px;">';
echo '<div id="m'.$tags[$parent][$i][0].'"></div><b>'.$tags[$parent][$i][2].'</b></td>';
echo '<td width="140">';
echo '<span style="font-size:12px;">('.$tags[$parent][$i][3].')</span></td>';
if ($tags[$parent][$i][2]!='<font color="#cc1111">Administrator</font>'){
echo '<td width="20" >';
echo '<form method="POST" action="'.$_SESSION[full_url].'#m'.$tags[$parent][$i][0].'">';
echo '<input type="hidden" name="comment_id" value="'.$tags[$parent][$i][0].'">';
echo '<input type="hidden" name="ocenka" value="1">';
echo '<input type="image" src="comm_up.gif" title="Хороший комментарий" align="middle">';
echo '</form></td>';
echo '<td width="5"><b>'.($ocenka_com[0]-$ocenka_com[1]).'</b></td>';
echo '<td width="20">';
echo '<form method="POST" action="'.$_SESSION[full_url].'#m'.$tags[$parent][$i][0].'">';
echo '<input type="hidden" name="comment_id" value="'.$tags[$parent][$i][0].'">';
echo '<input type="hidden" name="ocenka" value="0">';
echo '<input type="image" src="comm_down.gif" title="Плохой комментарий" align="middle">';
echo '</form>';
}
echo '</td></tr></table>';
echo '<table border="0" width="95%" style="border: 1px solid #eeeeee;"bgcolor="#f0fff0">';
echo '<td>';
if ($parent>0) {
$result = mysql_query("SELECT message FROM comment WHERE id='".$parent."'");
$message = mysql_fetch_array($result);
echo '<div>'.wordwrap(nl2br($message["message"]), 70, "\n", 1).'</div>';
}
if (($ocenka_com[0]-$ocenka_com[1])<0)
echo '<div><a href="javscript://" class="spoiler_link">Показать / скрыть плохой комментарий</a><div class="spoiler_body">'.wordwrap(nl2br($tags[$parent][$i][1]), 70, "\n", 1).'</div></div>';
else echo wordwrap(nl2br($tags[$parent][$i][1]), 70, "\n", 1);
echo '</td></tr></table>';
echo '<div align="center" class="open_hint" onClick="comm_on('.$tags[$parent][$i][0].','.$tags[$parent][$i][6].')">Ответить</div>';
     if (isset($tags[ $tags[$parent][$i][0] ])) parents($tags[$parent][$i][0],20);
     echo '</div>';
    
}
}
while ($comments=mysql_fetch_assoc($result)) $tags[(int)$comments['parent_id']][]=array((int)$comments['id'], $comments['message'], $comments['login'], $comments['date'], $comments['plus'], $comments['minus'], $comments['first_parent'] );
while ($comments=mysql_fetch_assoc($result2)) $tags[(int)$comments['parent_id']][]=array((int)$comments['id'], $comments['message'], $comments['login'], $comments['date'], $comments['plus'], $comments['minus'], $comments['first_parent'] );
echo parents().'</div>';
echo '<table style="border: 1px solid #4874a3;" cellspacing="2" cellpadding="0">';
echo '<tr align="center">';
  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list>1) echo '<a href="'.$_SESSION[mess_url].'">В начало</a>';
    else echo 'В начало';
  echo '</td>';
  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list>1) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.($comment_list-1).'">Назад</a>';
    else echo 'Назад';
  echo '</td>';

echo col_pages((int)$count_list, (int)$comment_list, 3);

  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list<$count_list) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.($comment_list+1).'">Вперед</a>';
    else echo 'Вперед';
  echo '</td>';
  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list<$count_list) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.$count_list.'">В конец</a>';
    else echo 'В конец';
  echo '</td>';
echo '</tr>';
echo '</table>';
}
else echo 'Комментарии отсутствуют!';
?>
<div id="hint" style="position:absolute; display: none;">
<?php echo '<form name="add_comment" method="POST" action="'.$_SESSION[full_url].'#last">'; ?>
<table border="0" style="border: 1px solid #4874a3; border-radius:8px;" bgcolor="#7799ee" cellspacing="4" align="center">
  <tr>
   <td colspan="2" style="cursor:pointer;" align="right"><font color="Lawngreen"><div id="close_hint"><b>Закрыть[x]</b></div></font>
    <?php
    $prov_cod=rand(100,980); $prov_cod_2=rand(1,19);

    echo '<textarea cols="65" rows="5" name="user_text" required>'.$_SESSION[comment_user_text].'</textarea>';
   echo '</td></tr><tr><td width="300">';

    echo '<b>Ваше имя: </b><input type="text" name="mess_login" maxlength="20" value="'.$_SESSION['name'].'" required>';

   echo '</td><td align="right">';
    echo '<b>'.$prov_cod.' + '.$prov_cod_2.' = </b>';
    echo '<input type="hidden" name="prov_summa" value="'.md5($prov_cod+$prov_cod_2).'">';
    ?>
    <input type="text" name="contr_cod" maxlength="4" size="4" required>
    <input type="hidden" name="parent_id" value="0">
    <input type="hidden" name="first_parent" value="0">
    <input type="submit" value="Отправить">
   </td>
  </tr>
</table>
</form>
</div>
</div>
  </td>
</tr>
</table>
<script type="text/javascript">
$('html').mousemove(function(e){
$('.open_hint').click(function(){
  $('#hint').fadeIn(700);
  $('#hint').offset({top:e.pageY+15, left:e.pageX-550});
  return false;
});
});
$('#close_hint').click(function(){
$('#hint').fadeOut(700);
return false;
});
</script>
<script type="text/javascript">
function comm_on(p_id,first_p) {
document.add_comment.parent_id.value = p_id;
document.add_comment.first_parent.value = first_p;
}
</script>
</body>
</html>
Пишет что "Комментарии отсутствуют!"
14.01.2014 20:16:04
Найти все сообщения Цитировать это сообщение
Kenpack Не на форуме
Сержант
*

Сообщений: 37
У нас с: Jan 2014
Сообщение: #130
RE: Построение дерева иерархии или дерева комментариев
а вот с таким кодом комментарии выводятся, но я не могу попасть на 2 страницу...
Код:
<?php
session_start();
include ("config.php");
if (isset($_GET['id']) and is_numeric($_GET['id'])) $id=$_GET["id"];
else $id='';
$result100 = mysql_query("SELECT * FROM entries WHERE id='$id'",$dbpower);
$myrow = mysql_fetch_array($result100);
include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь
if (isset($_COOKIE['auto']) and isset($_COOKIE['name']) and isset($_COOKIE['password']))
{//если есть необходимые переменные
    if ($_COOKIE['auto'] == 'yes') { // если пользователь желает входить автоматически, то запускаем сессии
          $_SESSION['password']=strrev(md5($_COOKIE['password']))."b3p6f"; //в куках пароль был не зашифрованный, а в сессиях обычно храним зашифрованный
          $_SESSION['name']=$_COOKIE['name'];//сессия с логином
          $_SESSION['id']=$_COOKIE['id'];//идентификатор пользователя
        }    
    }

if (!empty($_SESSION['name']) and !empty($_SESSION['password']))
{
//если существет логин и пароль в сессиях, то проверяем их и извлекаем аватар
$name = $_SESSION['name'];
$password = $_SESSION['password'];
$result2 = mysql_query("SELECT id,avatar FROM users WHERE name='$name' AND password='$password' AND activation='1'",$db);
$myrow2 = mysql_fetch_array($result2);
//извлекаем нужные данные о пользователе
}

$link = mysql_connect("localhost", "Danil", "1234561") or die("Could not connect: " . mysql_error());
mysql_select_db("comment", $link);

$_SESSION[full_url]=mysql_real_escape_string(basename($_SERVER['REQUEST_URI']));
$_SESSION[mess_url]=strtok($_SESSION[full_url], '?');

if (isset($_POST[contr_cod])) {
$_SESSION[comment_mess_login]=$_POST[mess_login];
$_SESSION[comment_user_text]=$_POST[user_text];
if (get_magic_quotes_gpc()=="0") {
  $_SESSION[comment_mess_login]=mysql_real_escape_string($_SESSION[comment_mess_login]);
  $_SESSION[comment_user_text]=mysql_real_escape_string($_SESSION[comment_user_text]);
}
$_SESSION[comment_mess_login]=htmlspecialchars($_POST[mess_login]);
$_SESSION[comment_user_text]=htmlspecialchars($_POST[user_text]);

if (md5($_POST[contr_cod])==$_POST[prov_summa]) {
$result = mysql_query("SELECT id FROM comment WHERE login='".$_SESSION["comment_mess_login"]."' and UNIX_TIMESTAMP(date)>'".(time()-120)."'", $link);
if (mysql_num_rows($result)>0){
$_SESSION["send"] = "Вы слишком часто отправляете комментарии!";
header("Location: $_SESSION[mess_url]#last");
exit;
}
if (isset($_POST[parent_id])) $result = mysql_query("insert into comment (parent_id,first_parent,date,theme,login,message) values ('".$_POST[parent_id]."','".$_POST[first_parent]."','".date("Y-m-d H:i:s")."','".$_SESSION[mess_url] ."','".$_SESSION[comment_mess_login]."','".$_SESSION[comment_user_text]."')");
  else $result = mysql_query("insert into comment (date,theme,login,message) values ('".date("Y-m-d H:i:s")."','".$_SESSION[mess_url] ."','".$_SESSION[comment_mess_login]."','".$_SESSION[comment_user_text]."')");
  $_SESSION[send]='Комментарий принят и ожидает модерации.';
  $_SESSION[comment_mess_login]='';
  $_SESSION[comment_user_text]='';
  header("Location: $_SESSION[mess_url]#last");
  exit;
}
else {
  $_SESSION[send] = "Неверный проверочный код!";
  header("Location: $_SESSION[mess_url]#last");
  exit;
}
}
?>
<?php
if (!empty($_SERVER['HTTP_CLIENT_IP']))
    $ip=$_SERVER['HTTP_CLIENT_IP'];
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
else $ip=$_SERVER['REMOTE_ADDR'];
$ip_position=strpos($ip,',');
if ($ip_position>0) $ip_short=substr($ip, 0, $ip_position);
else $ip_short=$ip;
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Сайт</title>
<style type="text/css">
.spoiler_body {display:none;}
.spoiler_link {cursor:pointer;}
.open_hint {margin:5px 0px 0px 0px; width:100px; border: 1px solid #4874a3; cursor:pointer; background:#afeeee;}
</style>
</head>
<script type="text/javascript"
src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.spoiler_link').click(function(){
  $(this).parent().children('div.spoiler_body').toggle('normal');
  return false;
});
});
</script>
<body>
<?php echo $myrow['text']; ?>
<?php
if (!isset($myrow2['avatar']) or $myrow2['avatar']=='')    
{
    if (isset($_COOKIE['name']))
{

echo ' value="'.$_COOKIE['name'].'">';
}
if (isset($_COOKIE['password']))
{

echo ' value="'.$_COOKIE['password'].'">';
}
print <<<HERE
<p><a href='vxod.php'>Авторизация</a></p>
HERE;
}

else
{
print <<<HERE
<img alt='$_SESSION[name]' src='$myrow2[avatar]' class='avatar_menu_user'><a href='user.php?id=$_SESSION[id]'>Моя страница</a>
HERE;
}

?>
<?php
echo '<div id="last" align="center">';

echo '<form method="POST" action="'.$_SESSION[mess_url].'#last">';
echo '<table border="0" style="border: 1px solid #4874a3;
border-radius:8px;" bgcolor="#7799ee" cellspacing="4" align="center">';
echo '<tr><td colspan="2" align="center">';
echo '<b>Добавить комментарий к теме:</b><br>';

$prov_cod=rand(1000,9980); $prov_cod_2=rand(1,19);

echo '<textarea cols="65" rows="5" name="user_text" required>'
.$_SESSION[comment_user_text].'</textarea><br>';
echo '</td></tr><tr><td width="300">';

echo '<b>Ваше имя: </b><input type="text" name="mess_login" maxlength="20"
value="'.$_SESSION['name'].'" required>';

echo '</td><td align="right">';
echo '<b>'.$prov_cod.' + '.$prov_cod_2.' = </b>';
echo '<input type="hidden" name="prov_summa" value="'.md5($prov_cod+$prov_cod_2).'">';

echo '<input type="text" name="contr_cod" maxlength="4" size="4" required>';
echo '<input type="submit" value="Отправить"></td></tr></table></form>';

$_SESSION[comment_mess_login]='';
$_SESSION[comment_user_text]='';

if (isset($_SESSION[send])and($_SESSION[send]!="")) {
echo '<font color="red"><b>'.$_SESSION[send].'</b></font>';
$_SESSION[send]="";
}
echo '</div>';
?>

<table border="0" width="555" align="center">
<tr>
  <td>
   <hr>
   <div style="border: 2px solid Cornflowerblue; padding:4px; border-radius:5px;">
<?php
function col_pages($count, $this, $radius) {
$j=0; $out=""; $td='<td width="35" bgcolor="lightgreen">';
if (($this-$radius)<1) $i=1;
     else $i=$this-$radius;
if ($i==1) $i++;

if (($count-($radius*2+1))<$i) $i=$count-($radius*2+1);
if ($i<2) $i=2;

if ($this!=1)
  $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list=1">1</a></td>';
     else $out.=$td.'<b>[ 1 ]</b></td>';

if ($i>2) $out.=$td.'...</td>';

while ((($i<=($this+$radius)) or ($j<($radius*2+1))) and ($i<$count)) {
if ($i!==$this)
  $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list='.$i.'">'.$i.'</a></td>';
     else $out.=$td.'<b>[ '.$i.' ]</b></td>';
$i++; $j++;
}
if ($i<$count) $out.=$td.'...</td>';
if ($count>1) {
     if ($count!=$this)
      $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list='.$count.'">
      '.$count.'</a></td>';
     else $out.=$td.'<b>[ '.$count.' ]</b></td>';
}
return $out;
}
if (is_numeric($_POST[comment_id])and($_POST[ocenka]=='0' or $_POST[ocenka]=='1')){
$result = mysql_query("SELECT login FROM comment WHERE id='".$_POST[comment_id]."'", $link);
$login=mysql_fetch_array($result);
if ($login['login']!='Administrator') {
$result = mysql_query("SELECT count(id),ocenka FROM ocenka_comment WHERE comment_id='".$_POST[comment_id]."' and ip='".$ip_short."'", $link);
$number = mysql_fetch_array($result);
if ($number[0]==0) {
     $result = mysql_query("insert into ocenka_comment (date,comment_id,ip,ocenka)
     values ('".date("Y-m-d H:i:s")."','".$_POST[comment_id]."','".$ip_short."','".$_POST[ocenka]."')"); }
elseif ($number[ocenka]!=$_POST[ocenka]) {
     $result = mysql_query("UPDATE ocenka_comment
     SET date='".date("Y-m-d H:i:s")."',ocenka='".$_POST[ocenka]."'
     WHERE comment_id='".$_POST[comment_id]."' and ip='".$ip_short."'"); }
}
}

if (is_numeric($_GET[comment_list]) and $_GET[comment_list]>0) {
if ($_GET[comment_list]>$count_list) $comment_list=$count_list;
    else $comment_list=$_GET[comment_list];
}
else $comment_list=1;
if ($comment_list==0) $comment_list=1;


$result = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url] ."' and moderation=1 and first_parent=0", $link);
$count_list=floor((mysql_num_rows($result)-1)/5)+1;

if (is_numeric($_GET[comment_list]) and $_GET[comment_list]>0) {
if ($_GET[comment_list]>$count_list) $comment_list=$count_list;
    else $comment_list=$_GET[comment_list];
}
else $comment_list=1;
if ($comment_list==0) $comment_list=1;

$result = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url] ."' and moderation=1 and first_parent=0 ORDER BY id desc LIMIT ".($comment_list*5-5).",5", $link);
$number = mysql_num_rows($result);
if ($number>0) {
$zapros='';
for ($n=1; $n<=$number; $n++) {
     $parents[$n]=mysql_fetch_array($result);
     $zapros.=$parents[$n][id].','.$parents[$n][id].',';
}
$zapros=substr($zapros, 0, -1);

$result = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url] ."' and moderation=1 and id IN(".$zapros.")  ORDER BY id desc", $link);
$result2 = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url] ."' and moderation=1 and first_parent IN(".$zapros.") ORDER BY id", $link);
$number = mysql_num_rows($result);


echo '<hr><div align="center" style="padding:3px; border-radius:5px;">
<u><b>Последние комментарии посетителей:</b></u><br>';


function parents($parent=0,$left=0) {
global $tags;

for ($i=0;$i<=count($tags[$parent])-1;$i++) {

$result_minus = mysql_query("SELECT sum(ocenka=1), sum(ocenka=0) FROM ocenka_comment WHERE comment_id='".$tags[$parent][$i][0]."' LIMIT 1");
$ocenka_com=mysql_fetch_array($result_minus);

if ($tags[$parent][$i][2]=='Administrator') $tags[$parent][$i][2]='<font color="#cc1111">Administrator</font>';
if ($tags[$parent][$i][6]==0) $tags[$parent][$i][6]=$tags[$parent][$i][0];

echo '<div align="right" style="margin:0px 0px 0px '.$left.'px;">';
echo '<br><table border="0" width="95%" style="border: 1px solid #4874a3;" bgcolor="#fffabc"><tr>';
echo '<td align="left" style="padding:5px 5px 5px 5px;">';
echo '<div id="m'.$tags[$parent][$i][0].'"></div><b>'.$tags[$parent][$i][2].'</b></td>';
echo '<td width="140">';
echo '<span style="font-size:12px;">('.$tags[$parent][$i][3].')</span></td>';
if ($tags[$parent][$i][2]!='<font color="#cc1111">Administrator</font>'){
echo '<td width="20" >';
echo '<form method="POST" action="'.$_SESSION[full_url].'#m'.$tags[$parent][$i][0].'">';
echo '<input type="hidden" name="comment_id" value="'.$tags[$parent][$i][0].'">';
echo '<input type="hidden" name="ocenka" value="1">';
echo '<input type="image" src="comm_up.gif" title="Хороший комментарий" align="middle">';
echo '</form></td>';
echo '<td width="5"><b>'.($ocenka_com[0]-$ocenka_com[1]).'</b></td>';
echo '<td width="20">';
echo '<form method="POST" action="'.$_SESSION[full_url].'#m'.$tags[$parent][$i][0].'">';
echo '<input type="hidden" name="comment_id" value="'.$tags[$parent][$i][0].'">';
echo '<input type="hidden" name="ocenka" value="0">';
echo '<input type="image" src="comm_down.gif" title="Плохой комментарий" align="middle">';
echo '</form>';
}
echo '</td></tr></table>';
echo '<table border="0" width="95%" style="border: 1px solid #eeeeee;"bgcolor="#f0fff0">';
echo '<td>';
if ($parent>0) {
$result = mysql_query("SELECT message FROM comment WHERE id='".$parent."'");
$message = mysql_fetch_array($result);
echo '<div>'.wordwrap(nl2br($message["message"]), 70, "\n", 1).'</div>';
}
if (($ocenka_com[0]-$ocenka_com[1])<0)
echo '<div><a href="javscript://" class="spoiler_link">Показать / скрыть плохой комментарий</a><div class="spoiler_body">'.wordwrap(nl2br($tags[$parent][$i][1]), 70, "\n", 1).'</div></div>';
else echo wordwrap(nl2br($tags[$parent][$i][1]), 70, "\n", 1);
echo '</td></tr></table>';
echo '<div align="center" class="open_hint" onClick="comm_on('.$tags[$parent][$i][0].','.$tags[$parent][$i][6].')">Ответить</div>';
     if (isset($tags[ $tags[$parent][$i][0] ])) parents($tags[$parent][$i][0],20);
     echo '</div>';
    
}
}
while ($comments=mysql_fetch_assoc($result)) $tags[(int)$comments['parent_id']][]=array((int)$comments['id'], $comments['message'], $comments['login'], $comments['date'], $comments['plus'], $comments['minus'], $comments['first_parent'] );
while ($comments=mysql_fetch_assoc($result2)) $tags[(int)$comments['parent_id']][]=array((int)$comments['id'], $comments['message'], $comments['login'], $comments['date'], $comments['plus'], $comments['minus'], $comments['first_parent'] );
echo parents().'</div>';
echo '<table style="border: 1px solid #4874a3;" cellspacing="2" cellpadding="0">';
echo '<tr align="center">';
  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list>1) echo '<a href="'.$_SESSION[mess_url].'">В начало</a>';
    else echo 'В начало';
  echo '</td>';
  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list>1) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.($comment_list-1).'">Назад</a>';
    else echo 'Назад';
  echo '</td>';

echo col_pages((int)$count_list, (int)$comment_list, 3);

  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list<$count_list) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.($comment_list+1).'">Вперед</a>';
    else echo 'Вперед';
  echo '</td>';
  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list<$count_list) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.$count_list.'">В конец</a>';
    else echo 'В конец';
  echo '</td>';
echo '</tr>';
echo '</table>';
}
else echo 'Комментарии отсутствуют!';
?>
<div id="hint" style="position:absolute; display: none;">
<?php echo '<form name="add_comment" method="POST" action="'.$_SESSION[full_url].'#last">'; ?>
<table border="0" style="border: 1px solid #4874a3; border-radius:8px;" bgcolor="#7799ee" cellspacing="4" align="center">
  <tr>
   <td colspan="2" style="cursor:pointer;" align="right"><font color="Lawngreen"><div id="close_hint"><b>Закрыть[x]</b></div></font>
    <?php
    $prov_cod=rand(100,980); $prov_cod_2=rand(1,19);

    echo '<textarea cols="65" rows="5" name="user_text" required>'.$_SESSION[comment_user_text].'</textarea>';
   echo '</td></tr><tr><td width="300">';

    echo '<b>Ваше имя: </b><input type="text" name="mess_login" maxlength="20" value="'.$_SESSION['name'].'" required>';

   echo '</td><td align="right">';
    echo '<b>'.$prov_cod.' + '.$prov_cod_2.' = </b>';
    echo '<input type="hidden" name="prov_summa" value="'.md5($prov_cod+$prov_cod_2).'">';
    ?>
    <input type="text" name="contr_cod" maxlength="4" size="4" required>
    <input type="hidden" name="parent_id" value="0">
    <input type="hidden" name="first_parent" value="0">
    <input type="submit" value="Отправить">
   </td>
  </tr>
</table>
</form>
</div>
</div>
  </td>
</tr>
</table>
<script type="text/javascript">
$('html').mousemove(function(e){
$('.open_hint').click(function(){
  $('#hint').fadeIn(700);
  $('#hint').offset({top:e.pageY+15, left:e.pageX-550});
  return false;
});
});
$('#close_hint').click(function(){
$('#hint').fadeOut(700);
return false;
});
</script>
<script type="text/javascript">
function comm_on(p_id,first_p) {
document.add_comment.parent_id.value = p_id;
document.add_comment.first_parent.value = first_p;
}
</script>
</body>
</html>
14.01.2014 20:18:47
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)

The following adjusting entries examples provide an outline of the most common adjusting entries.

LiveInternet
© Copyright 2011-2024 by UsefulScript.ru