Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2012, 12:41   #11
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от nerv Посмотреть сообщение
Naive,

В связи с чем само название данного раздела уже не является правильным. На Node.js уже реализована часть функционала таких проектов, как вконтакте, яндекс.почта. Это не я говорю, а википедия
Наши бэк-енд тоже собираются на node.js & noSQL переходить. А названия разделов в принципе сделаны для упрощенного поиска тем, кто плохо разбирается в области — простое выделение языков с низким порогом вхождения. Да и в принципе плодить разделы типа "Перл" или "РоР" нецелесообразно — не думаю что у них будет большая популярность=)
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 19.06.2012, 13:44   #12
sugar1
Новичок
Джуниор
 
Регистрация: 19.06.2012
Сообщений: 2
По умолчанию

у node.js есть один фатальный недостаток -- обратная совместимость, пишешь под 0.6, тут бах обновился до 0.8 и уже регрессии вылазиют.
Имхо для асинхронной хрени есть и более удачные и стабильные вещи чем node.js, те же Tornado, EventMachine, AnyEvent и т.д.
sugar1 вне форума Ответить с цитированием
Старый 20.06.2012, 20:18   #13
Tapakan
 
Регистрация: 18.06.2012
Сообщений: 8
По умолчанию

Я рад, что все тут знают, что пхп обрабатывается на сервере а яваскрипт браузером. Только помощи так никто и не предложил. Я написал, что рейтинг на ява скрипте сделан, а не через ява скрипт передавать данные. Если бы кто-то действительно зашел на сайт и посмотрел вложенные файлы пхп не было бы этих лишних комментариев.
Код:
<? 
/* Конфигурация базы данных. Добавьте свои данные */
$dbOptions = array(
    'db_host' => 'localhost',
    'db_user' => '*******',
    'db_pass' => '********',
    'db_name' => '******l'
);

//Имя таблицы, в которой хранятся заметки
$table_name = 'articles';

//Подключаем класс для работы с базой данных
require "db.class.php";

// Соединение с базой данных
DB::init($dbOptions);

$use_cookie = true; //защита от накруток
$expires = 3600*24*31; //время жизни кук в секундах (сейчас установлено 31 день) 

if(isset($_POST['score']) && isset($_POST['vote-id'])){
    $page_id = intval($_POST['vote-id']);   
    $cookie_name = 'page_'.$page_id;
    
    if($use_cookie && isset($_COOKIE[$cookie_name])){
        
        $data['status'] = 'ERR';
        $data['msg'] = 'Вы уже голосовали за эту заметку';
    }
    else{
       
        DB::query('UPDATE '.$table_name.' SET vote = (vote*voters + '.floatval($_POST['score']).')/(voters + 1), voters = voters + 1 WHERE id = '.$page_id);
        if(DB::affected_rows() == 1){

            $data['status'] = 'OK';
            $data['msg'] = 'Спасибо. Ваш голос учтен.';
            if($use_cookie) setcookie($cookie_name,$page_id,time() + $expires);
        }
        else{        
            $data['status'] = 'ERR';
            $data['msg'] = 'Произошла ошибка';
        }
    }
}
else{   
    $data['status'] = 'ERR';
    $data['msg'] = 'Вы не передали нужные данные!';
}

echo json_encode($data);
?>
Код:
class DB {

    private static $instance;
    private $MySQL;

    private function __construct(array $dbOptions){
        $this->MySQL = @ new mysql($dbOptions['db_host'],$dbOptions['db_user'], $dbOptions['db_pass'],$dbOptions['db_name'] );
        if (mysql_connect_errno()) {
             throw new Exception('Ошибка базы данных.');
        }

        $this->MySQL->set_charset("utf8");
    }

    public static function init(array $dbOptions){
        if(self::$instance instanceof self){
            return false;
        }
        self::$instance = new self($dbOptions);
    }

    public static function getMySQLObject(){
        return self::$instance->MySQL;
    }

    public static function query($q){
        return self::$instance->MySQL->query($q);
    }

    public static function esc($str){
        return self::$instance->MySQL->real_escape_string(htmlspecialchars($str));
    }

    public static function insert_id($str){
        return self::$instance->MySQL->insert_id;
    }
	
    public static function affected_rows(){
        return self::$instance->MySQL->affected_rows;
    }
}
Просто прошу писать человека, который действительно хочет помочь. Проблема заключается в следующем, нет синхронизации с таблицей и эффект закрашивания не автоматический. Не прошу решать за меня проблему, просто помощь в совете где может таиться ее решение. В принципе, устроило бы даже кукиз без ип.

Последний раз редактировалось Tapakan; 20.06.2012 в 20:37.
Tapakan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Javascript - классы, они есть или их нету в Javascript? Kasper1 JavaScript, Ajax 3 05.03.2011 09:42
рейтинг alex118 HTML и CSS 1 10.01.2011 21:38
Рейтинг zumm Свободное общение 15 20.06.2010 10:42