Rar! Пђs
ќ›t ’њ D" D" рЃ-°…і@0w ђҐ «Ё§ жЁп ўлў®¤ ¤аҐў®ўЁ¤ле Є®¬¬Ґв аЁ© 襬 Ў«®ЈҐ\moduls\comm.php Х…ђF8O 2K‚ђ 4@…ђНЂ` „ђB\0@Ђђ НЂђ ЂђHПЂђ ѓђ рЄw
//--------------ОБРАБОТЧИК КОММЕТАРИЕВ
$date_day = date("d");//Определяем день
$date_month = date("m");//Определяем месяц
$date_year = date("Y");//Определяем год
$date_time = date("H:i");//Определяем часы и минуты
$date_comm = $date_day."/".$date_month."/".$date_year." ".$date_time;//Склеим все переменные в одну
//получим дату для записи в формате день/месяц/год часы:минуты
//Определяем посланные переменные из формы
if(isset($_POST['id_comm']))$id_comm = $_POST['id_comm'];
if(isset($_POST['txt_comm']))$txt_comm = $_POST['txt_comm'];
if(isset($_POST['author_comm']))$author_comm = $_POST['author_comm'];
if(isset($_POST['email_comm']))$email_comm = $_POST['email_comm'];
if(isset($_POST['site_comm']))$site_comm = $_POST['site_comm'];
if(isset($_POST['code_comm']))$code_comm = $_POST['code_comm'];
if(isset($id_comm) & isset($txt_comm) & isset($author_comm))//Если посланные переменные определены как существующие
{
//Переводим html код (если есть) в каракозябры =)
//В общем то тут несколько лишних строк, но у меня паранойя, поэтому я проверяю ВСЕ переменные
$id_comm = htmlspecialchars($id_comm);
$txt_comm = htmlspecialchars($txt_comm);
//проверка кода
if($code_comm != "")//Если поле было заполнено
{
session_start();//открываем сессию
if(md5($code_comm) != $_SESSION['code'])$error_comm .= "Вы выбрали не ту картинку!|";//Если код неправельный
unset($_SESSION['code']);//уничтожаем код
session_destroy();//уничтожаем сессию
}
else $error_comm .= "Вы не подтвердили, что Вы человек|";//если поле не заполнялось
//проверка поля 'автор'
if($author_comm != "" AND $author_comm != "Автор*")//Если поле было заполнено
{
//проверчем корректность ввода имени, только русские и английские буквы, ни каких символов кроме - _ и пробела
if(!preg_match("/^[-_0-9a-zA-Zа-яА-Я ]+$/s",$author_comm))$error_comm .= "Не правильный формат поля 'Автор'|";
//поле не должно содержать более 25 символов
if(mb_strlen($author_comm) > 25)$error_comm .= "В поле 'Автор' слишком много символов|";
}
else $error_comm .= "Вы не заполнили поле 'Автор'|";//если поле не заполнялось
//проверяем заполняли ли поле текст
if($txt_comm == "" OR $txt_comm == "Введите текст*")$error_comm .= "Вы не заполнили поле 'Текст'|";
//проверка поля емайл
if($email_comm != "" AND $email_comm != "E-Mail* (не публикуется)")//если поле было заполнено
{
//проверяем на корректность ввода (по сути отсеиваем не нужные символы в переменной)
if(!preg_match("/^[-_a-zA-Z0-9]+@[-_a-zA-Z0-9]+\.[-_a-zA-Z]+$/s",$email_comm))$error_comm .= "Вы ввели некорректный E-mail|";
}
else $error_comm .= "Вы не заполнили поле 'E-mail'|";//если поле не заполнялось
//проверка адреса сайта
if($site_comm != "" AND $site_comm != "http://")//Если поле заполнили
{
//проверяем приблизительную корректность адреса (по сути просто отсеиваем не нужные символы в переменной)
if(!preg_match("/^http:\/\/[-_a-zа-я0-9.]+\.[a-zа-я]+$/s",$site_comm))$error_comm .= "Некорректно введенный адрес сайта|";
}
else $site_comm = "";//создаем пустую, безопасную переменную для записи в БД
if(!isset($error_comm))
{
//Избавляемся от кавычки
$id_comm = str_replace("'","'",$id_comm);
$txt_comm = str_replace("'","'",$txt_comm);
$txt_comm = str_replace("\n","
",$txt_comm);//Заменяем переносы строки на тег
//Добавляем сообщение в базу данных
$result_add_comm = mysql_query ("INSERT INTO comm (author,text,date_comm,blog,email,site)
VALUES ('$author_comm','$txt_comm','$date_comm','$id_comm','$email_comm','$site_comm')");
header("location: index.php?blog=$blog#bottom");//Перенаправляем пользователя
exit;//обратно к форме с комментариями
}
}
//--------------ОБРАБОТЧИК КОММЕТАРИЕВ
function comm($blog,$error)//функция вывода комментариев
{
$result_index = mysql_query("SELECT * FROM comm WHERE blog='$blog' ORDER BY id");//Выводим из базы данных все записи где blog равен ID поста
$myrow_index = mysql_fetch_array($result_index);
if($myrow_index != "")//Проверяем есть ли в базе данных записи
{//Если есть...
$sm_read = file("templates/comm.html");//...подключаем шаблон
$sm_read = implode("",$sm_read);//функция file() возвращаем массив, поэтому склеиваем его
$i = 0;
do//Цикл do while
{
$commMASS[$i] = array($myrow_index[id],//0
$myrow_index[author],//1
$myrow_index[email],//2
$myrow_index[site],//3
$myrow_index[text],//4
$myrow_index[date_comm],//5
$myrow_index[blog],//6
$myrow_index[comm]);//7
$i++;
}
while($myrow_index = mysql_fetch_array($result_index));
$comm = messCOMM(0,$commMASS,$sm_read,0);//функция формирования сообщений
}
else $comm = "
Комментариев нет, Вы будите первым =)
";//Если записей нет, то вывести это сообщение //------------------------------------------------- //--------------------------ФОРМА------------------ //------------------------------------------------- $form = file("templates/comm_form.html");//подключаем шаблон с формой $form = implode("",$form);//функция file() возвращаем массив, поэтому склеиваем его //Вывод ошибки if($error != "")//если есть ошибки { $error = explode("|",$error);//превращаем строку в массив $echoERROR .= "Обнаружены следующие ошибки:
";//заголовок for($i=0;isset($error[$i]);$i++)//цикл формирующий список ошибок { if($error[$i] != "")$echoERROR .= ">$error[$i]
";//ошибки } $form = str_replace("[_error]",$echoERROR,$form);//вывод ошибок на экран } else $form = str_replace("[_error]","",$form);//если ошибок нет, то удаляем код-слово //Вывод ошибки //капча include ("moduls/capcha.php"); $cods = capcha(); for($i=0;$i<4;$i++) { $form = str_replace("[_code".$i."]",$cods[$i][1],$form);//вставляем 4 кода в форму $form = str_replace("[_img".$i."]",$cods[$i][3],$form);//вставляем 4 изображения в форму if($cods[$i][5] == "true")$form = str_replace("[_q]",$cods[$i][4],$form);//вклеиваем вопрос в форму } //капча $form = str_replace("[_id]",$blog,$form);//вклеиваем id cтатьи в форму $comm .= $form; return $comm;//Выводим с генерированный html код } //----------------------------------------------------- function messCOMM($mess,$commMASS,$temp,$BC)//Функция формирования html кода пунктов { for($i=0;isset($commMASS[$i]);$i++) { if($commMASS[$i][7] == $mess) { $edd_tamp = $temp;//Так как на придется править шаблон, //то лучше его сохранить в отдельную переменную, иначе нам придется //пользоваться функцией file() чаще чем 1 раз, а это нагрузка на сервер //Замены идентификаторов на переменные из базы данных //узнаем пустая ли пеерменная которая хранит адрес сайта if($commMASS[$i][3] != "")$author = "".$commMASS[$i][1]."";//если не пустая формируем ссылку else $author = $commMASS[$i][1];//есл пустая, то просто сохраняем автора в переменной $style = $BC * 10;//расчет отступа от левого края в пикселях $edd_tamp = str_replace("[_style]",$style,$edd_tamp);//отступ от края, что бы был вид "дерева" $edd_tamp = str_replace("[_text]",$commMASS[$i][4],$edd_tamp);//Текст $edd_tamp = str_replace("[_author]",$author,$edd_tamp);//Автор статьи $edd_tamp = str_replace("[_date_b]",$commMASS[$i][5],$edd_tamp);//Дата размещения $edd_tamp = str_replace("[_email]",md5($commMASS[$i][2]),$edd_tamp);//закодированный email if($BC < 10)//максимальное количество вложенности комм 10 { $newBC = $BC + 1;//увеличиваем уровень вложенности $podcomm = messCOMM($commMASS[$i][0],$commMASS,$temp,$newBC);//перезапускаем функцию с новыми параметрами } else $podcomm = "";//принудительно вставляем пустоту в переменную, в которой должны хранится ответы на комм $edd_tamp = str_replace("[_podcomm]",$podcomm,$edd_tamp);//заменяем код слово на ответ к комментарию $comm .= $edd_tamp;// Склеиваем весь с генерированный код в одну переменную } } if(!isset($comm))return "";//если небыло сформирован html код то выводим пустоту else return $comm;//выводим html код } ?>д¶t ’ B B ЋGN…і@0{ ђҐ «Ё§ жЁп ўлў®¤ ¤аҐў®ўЁ¤ле Є®¬¬Ґв аЁ© 襬 Ў«®ЈҐ\templates\comm.html Х…ђF8O 2K‚ђ 4@…ђНЂ` „ђB\0@Ђђ НЂђ ЂђHПЂђ ѓђ р:q