• Как укрепить знания Node.js?

    @SergeyZelensky-Rostov
    Доработать чат, сделать приватные чаты, личные сообщения, историю и т.д. Желательно делать без использования фреймворков, больше опыта почерпаешь
    Ответ написан
    Комментировать
  • Почему топовые сайты не используют адаптивную верстку/дизайн?

    @SergeyZelensky-Rostov
    Потому что иногда адаптив не панацея, и приходится делать полноценную моб.версию, банально оптимизация, у того же вк, не подгружается в моб.версии куча лишней информации, у некоторых есть моб.приложения, поэтому адаптив не актуален
    Ответ написан
    Комментировать
  • Нужна ли captcha в мобильном приложении?

    @SergeyZelensky-Rostov
    нет не нужна, существуют, почитайте про двухфакторную аутентификацию
    Ответ написан
    Комментировать
  • Веб сервер аномайзер который генерирует веб страниц в зависимости от такого по какому домену к нему обращаются. Реально?

    @SergeyZelensky-Rostov
    Ставите nginx и самое простое что мне пришлов голову делаете для каждого домена свой конфиг файл вида
    server{
    listen 80;
    server_name domain1.ru;
    location / {
      proxy_pass http://domain1.ru;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $phost;
    }
    }

    проверить к сожалению сейчас не могу, но по идее работать должно
    Ответ написан
    6 комментариев
  • Обратиться к локальному ресурсу извне?

    @SergeyZelensky-Rostov
    Статический ip нужен, на него привязать http-сервер
    Ответ написан
    4 комментария
  • Как установить редирект на сайте в .htaccess?

    @SergeyZelensky-Rostov
    Очень сильно достали с такими вопросами на которые за 1 минуту ответ в гугле отыскать можно
    4-я ссылка, но там еще читать надо , если сильно трудно то вот кусок кода
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html|htm)\ HTTP/
    RewriteRule ^(.*)index\.(php|html|htm)$ $1 [R=301,L]
    Источник: http://www.imbf.org/vebmaster/htaccess-primery-redirektov.html
    Ответ написан
    Комментировать
  • Сколько нужно памяти на VPS для связки Java+MySQL?

    @SergeyZelensky-Rostov
    Берите 1gb не ошибетесь, плюс на большинстве VPS ее можно докупить потом
    Ответ написан
  • Что не так с запросом?

    @SergeyZelensky-Rostov
    Написано же некорректное имя таблицы , пишите просто без `wert`,и у вас прям не дыра,а дырище для выполнение sql-инъекции, используйте PDO или Mysqli и фильтруйте входные данные
    UPD: Поддерживаю Иван Корюков так как вы делаете делать не стоит
    сделайте таблицу users
    CREATE TABLE `users` (`ID` char(255) not null, `username` char(255), `Page` char(255), `Class` char(255),`Top` float,`Left` float, PRIMARY KEY(`ID`))

    и пишите в нее все что вам надо, не стоит плодить кучу таблиц

    вот код в котором ваш вариант работает
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    </head>
    <body>
    	<form action="" method="POST">
    		<input type="text" name="user">
    		<input type="submit" value="submit">
    		<?php 
    		$user = $_POST['user'];
    		$w = "CREATE TABLE `".$user."` (`ID` char(255) not null, `Page` char(255), `Class` char(255),`Top` float,`Left` float, PRIMARY KEY(`ID`))";
    		$link = mysql_connect('localhost', 'root', '');
    		mysql_select_db('test-new',$link);
    		echo mysql_query($w);
    		
    
    			
    
    		?>
    	</form>
    </body>
    </html>
    Ответ написан
  • Сборку которую я собрала нормальная?

    @SergeyZelensky-Rostov
    Кулер не подходит под сокет, SSD я бы побольше взял, по поводу видео-карт, и бп подсказать не могу.
    термопасту использовал такую, хотя может и с кулером норм идти,
    Ответ написан
  • Include class наследование, в чем проблема?

    @SergeyZelensky-Rostov
    Вы пытаетесь создать экземпляр класса до его объявления

    <?php
       class a {}
       class b extends a {}
       $a = new b;
       exit;
    Ответ написан
    1 комментарий
  • Каким образом можно исправить Ошибку в /functions.php?

    @SergeyZelensky-Rostov
    <?php
    /**
    * Функции шаблона (function.php)
    * @package WordPress
    * @subpackage your-clean-template
    */
    
    function typical_title() { // функция вывода тайтла
    global $page, $paged; // переменные пагинации должны быть глобыльными
    wp_title('|', true, 'right'); // вывод стандартного заголовка с разделителем "|"
    //bloginfo('name'); // вывод названия сайта
    $site_description = get_bloginfo('description', 'display'); // получаем описание сайта
    if ($site_description && (is_home() || is_front_page())) //если описание сайта есть и мы на главной
    echo " | $site_description"; // выводим описание сайта с "|" разделителем
    if ($paged >= 2 || $page >= 2) // если пагинация была использована
    echo ' | '.sprintf(__( 'Страница %s'), max($paged, $page)); // покажем номер страницы с "|" разделителем
    }
    
    register_nav_menus(array( // Регистрируем 2 меню
    'top' => 'Верхнее', // Верхнее
    'bottom' => 'Внизу', // Внизу
    'orange-menu' => 'Меню на оранжевой полоске'
    ));
    
    add_theme_support('post-thumbnails'); // включаем поддержку миниатюр
    set_post_thumbnail_size(300, 200); // задаем размер миниатюрам 250x150
    add_image_size('big-thumb', 400, 400, true); // добавляем еще один размер картинкам 400x400 с обрезкой
    
    register_sidebar(array( // регистрируем левую колонку, этот кусок можно повторять для добавления новых областей для виджитов
    'name' => 'Колонка слева', // Название в админке
    'id' => "left-sidebar", // идентификатор для вызова в шаблонах
    'description' => 'Обычная колонка в сайдбаре', // Описалово в админке
    'before_widget' => '', // разметка до вывода каждого виджета
    'after_widget' => "\n", // разметка после вывода каждого виджета
    'before_title' => '', // разметка до вывода заголовка виджета
    'after_title' => "\n", // разметка после вывода заголовка виджета
    ));
    
    class clean_comments_constructor extends Walker_Comment { // класс, который собирает всю структуру комментов
    public function start_lvl( &$output, $depth = 0, $args = array()) { // что выводим перед дочерними комментариями
    $output .= '
    ' . "\n";
    }
    public function end_lvl( &$output, $depth = 0, $args = array()) { // что выводим после дочерних комментариев
    $output .= "
    \n";
    }
    protected function comment( $comment, $depth, $args ) { // разметка каждого комментария, без закрывающего !
    $classes = implode(' ', get_comment_class()).($comment->comment_author_email == get_the_author_meta('email') ? ' author-comment' : ''); // берем стандартные классы комментария и если коммент пренадлежит автору поста добавляем класс author-comment
    echo ''."\n"; // родительский тэг комментария с классами выше и уникальным id
    echo ''."\n"; // элемент с таким id нужен для якорных ссылок на коммент
    echo get_avatar($comment, 64)."\n"; // покажем аватар с размером 64х64
    echo 'Автор: '.get_comment_author()."\n"; // имя автора коммента
    echo ' '.get_comment_author_email(); // email автора коммента
    echo ' '.get_comment_author_url(); // url автора коммента
    echo ' Добавлено '.get_comment_date('F j, Y').' в '.get_comment_time()."\n"; // дата и время комментирования
    if ( '0' == $comment->comment_approved ) echo 'Ваш комментарий будет опубликован после проверки модератором.'."\n"; // если комментарий должен пройти проверку
    comment_text()."\n"; // текст коммента
    $reply_link_args = array( // опции ссылки "ответить"
    'depth' => $depth, // текущая вложенность
    'reply_text' => 'Ответить', // текст
    'login_text' => 'Вы должны быть залогинены' // текст если юзер должен залогинеться
    );
    echo get_comment_reply_link(array_merge($args, $reply_link_args)); // выводим ссылку ответить
    echo ''."\n"; // закрываем див
    }
    public function end_el( &$output, $comment, $depth = 0, $args = array() ) { // конец каждого коммента
    $output .= "\n";
    }
    
    
    function pagination() { // функция вывода пагинации
    global $wp_query; // текущая выборка должна быть глобальной
    $big = 999999999; // число для замены
    echo paginate_links(array( // вывод пагинации с опциями ниже
    'base' => str_replace($big,'%#%',esc_url(get_pagenum_link($big))), // что заменяем в формате ниже
    'format' => '?paged=%#%', // формат, %#% будет заменено
    'current' => max(1, get_query_var('paged')), // текущая страница, 1, если $_GET['page'] не определено
    'type' => 'list', // ссылки в ul
    'prev_text' => 'Назад', // текст назад
    'next_text' => 'Вперед', // текст вперед
    'total' => $wp_query->max_num_pages, // общие кол-во страниц в пагинации
    'show_all' => false, // не показывать ссылки на все страницы, иначе end_size и mid_size будут проигнорированны
    'end_size' => 15, // сколько страниц показать в начале и конце списка (12 ... 4 ... 89)
    'mid_size' => 15, // сколько страниц показать вокруг текущей страницы (... 123 5 678 ...).
    'add_args' => false, // массив GET параметров для добавления в ссылку страницы
    'add_fragment' => '',	// строка для добавления в конец ссылки на страницу
    'before_page_number' => '', // строка перед цифрой
    'after_page_number' => '' // строка после цифры
    ));
    
    }
    
    ?>

    теперь должно заработать
    Ответ написан
    Комментировать
  • Кому продавать сайты?

    @SergeyZelensky-Rostov
    Никому, только вам.
    Давайте рассмотрим пример с компанией, которая производит бутылки, у них есть оптовые покупатели, но объем производства вырос и надо искать новых потребителей, первое что им пришло в голову реклама через интернет. Потребовался сайт!
    1) Изначально это должна быть реклама (SEO) -
    2)Сайт с ежемесячной оплатой 2000р - зачем если они закажут разработку и будут платить потом за хостинг 100рублей в месяц, а в случае конфуза на сайте есть знакомый программист Вася который починит.
    То есть тут тоже -
    3) Каким образом вы делите сайты на ценовые сегменты, вы можете сделать сайт за 1000 а кто то тоже самое за 10000, у вас должна быть ставка на час(адекватная , не надуманная ), а от нее уже приблизительно считайте стоимость и делайте скидки.
    То что цена вашей работы не превышает 20000р. это и плюс так как вы можете сделать сайт за 15000. когда студия XXX попросила 45000.
    Ответ написан
  • Как добавляются Alt к картинкам в HTML редакторе?

    @SergeyZelensky-Rostov
    Лучше это сделать на клиенте, и отсылать готовые данные
    Ответ написан
    Комментировать
  • Существуют ли реальные конкуренты на сегодняшний день у 1С-Битрикс?

    @SergeyZelensky-Rostov
    Я тоже склоняюсь к modx, но по-хорошему, делать на битрикс (терпеть не могу этот монолит говнокода) , люди то деньги на лицензию потратили
    Ответ написан
    2 комментария
  • Почему припой не ложится на керамический паяльник?

    @SergeyZelensky-Rostov
    Вы перегреваете жало, на форумах много шлака пишут, но есть и дельные советы вот статья попробуйте сделать как там написано
    Ответ написан
    2 комментария
  • Выводит модальное окно температуру в КЕЛЬВИНАХ, как мне перевести в Цельсий, может кто подскажет?

    @SergeyZelensky-Rostov
    цельсий = кельвин - 273.15
    если я правильно понимаю и строка выводит температуру res.weather[0].main , то
    pt>
        function initMap() {
            var map = new google.maps.Map(document.getElementById('map'), {
                zoom: 6,
                center: {lat: 49.00, lng: 32.00}
            });
    
            var modal = document.getElementById('modal'),
                res,
                markerCoord,
                marker,
                markersArray = [],
                infowindow,
                contentString,
                xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
    
            google.maps.event.addListener(map, 'click', function (e) {
    
                markerCoord = {lat: e.latLng.lat(), lng: e.latLng.lng()};
                makeMarker();
    
                // Get ajax call to get weather info
                xmlhttp.onreadystatechange = function() {
                    if (xmlhttp.readyState == XMLHttpRequest.DONE ) {
                        if (xmlhttp.status == 200) {
                            res = JSON.parse(xmlhttp.responseText);
                            openModal(res);
                        }
                        else if (xmlhttp.status == 400) {
                            console.log('There was an error 400');
                        }
                        else {
                            console.log('something else other than 200 was returned');
                        }
                    }
                };
    
                xmlhttp.open("GET", "http://api.openweathermap.org/data/2.5/weather?lat=" + markerCoord.lat + "&lon=" + markerCoord.lng + '&apiKey=05d1a9582076e6fecf5c7a3a363b8328', true);
                xmlhttp.send();
            });
    
            // Make clear all old markers and add new one
            function makeMarker() {
                for (var i in markersArray) {
                    markersArray[i].setMap(null);
                }
                markersArray.length = 0;
    
                marker = new google.maps.Marker({
                    position: markerCoord,
                    map: map,
                    title: 'Weather here'
                });
                markersArray.push(marker);
            }
    
            function openModal(res) {
                contentString = '<div id="content">'+
                        '<div id="siteNotice">'+
                        '</div>'+
                        '<div><b>Place: </b><span id="place"> ' + res.name + '</span> </div>'+
                        '<p><b>Weather:</b> <span id="weather">' +Math.round( res.weather[0].main - 273.15 )+ '</span></p>'+
                        '<p><b>Temp:</b> <span id="temp">' + res.main.temp +'</span>&#176 K</p>'+
                        '<p><b>Wind speed:</b> <span id="wind">' + res.wind.speed + '</span> ms</p>'+ 
                        '<p><b>Humidity:</b> <span id="humidity">' + res.main.humidity + '</span>%</p>'+ 
                        '</div>';
    
                infowindow = new google.maps.InfoWindow({
                    content: contentString
                });
    
            </pre>    infowindow.open(map, marker);
            }
        }
    </script>
    Ответ написан
  • Как получить ответ после отправки сообщения по WebSocket?

    @SergeyZelensky-Rostov
    у вас есть консоль node.js делайте в коде сервера console.log и смотрите ошибки
    Ответ написан
  • Как выделить активный элемент меню треугольником?

    @SergeyZelensky-Rostov
    .navbar-toggle.navbar-left {
    	float: left !important;
    	margin-left: 10px !important;
    }
    .navbar-header .nav-collapsed {
    	margin-right: 10px !important;
    }
    .navbar-header .nav-collapsed li {
    	display: inline-block !important;
    }
    .navbar-nav>.active a{position:relative;}/***!!!!!***/
    .navbar-nav>.active a:before {
    	content: '';
    	width: 0px;
    	height: 10px;
    	border-left: 6px solid transparent;
    	border-right: 6px solid transparent;
    	border-bottom: 10px solid #fff;
    	display: block;
    	position: absolute;/***!!!!!***/
    	top:10px;/* отступ сверху**/
    	left: 10px;/* отступ слева**/
    }

    если правильно вас понял, то так
    Ответ написан
    Комментировать