![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Неактивный пользователь
Пол:
Регистрация: 14.06.2012
Сообщений: 2
Репутация: 0
|
Отправляется 2 раза, заносится 2 записи в БД и естественно 2жды выводится. Я не могу разобраться в чём проблема.В этом новичок.
вот скрипт Код:
$(document).ready(function(){
$(".gray").live("click", function(e) {
var name = $("#nameComment").val();
var addComment = $("#addComment").val();
if(typeof name === 'undefined') name='';
var comment = $("#textComment").val();
var post_url = $("#posturlComment").val();
var postO_url = $("#posturlOpenComment").val();
var dataString = 'nameComment='+ name + '&textComment=' + comment + '&posturlComment=' + post_url +'&posturlOpenComment=' + postO_url ;
if(post_url=='') {alert('Error')};
if(comment==='')
{
alert('Пожалуйста заполните все поля');
}
else
{
$("#ajaxComment").show();
$("#ajaxComment").fadeIn(400).html('<img src="/reader/comment/images/comment/ajax-bar.gif" align="absmiddle"> <span class="loading"></span>');
$.ajax({
type: "POST",
url: "",
data: dataString,
cache: false,
success: function(html){
if(html!=='ERR1' && html!=='ERR2' && html!=='ERR3' && html!=='ERR4') {
$("#allComment").append(html);
//$("ol#update li:last").fadeIn("slow");
$("#nameComment").val("");
$('#textComment').text("");
$("#textComment").focus();
$("#ajaxComment").hide();
}
else
{
$("#messComment").html('');
$("#messComment").show();
$("#ajaxComment").hide();
if(html=='ERR1')$("#messComment").append("Ошибка: Имя должно состоять более чем из 3 символов<br/>");
if(html=='ERR2')$("#messComment").append("Ошибка: E-Mail указан неверно<br/>");
if(html=='ERR3')$("#messComment").append("Ошибка: Отсутствует текст комментария<br/>");
if(html=='ERR4')$("#messComment").append("Ошибка: Не удается установить тип комментария. Попробуйте позже");
$("#messComment").fadeOut(3000);
}
}
});
}
e.preventDefault();
});
});
Код:
<?php
class Comments extends Controller_Base {
var $path = ''; // path to page on comments
var $table = 'comments'; // table comments
var $prefix = 'rche_'; // prefix table comments
var $dle = 'dle_';//prefix dle
var $dtable = 'users';//table users dle
var $event = '';
var $key = 'e34d9147f42016a32a9bab982492323547e121ce'; // secret key for ajax
var $login = false; // login user or email and name
var $user = array(); // user info if login
var $admin = false; // admin option
var $gravatar = false; // avatar from gravatar.com
var $regos = true;
function index () {
$this->event=@$_POST['eventComments'];
if(@$_GET['eventComments']=='del' and @$_GET['noajax']==1)$this->event=@$_GET['eventComments'];
if($this->event=='save') $status=$this->saveComments();
if($this->event=='del') $status=$this->delComments();
if($this->event=='edit') $status=$this->editComments();
if($this->event=='')$status=NULL;
return $status;
}
function itemComments($username,$date,$text,$img,$id,$autor=false, $userid,$moder) {
global $member_id,$is_logged,$moderate;
$text = $this->myutf8_substr2($text,0,103);
if($moder && !$moderate && ($member_id['user_group']==1||$member_id['user_group']==2||$member_id['user_group']==3||$member_id['user_group']==7||$member_id['user_group']==8)) $moder = '<span class="modComment" title="Не отмодерировано"> Не отмодерировано</span>';
//$reply='<a href="javascript://" rel="'.$id.'" class="replyComment" title="Ответить на комментарий: '.$username.'">Ответить</a>';
// if($autor or $this->admin)$edit=' | <a href="javascript://" rel="'.$id.'" class="editComment" title="Редактировать комметарий">Редактировать</a>';
// if($member_id['user_group'] == 1 or $member_id['user_group'] == 2) $del=' | <a href="http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'?id='.$id.'&passport='.$possport.'&noajax=1&eventComments=del" onclick="return true" rel="'.$id.'" passport="'.$possport.'" class="delComment" title="Удалить комментарий">Удалить</a>';
if($moderate){
$mod = '|<a href="http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'?id='.$id.'&mod=1" class="editComment" title="Отмодерировать комметарий">Отмодерировать</a>';
$del=' <a href="http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'?id='.$id.'&del=1" class="delComment" title="Удалить комментарий">Удалить</a>';
}
$uslink="http://".$_SERVER['HTTP_HOST']."/user/$username/";
$out='<div class="itemComment" id="itemComment-'.$id.'">
<div class="avatarComment">
<a href="'.$uslink.'" title="Смотреть профиль пользователя: '.$username.'">
<img src="'.$img.'" width="48" height="48" border="0" alt="Аватар пользователя: '.$username.'"/></a>
</div>
<div class="panelComment">
<a class="userComment" href="'.$uslink.'" title="Смотреть профиль пользователя: '.$username.'">'.$username.'</a>
<span class="dateComment" title="Дата, время комментария">'.$date.$moder.'</span>
</div>
<div class="bodyComment">
'.$text.'
</div>
<div class="footerComment">
'.$reply.$edit.$del.$mod.'
</div>
';
return $out;
}
function outComments() {
global $moderate;
echo '<div id="rcheComments">
<div id="allComment">';
$sql="SELECT {$this->prefix}{$this->table}.*, rche_users.photo, rche_users.username, rche_users.userID FROM {$this->prefix}{$this->table}
LEFT JOIN rche_users ON {$this->prefix}{$this->table}.user =rche_users.userID
WHERE {$this->prefix}{$this->table} .url='".$this->getUrl()."' ORDER BY {$this->prefix}{$this->table}.id ASC";
$allComm=$this->registry['DB']->getAll($sql);
if(count($allComm)>0):
// subcomments
foreach($allComm as $item):
if($item['reply']==0)$sortcomm[$item['id']]=$item;
if($item['reply']>0)
{
if(isset($path[$item['reply']]))
{
$str='$sortcomm';
foreach($path[$item['reply']] as $pitem):
$rep=$item['reply'];
$str.="[$pitem][sub]";
endforeach;
$str.="[{$item['reply']}][sub]";
$str.="[{$item['id']}]";
$str.='=$item;';
eval($str);
foreach($path[$item['reply']] as $pitem):
$path[$item['id']][]=$pitem;
endforeach;
$path[$item['id']][]=$item['reply'];
}
else
{
$sortcomm[$item['reply']]['sub'][$item['id']]=$item;
$path[$item['id']][]=$item['reply'];
}
}
endforeach;
$this->tree_print($sortcomm);
else: echo '<p align="center" style="color:#800000;">Комментариев нет</p>'; endif;
echo '</div>
<div id="messComment"></div>
<div id="ajaxComment"></div>';
echo $this->formComment();
}
function tree_print(&$a_tree) {
foreach($a_tree as $sub)
{
$this->outItem($sub);
echo "</div>";
}
}
function outItem($item) {
global $is_logged,$db;
$autor=false;
if (intval($item['moderate'])==0) $mod = true;
$userid=$item['user'];
$row = $db->super_query( "select * from " . PREFIX . "_users where user_id = $userid" );
$img=$SERVER['HTTP_HOST'].'/uploads/fotos/'.$row['foto'];
if ($img==$SERVER['HTTP_HOST'].'/uploads/fotos/'){
$img="http://uroboros-team.ru/templates/Mangani/images/noavatar.png";
}
$item['name'] = $row['name'];
echo $this->itemComments(
$item['name'],
$this->get_Date($item['date']),
html_entity_decode($item['comment']),
$img,
$item['id'],
$autor,
$userid,
$mod);
}
function saveComments() {
global $is_logged,$member_id;
$name = trim(strip_tags($_POST['nameComment']));
$text = PHP_slashes(htmlspecialchars(markhtml(trim(rawurldecode($_POST['textComment'])))));
$post_url = htmlspecialchars(trim($_POST['posturlComment']));
$urlOpen = htmlspecialchars(trim($_POST['posturlOpenComment']));
$error = false;
$img=$member_id['photo'];
if(strlen($text) <= 1 ){$error=true;$msg=3;}
if(strlen($post_url)>50 or strlen($post_url)<10){$error=true;$msg=4;}
if($error)
{
echo mb_strlen($text,'utf-8');
exit;
}
$date=$this->get_Date();
$time=time();
$mode = 1;
if (!in_array($member_id['group'], array(1,2,3,8,9))){
$sql="INSERT INTO {$this->prefix}{$this->table} (`reply`,`user`,`name`,`email`,`comment`,`date`,`url`,`pass`,`urlOpen`,`moderate`)
VALUE ('$replyComment','{$member_id['user_id']}','$name','$email','$text','$time','$post_url','$pass','$urlOpen','$mode')";
}
$this->registry['DB']->execute($sql);
if(intval($_POST['noAjax'])<>1):
echo $this->itemComments(
$name,
$date,
html_entity_decode($text),
$img,
$lastId,
true,
$user,
$mode);
exit;
endif;
}
function formComment()
{
global $user,$is_logged,$member_id;
$name='<tr><td class="section-two">'.$member_id['name'].'</td>';
$url=$this->getUrl();
$urlOpen=$this->getUrl(false, 'open');
$form = '<h3 id="newComment">Оставить свой комментарий </h3>';
if($this->regos && !$is_logged){
$form.= '<p align="center" color="red">Пользователи находящиеся в группе <strong>"Гости"</strong><br>
Не могут комментировать<br>
Пожалуйста <a href="http://'.$_SERVER['HTTP_HOST'].'index.php?do=register">Зарегистрируйтесь</a>
</p>';
}else{
$form.='<form action="" method="post" id="formComment">
<input name="noAjax" id="noAjax" value="0" type="hidden">
<input name="posturlComment" id="posturlComment" value="'.$url.'" type="hidden">
<input name="posturlOpenComment" id="posturlOpenComment" value="'.$urlOpen.'" type="hidden">
<table id="tableComment">
'.$name.'
<tr><td><textarea name="textComment" id="textComment" class="textareaComment"></textarea></td></tr>
</table>
<center><input value="Комментировать" name="submit" type="submit" class="gray"/></center>
</form>';
}
$form.='</div><p align="center"><a href="http://imarceting.com" style="font:11px tahoma;color:#999;text-decoration:none;" target="_blank">© Marceting</a></p>';
return $form;
}
function getUrl($explode=false, $open = '') {
$url=$_SERVER["REQUEST_URI"];
if($this->admin==true) {
$u=explode('?',$url);
$e=explode('&',$u[1]);
$i=0;
foreach($e as $item)
{
$i++;
$data=explode('=',$item);
if($data[0]=='pass') continue;
$newQuery.=$item;
if($i<count($e))$newQuery.='&';
$newQuery='?'.$newQuery;
if(substr($newQuery, -1)=='&')$newQuery=substr($newQuery, 0, strlen($newQuery)-1);
}
$url="{$u[0]}{$newQuery}";
}
if($explode)
{
$url=explode('?',$_SERVER['REQUEST_URI']);
$url=$url[0];
}
if($open=='open')return urlencode($url);
return md5($url);
}
function outModerate(){
global $is_logged,$member_id,$db;
if ($is_logged){
if($db){
if($member_id['user_group'] == 1 || $member_id['user_group'] == 2 || $member_id['user_group'] == 3){
$id_comm = intval($_GET['id']);
$a_url = "http://".$_SERVER['HTTP_HOST']."/reader/moderate.php";
if($_GET['del']==1){
$sql="DELETE FROM {$this->prefix}{$this->table} WHERE id = '$id_comm' LIMIT 1";
$this->registry['DB']->execute($sql);
header('Location: '.$a_url);
}
if($_GET['mod'] == 1){
$sql = "UPDATE {$this->prefix}{$this->table} set moderate = '1' WHERE id = '$id_comm' " ;
$this->registry['DB']->execute($sql);
header('Location: '.$a_url);
}
echo '<div id="rcheComments">
<h3 class="titleComment">Комментарии ожидающие модерации</h3>
<div id="allComment">';
$sql="SELECT {$this->prefix}{$this->table}.* FROM {$this->prefix}{$this->table} WHERE {$this->prefix}{$this->table}.moderate = '0' ORDER BY {$this->prefix}{$this->table}.id ASC";
$allComm=$this->registry['DB']->getAll($sql);
if(count($allComm)>0):
foreach($allComm as $item):
if($item['reply']==0)$sortcomm[$item['id']]=$item;
endforeach;
$this->tree_print($sortcomm);
else: echo "Комментариев ожидающих модерации нет";
endif;
echo '</div>
<div id="messComment"></div>
<div id="ajaxComment"></div>';
}
else {
die ("Вашего ранга недостаточно");
}
}
else {
die ("Соединение с БД не установлено");
}
}
else {
die ("Вы не вошли под учётной записью");
}
}
function get_Date($shtamp='') {
if($shtamp=='')$shtamp=time();
$MonthNames=array("Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря");
$date = date('d',$shtamp).' '.$MonthNames[date('n',$shtamp)-1].' '.date('Y',$shtamp).'г, '.date('H',$shtamp).'ч '.date('i',$shtamp).'мин';
return $date;
}
function len_utf($stren){
return preg_replace('/[^\s]{20}[^\s]+/', '', $stren);
}
function myutf8_substr2($str,$from,$len){
# utf8 substr
return mb_substr($str,$from,$len,'utf-8');
}
}
?>
|
|
|
|
| Реклама: |
|
|
#2
|
|||||||||||||||||||||||
|
Постоялец
![]() ![]() ![]() Пол:
Регистрация: 02.07.2009
Сообщений: 393
Репутация: 79
|
Вместо
попробуй Код:
return false; + скобки не считал но, по-моему, нужно вынести это перед последним "})". но это не точно...
__________________
Каждый человек, которому вы ответили на форуме "гугл в помощь" - потенциальный "возвращенец" в винды. (ц) Последний раз редактировалось Alan2006; 15.06.2012 в 17:18.. |
|||||||||||||||||||||||
|
|
|
|
|
#3
|
|
Неактивный пользователь
Пол:
Регистрация: 14.06.2012
Сообщений: 2
Репутация: 0
|
Код:
$(document).ready(function(){
|
|
|
|
|
|
#4
|
|||||||||||||||||||||||
|
Постоялец
![]() ![]() ![]() Пол:
Регистрация: 02.07.2009
Сообщений: 393
Репутация: 79
|
А вот это зря. В зависимости от браузера/платформы могут начаться косяки... Хотя как знаешь....
__________________
Каждый человек, которому вы ответили на форуме "гугл в помощь" - потенциальный "возвращенец" в винды. (ц) |
|||||||||||||||||||||||
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Windows не грузится с первого раза | eutanatos | Microsoft Windows | 20 | 16.05.2013 14:25 |
| Что отправляется на urs.microsoft.com | AbayKa | Скорая помощь | 1 | 15.01.2009 17:28 |
| Почта не отправляется | evgenn | Скорая помощь | 8 | 18.07.2008 05:51 |
| Компьютер включается не с первого раза. | Лока | Архив | 11 | 09.04.2008 01:17 |
|
|