
Опытный
 
Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006
Репутация: нет Всего: нет
|
такая проблема: есть такой код Код | $('#sort_name').live('click', function(event){ $('#contents').html('<center><img src=indicator.gif id=indicator> Сортируется</center>'); $.post('processing.php', {'page': '".$_GET[page]."', 'initialize': 'sort_name', }, function(data){ if(data==0) { $('#contents').html('<center>Ошибка сортировки</center>'); } else { $('#new_message').html(data); $('#save').text(''); $('#contents').html(''); } }); return false; });
|
processing.php Код |
<?php //Connect to databse $db = new PDO('mysql:host='.$mysql_connection_host.'; dbname='.$mysql_connection_base.'', $mysql_connection_user, $mysql_connection_password); $db->exec("SET NAMES UTF8"); $path = $_SERVER["DOCUMENT_ROOT"].DIRECTORY_SEPARATOR.'files'.DIRECTORY_SEPARATOR; $photo_path = $path.DIRECTORY_SEPARATOR.'photos'.DIRECTORY_SEPARATOR;
function index() { global $db; //Process session id if (isset($_POST["PHPSESSID"])) { session_id($_POST["PHPSESSID"]); } session_start(); //Check user id list($id, $password) = explode('|', base64_decode($_SESSION['iflycookie'])); //Processing $sql = $db->prepare("SELECT password, salt FROM users where id=:id"); $sql->bindParam(':id', $id, PDO::PARAM_INT); $sql->execute(); list($basepassword, $salt) = $sql->fetch(PDO::FETCH_NUM); $passwordhash = md5($basepassword.$salt); //If stored password is wrong if ($password != $passwordhash) { die("-1"); } }
function new_message($id) { global $db;
$user_page_id=$id; if(isset($_REQUEST['id'])) $user_page_id = $_REQUEST['id']; $page_user = 'userpage'; if(isset($_REQUEST['page'])) $page_user = $_REQUEST['page']; $forum = 0; if(isset($_REQUEST['id_topic'])) $forum = $_REQUEST['id_topic']; $paginator = 1; if(isset($_REQUEST['pages_id'])) $paginator = $_REQUEST['pages_id']; $paginator = $paginator*10-10; $messages = array(); $forums = array(); $sorts = array(); $sql_sort = $db->prepare("SELECT user_id, sort FROM sorts WHERE user_id=:user_id"); $sql_sort->bindParam(':user_id', $id, PDO::PARAM_INT); $sql_sort->execute(); $sorts = $sql_sort->fetchAll(); foreach($sorts as $sorts) { $sorts[sort]; } if($sorts[sort]=='name') { $sort='ORDER BY u.name DESC'; } elseif($sorts[sort]=='date') { $sort='ORDER BY w.date_send DESC'; } elseif($sorts[sort]=='rate') { $sort='ORDER BY w.rate DESC'; } else { $sort=''; } $sorts='ORDER BY w.rate DESC'; if($forum == 0) { $sql = $db->prepare("SELECT w.id, u.name, w.user_id as speaker, u.lastname, w.recipient_id,w.date_send as date,w.theme,w.message,w.state,w.procent as procents_message, u.procent as procents_user, w.pages, w.pre_message, w.rate FROM wall w, users u WHERE w.recipient_id=$user_page_id AND u.id=w.user_id AND w.pages='$page_user' AND w.id_topic='$forum' $sort LIMIT $paginator, 10"); $sql->execute(); } else { $sql = $db->prepare("SELECT w.id, u.name, w.user_id as speaker, u.lastname, w.recipient_id,w.date_send as date,w.theme,w.message,w.state,w.procent as procents_message, u.procent as procents_user, w.pages, w.pre_message, w.rate FROM wall w, users u WHERE w.recipient_id=$user_page_id AND u.id=w.user_id AND w.id_topic='$forum' AND w.pages='$page_user' $sort DESC LIMIT $paginator, 10"); $sql_forum = $db->prepare("SELECT DISTINCT * FROM forum WHERE user_id=$user_page_id"); $sql_forum->execute(); $forums = $sql_forum->fetchAll(); $sql->execute(); } $messages = $sql->fetchAll(); foreach($messages as $message) { $truedata = date("d.m.Y H:i", $message[date]); if($message[speaker]==$id) { $agregator = ' <div class="commentator commentator_gold">'; } else { $agregator= ' <div class="commentator commentator_white">'; } $result .=' <div class="pager"> </div>'.$agregator.'<div class="avatar"> <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner"> </span></a> </div> <div class="message"> <div class="top"><i> </i><u> </u><b> </b></div> <div class="middle"> <div class="user_info"> <div class="name">'; $result .= '<a href="?page=userpage&id='.$message[speaker].'">'.$message[name].' '.$message[lastname].'</a> <span class="date"> '.$truedata.' </span> </div>'; if($message[speaker]==$id) $result .=' '; else $result .='<div class="actions"> <a href="#content_block" id="cite" initialize="wall" pre_message="'.$message[message].'">Цитата</a> <a href="#contents" id="say" initialize="message" ls_recipient_id="'.$message[speaker].'">Ответить в лс</a> <a href="#contents" id="spam" var_initialize="spam" var_recipient_id="'.$message[speaker].'" var_procents_user="'.$message[procents_user].'" var_id_message="'.$message[id].'" var_procents="'.$message[procents_message].'" var_messages_send= "'.$message[message].'">Это спам</a></div> <div class="rate"> <a class="minus" href="" id="minus" minus_initialize="rate_minus" minus_recipient_id="'.$message[speaker].'" minus_messages_send="'.$message[message].'" minus_rate="'.$message[rate].'">-</a> <span><div id="rates">'.$message[rate].'</div></span> <a class="plus" href="" id="plus" pluse_initialize="rate_plus" pluse_recipient_id="'.$message[speaker].'" pluse_messages_send="'.$message[message].'" pluse_rate="'.$message[rate].'">+</a></div>'; $result .='</div> <div class="text">'; if($message[pre_message]<>"") { //ищем ссылки в цитатах $pos = strpos($message[pre_message], '[links = '); if($pos<>0) { $pos_del_start = strpos($message[pre_message], 0); $rest = substr($message[pre_message], $pos_del_start); $rest = substr($message[pre_message], $pos+9); $pos = strpos($rest, ' name = '); $url = substr_replace($rest, "", $pos); $pos = strpos($message[pre_message], ' name = '); $rest = substr($message[pre_message], $pos+7); $pos = strpos($rest, ']'); $name = substr_replace($rest, "", $pos); $pos_del_start = strpos($message[pre_message], '['); $rest = substr($message[pre_message], 0); $message[pre_message] = substr_replace($rest, "<a href=$url>$name</a>", $pos_del_start); } $result .= '<div class="cite"> <div class="img"></div> <cite>'.$message[pre_message].'</cite> <hr/> </div>'; }
//ищем ссылки в сообщении $pos = strpos($message[message], '[links = '); if($pos<>0) { $pos_del_start = strpos($message[message], 0); $rest = substr($message[message], $pos_del_start); $rest = substr($message[message], $pos+9); $pos = strpos($rest, ' name = '); $url = substr_replace($rest, "", $pos); $pos = strpos($message[message], ' name = '); $rest = substr($message[message], $pos+7); $pos = strpos($rest, ']'); $name = substr_replace($rest, "", $pos); $pos_del_start = strpos($message[message], '['); $rest = substr($message[message], 0); $message[message] = substr_replace($rest, "<a href=$url>$name</a>", $pos_del_start); } $result .= $message[message].'<br> </div> </div> <div class="bottom"><i> </i><u> </u><b> </b></div> </div> </div>'; //Отмичаем сообщения прочтенными $sql = $db->prepare("UPDATE wall SET wall.state='Y' WHERE wall.recipient_id=:user_id AND wall.state='N'"); $sql->bindParam(':user_id', $id, PDO::PARAM_INT); $sql->execute(); } echo $result; }
function sort_name($id) { global $db; $sql = $db->prepare("SELECT * FROM sorts s WHERE user_id=$id"); $sql->execute(); $sort = $sql->fetchAll(); $ready=0; foreach($sort as $user_id) { $ready++; } if($ready == 0) { $sql = $db->prepare("INSERT INTO sorts (user_id, sort) VALUES (:user_id, :sort);"); $sql->bindParam(':user_id', $id, PDO::PARAM_INT); $sql->bindParam(':sort', $_POST['initialize'], PDO::PARAM_STR); $sql->execute(); } else { $sql = $db->prepare("UPDATE sorts s SET s.sort='name' WHERE s.user_id=$id"); $sql->execute(); } new_message($id); if($sql->errorCode()=="00000") echo new_message($result); else echo 0; }
|
тут все работает, но после сортировки за место русских символов выводятся каляки баляки  После перезагрузки страницы все становиться нормально. где тут косяк?((
|