• Авторизация через соц. сети с помощью sdk небезопасна (android). Как должен выглядеть алгоритм на сервере?

    tomnolane
    @tomnolane
    профессиональный разработчик
    мей би... сделать так, чтобы все сравнения (ID) проходили не в андроид приложении? а на самом сайте? И вообще, всю процедуру сделать так, чтобы андроид передаёт только специальные запросы (например в формате json) на сайт, а на самом сайте идёт всё остальное (проверка, подключение и прочие алгоритмы)? В приложении единственное, что должно - это "методика" (например API) общения с сайтом (без каких-либо хранений подключений к БД). И в зависимости от полученных результатов сайт - передаёт те или иные сообщения(ответы) в приложение.
    Ответ написан
  • PHP-скрипты выполняются последовательно?

    tomnolane
    @tomnolane
    профессиональный разработчик
    php выполняется последовательно (если вы конечно, не используете дополнительные потоки).
    Чтобы произошло то, что вы написали - нужно, чтобы вызов функции удаления (в php) выполнилась ДО функции получения данных (где ключ, по которому вы получаете данные один и тот же при использовании запроса на удаление и последующего вызова). Пример: удаляете запись под id=5. И сразу хотите получить запись под этим же id. Тогда в этом случае - данные просто не подгрузятся в html разметку.

    Если пользователь получил какие-то данные с БД, и во время этого какие-то записи были удалены - у него(пользователя) ничего не изменится, пока он не перезагрузит/перезайдёт на эту же страницу.

    И как этого избежать?

    удалять/получать записи не по "фиксированному" ключу, а по ключу, который вы получаете напрямую с БД (как правило это id, который должен быть "уникальным", т.е. иметь сво-во автоинкриминтации)
    Ответ написан
    Комментировать
  • Как посмотреть статистику посещения группы в фейсбуке?

    tomnolane
    @tomnolane
    профессиональный разработчик
    сторонними точно не получиться (никак).
    только внутренними вещами, на подобии Graph API Explorer

    п.с. пример
    Ответ написан
    Комментировать
  • Найти сумму элементов расположенных между 1 и 2 отрицательными элементами?

    tomnolane
    @tomnolane
    профессиональный разработчик
    глаза разбегаются и появляются много слов, начинающих с "почему?" и "зачем это..."
    я опущу комментарии некоторые и просто дам вам очень простой способ, как через while
    Найти сумму элементов расположенных между 1 и 2 отрицательными элементами

    //допустим, в ниже переменных вы тем или иным способом уже получили какие-то данные
     double[] val1 = {-13.2, -14.8, 23, 0, -2.1, -6};
                double[] val2 = { -18.8, -11.2, 13, 0, -4.5, -2 };
                double sum = 0;
                int temp = 0;
                int temp2 = 1;
    
                //между массивами c одинаковым индексом
                while (sum == 0)
                {
                    if (val1[temp] < 0 && val2[temp] < 0)
                    {
                        sum = val1[temp] + val2[temp];
                    }
                    temp++;
                }
                Console.WriteLine("Сумма: " + sum);
    
                sum = 0; temp = 0;
                //между массивами c разным индексом
                while (sum == 0)
                {
                    if (val1[temp] < 0)
                    {
                        sum += val1[temp];
                        bool yeap = false;
                        while (yeap == false)
                        {
                            if (val2[temp2] < 0) { sum += val2[temp2]; break; }
                            temp2++; 
                        }
                        break;
                       
                    }
                    temp++;
                }
                Console.WriteLine("Сумма: " + sum);
    
    
                //1) если даны два массива с перемешанными данными и нужно найти
                //у каждого массива свои отрицательные числа и сложить (1 и 2-ой)
                sum = 0; temp = 0; temp2 = 0;
                double[] val3 = { -13.2, -14.8, -23, 0, -2.1, -6 };
                double[] val4 = { 2, -11.2, 13, 10, -4.5, 5 }; 
                
                //для 1 массива
                while (temp2 < 2)
                {
                    if (val3[temp] < 0)
                    {
                        sum += val3[temp];
                       temp2++;
                    }
                    temp++; 
                }
                Console.WriteLine("Сумма первых двух отрицательных чисел у массива val3: " + sum);
    
                sum = 0; temp = 0; temp2 = 0;
                //для 2 массива (аналогично)
                while (temp2 < 2)
                {
                    if (val4[temp] < 0)
                    {
                        sum += val4[temp];
                        temp2++;
                    }
                    temp++;
                }
                Console.WriteLine("Сумма первых двух отрицательных чисел у массива val4: " + sum);
    
                //2) если даны два массива с перемешанными данными и нужно найти
                //1 отрицательное число у первого массива со вторым отрицательным числом у второго массива
                sum = 0; temp = 0; temp2 = 0;
                int temp3 = 0;
                while (temp2 < 1 || temp3 < 2)
                {
                    if (val3[temp] < 0 && temp2 == 0)
                    {
                        sum += val3[temp];
                        temp2++;
                    }
    
                    if (val4[temp] < 0 && temp3 < 2)
                    {
                        if(temp3 == 1) { sum += val4[temp]; }
                        temp3++;
                    }
    
                    temp++;
                }
                Console.WriteLine("Сумма первых двух отрицательных чисел у массивов val3(1 отрицательное) и у val4(2 отрицательное): " + sum);


    п.с. рекомендую поощрять людей, которые вам помогают (судя по вашему "портфолио" - вы не особо используете кнопки "отметить решением" и "нравится", а ведь даже кошке доброе слово приятно)
    Ответ написан
    Комментировать
  • Где найти примеры парсеров данных на C#?

    tomnolane
    @tomnolane
    профессиональный разработчик
    Ответ написан
    Комментировать
  • Где найти много материала(плюшек) по фронтенд разработке?

    tomnolane
    @tomnolane
    профессиональный разработчик
    много материала(плюшек)

    плюшки можно найти в пятёрочке)
    по фронтенд разработке?

    тут
    и тут
    и тут
    вообщем гуглите хабрахабр - там полно интересного и полезного
    Ответ написан
    2 комментария
  • Как на сайте имитировать щелчёк мыши по кнопке, а после этого получить новуй страницу и записать её html в переменную?

    tomnolane
    @tomnolane
    профессиональный разработчик
    сразу быстро не ответишь.. есть несколько вариантов и вам рекомендую начать с самого простого:
    посмотреть какие запросы отправляются при нажатии на кнопку и этот запрос воссоздать через HttpWebRequest и HttpWebResponse:

    string urlAddress = "http://google.com";
    
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress);
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    
    if (response.StatusCode == HttpStatusCode.OK)
    {
      Stream receiveStream = response.GetResponseStream();
      StreamReader readStream = null;
    
      if (response.CharacterSet == null)
      {
         readStream = new StreamReader(receiveStream);
      }
      else
      {
         readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
      }
    
      string data = readStream.ReadToEnd();
    
      response.Close();
      readStream.Close();
    }


    или так:
    using System.Net;
    
    using (WebClient client = new WebClient())
    {
        client .QueryString.Add("ключ", "значение"); //для get
        string htmlCode = client.DownloadString("http://somesite.com/index.html");
    }
    
    //post запрос:
    string url = "http://site.com/";
    
                using (var webClient = new WebClient())
                {
                    // Создаём коллекцию параметров
                    var pars = new NameValueCollection();
    
                    // Добавляем необходимые параметры в виде пар ключ, значение
                    pars.Add("ключ", "значение");
    
                    // Посылаем параметры на сервер
                    // Может быть ответ в виде массива байт
                    var response = webClient.UploadValues(url, pars); 
                }


    если не удастся так сделать, то выход через COM библиотеку MSHTML (для этого добавьте её "references" -> "COM" -> «Microsoft HTML object library»
    далее using mshtml;
    тут пример использования

    где полученный html вы передаёте в
    HTMLDocument doc = new HTMLDocument();
                    IHTMLDocument2 doc2 = (IHTMLDocument2)doc;
                    doc2.clear();
                    doc2.write(//тут html-код (string));
     
                    IHTMLDocument3 doc3 = (IHTMLDocument3)doc2;
                    IHTMLElement btns = doc3.getElementById("YouId or ne YouId");

    далее находите кнопку:
    IHTMLElementCollection buttons = btns.all;
     
                    foreach (IHTMLElement element in buttons )
                    { 
                            element.click(); 
                     }


    далее опять парсим страницу.
    (п.с.с. примерно так)

    можно через webbrowser выполнить javascript
    тык и тык
    Ответ написан
  • Как с API OK.ru получить ссылку на веб страницу пользователя?

    tomnolane
    @tomnolane
    профессиональный разработчик
    этот метод
    28798b19e6aa4bffa489f7a20665e4da.JPG
    п.с. если у вас есть uid и нужен лишь url, достаточно приписать https://ok.ru/profile/ + uid
    Ответ написан
    Комментировать
  • Хочу перейти на Linux, какой дистрибутив выбрать?

    tomnolane
    @tomnolane
    профессиональный разработчик
    mint, ubuntu - не ошибёшься
    п.с.
    каждая жаба хвалит своё болото...
    ИМХО (от себя): использую Kali для тестирования своих сайтов/программ

    п.с.с. наверно любой дистрибьютив (основной, который вы перечислили) - способен для тех целей, которые вы себе поставили. Те, дистрибьютивы которые я указал - для вас будут наиболее "лёгкими" в освоении. Главное - чтобы у вас работал интернет и google/yandex и желание искать там всё, что вам не понятно (а лучше и быстрее - посмотреть на ютубе видеоуроки по основам этих дистрибьютивов)
    п.с.с.с. освоение особо много времени не потребует, хотя конечно будет не привычно. Но, чуть-чуть потерпев вы найдёте для себя как плюсы, так и минусы. Из плюсов, которые лично мне нравятся - менее требовательны к компьютеру/железу + очень многое можно найти в интернете + развиваешься.
    Из минусов - непривычно + некоторые для WINDOWS программы нельзя использовать в linux (хотя есть иногда примерные аналоги), хотя без Kali второй ОС я себе не представляю себя как программиста.

    хороший отличный manual по linux (в частности mint)
    Ответ написан
    6 комментариев
  • Почему не работает анимация?

    tomnolane
    @tomnolane
    профессиональный разработчик
    $(document).ready(function() {
    var forAnim = $("#third");
      forAnim.animate({backgroundColor: '#000000'}, 500);
    });


    либо так:
    $(document).ready(function() {
    var forAnim = $("#third");
      forAnim.animate({'background-color': '#000000'}, 500);
    });
    Ответ написан
    Комментировать
  • Правильно ли я понял, что если осилить C#, то..?

    tomnolane
    @tomnolane
    профессиональный разработчик
    1. Можно будет писать игры (Unity)?
    2. Создавать веб-сайты (asp.net)? linux + nginx + mono сойдёт для продакшена?
    3. Создавать десктоп приложения?
    4. И мобильные приложения (Xamarin)?


    0. в целом да (возможно доп. понадобятся python и unity)
    1.
    Создавать веб-сайты (asp.net)
    да.
    linux + nginx + mono сойдёт для продакшена
    не уверен
    2. Да, более чем. Единственное - нужно будет определиться, для каких ОС приложения. Т.е. если для XP то создавать (и использовать С#4 или 5 точно не помню, но уж точно не c#7) и .Net Framework 4.0. Если для 7-ки и выше, то .Net Framework 4.5 (желательно не выше) и C#5. Если для 8-ки и выше, то .Net Framework 4.6 и выше и С#7
    3. Опять же в принципе да, но не всё легко и гладко будет (у xamarin свои заморочки не связанные с С#)

    вот доп. инфа
    Ответ написан
    Комментировать
  • Почему echo не хочет работать?

    tomnolane
    @tomnolane
    профессиональный разработчик
    вы используете подход как javascript для php. PHP при загрузки страницы выполняет свои все функции/методы (которые были прописаны). После чего уже ничего не делает (пока страницу не перезагрузите). а javascript - это "клиентский" язык программирования, позволяющий создавать скрипты, которые встраиваются в HTML-страницы и выполняются в браузере посетителя страницы. PHP - "серверный язык" который выполняется только на сервере. Соответственно, так вызвать как вы хотите никак не получиться. Нужно встроить скрипт javascript в страницу для ваших целей.
    Ответ написан
  • Реально ли взломать RAR с помощью kali-linux?

    tomnolane
    @tomnolane
    профессиональный разработчик
    тык
    тык
    тык
    и тык
    реально (относительно, зависит от сложности пароля)

    что возможен взломать зашифрованную архив только с kali linux

    не только через kali
    Ответ написан
    Комментировать
  • Есть ли функции с управляемым контекстом?

    tomnolane
    @tomnolane
    профессиональный разработчик
    *тут взрыв мозга*
    можно короче, и по сути - без размышлений?
    п.с. лучше покажите код которые сейчас, и что хотите в итоге - хотя бы словами в самом коде, если хотите чтобы вам помогли

    upd

    чем код "проще" && меньше && без заморочек, тем он = лучше.
    Как вы описали в комментарии - при нажатии на какую-нибудь клавишу с клавиатуры - меняется значение key очень удобно и прагматичнее. В любом случае, вам нужно задавать || указывать условия для key ... и способов много, как можно реализовать. Хоть используя рандом.
    Не совсем понятно по поводу "смысловой нагрузки" ключа... в коде должны быть только те вещи, которые используются, либо "понапихать" всякого, чтобы для ревёрсиров было тяжелее его понять. Key (если нужен) можно задавать хоть через switch или по timer'у или через if и по сути, это не так важно, нежели действительно его потребность.

    я бы сделал (для себя) примерно так:
    if (Input.GetKeyDown (KeyCode)) {
    KeyFlag=true;
    }
    else if (Input.GetKeyUp (KeyCode)) {
    KeyFlag=false;
    //или через switch
    
    if(KeyFlag==false) {
     // тут код, когда <b>key</b> = false
    }
    else {
      // тут код, когда <b>key</b> = true
    }

    просто, не заморочено и легко понять/отлаживать.
    Ответ написан
    3 комментария
  • Сервер для приложение в вк?

    tomnolane
    @tomnolane
    профессиональный разработчик
    что за сервер? точнее что под этим имеете ввиду? Сайт? - т.к. игры используют фреймы - а фреймы берутся с сайта (вашего). Приложение?? для компьютера или телефона?? Если комп, то опять же на сайте размещаете программу клиент, которую скачивают и пользуются. Сама программа может работать как напрямую с вк так и через ваш сайт(сервер). Для телефона - создали приложение. кинули его в плей гугл/апп стор, его скачивают и дальше как с программой - либо через вас запросы идут, либо напрямую

    п.с. если приложение(игра) в виде фрейма - используйте то, на чём умеете работать. Вы же делаете на своём сайте(сервере) и ВК пофигу, что подгружать. Фрейм и в Африке фрейм. Главное https.
    Ответ написан
    7 комментариев
  • Путь имеет недопустимую форму?

    tomnolane
    @tomnolane
    профессиональный разработчик
    вот корректный шаблон, который работает
    Image image1 = Image.FromFile("c:\\FakePhoto1.jpg");

    проверьте правильность ABS_FromFile() - возможно некорректно указан

    п.с. допустимые форматы: BMP, GIF, JPEG, PNG, TIFF
    п.с.с. 99,9% вы указали не полный(либо не правильный) путь к файлу, либо сокращённый путь ("FakePhoto1.jpg" к примеру). Если последнее, то он пытается найти в рабочем каталоге процесса.. (спасибо Толстый Лорри )
    Ответ написан
  • Как сменить кодировку используя mssql?

    tomnolane
    @tomnolane
    профессиональный разработчик
    mysqli_set_charset($connection, "utf8");

    либо
    SQLSRV_PHPTYPE_STRING('UTF-8')

    смотрим
    Ответ написан
    Комментировать
  • Как использовать домашний интернет на расстоянии?

    tomnolane
    @tomnolane
    профессиональный разработчик
    купить усиливающее устройство практически нереально (начнём с того, что всех родных и соседей из дома выгнать придётся от излучения...)
    дешевле и проще выбрать другого оператора. (не реклама) лично пользуюсь ТЕЛЕ2 и очень доволен (в плане интернет + цена)
    Ответ написан
  • Чтобы отнималась цифра?

    tomnolane
    @tomnolane
    профессиональный разработчик
    float lyboe_4islo = (float)Console.ReadLine(); //ввод, правда без проверки - число или нет
    
    float money = 9447.50f - lyboe_4islo;
    switch (RusOperator)
    {
    case "МТС":
    {
    Console.WriteLine("Ваш оператор МТС");
    Console.Write("Сумма пополнение счета телефона:  " + money);
    Console.ReadLine();
    break;
    }
    case "Теле2":
    {
    Console.WriteLine("Ваш оператор Теле2");
    Console.Write("Сумма пополнение счета телефона:  " + money);
    break;
    }
    case "Билайн":
    {
    Console.WriteLine("Ваш оператор Билайн");
    Console.Write("Сумма пополнение счета телефона:  " + money);
    break;
    }
    case "Мегафон":
    {
    Console.WriteLine("Ваш оператор Мегафон");
    Console.Write("Сумма пополнение счета телефона:  " + money);
    break;
    }
    }


    проверку можно сделать так:
    bool proverka = false;
    float lyboe_4islo;
    while(proverka == false)
    {
       try{
    lyboe_4islo = (float)Console.ReadLine();
    if(lyboe_4islo .GetType() == "System.Single" && lyboe_4islo != null) //System.Single == alias float
    {
    proverka = true;
    }
    }
    catch{
    //заглушка
    }
    
    }


    upd
    из комментариев проверка от Станислав Силин
    float lyboe_4islo;
    while (!float.TryParse(Console.ReadLine(), out  lyboe_4islo));
    Ответ написан
  • Реализация CR4 на C#?

    tomnolane
    @tomnolane
    профессиональный разработчик
    посмотрите на строчки.... у себя в коде...
    byte[] ByteCrypt = ASCIIEncoding

    string strout = UTF8Encoding

    byte[] pass = ASCIIEncoding.Unicode.GetBytes(TBpass.Text);
    RC4 encoder = new RC4(pass);
    string textCrypt = TBtext.Text;
    byte[] ByteCrypt = ASCIIEncoding.Unicode.GetBytes(textCrypt);
    byte[] result = encoder.Encode(ByteCrypt, ByteCrypt.Length);
    string strout = ASCIIEncoding.Unicode.GetString(result, 0, result.Length); // UTF8Encoding поменять на ASCIIEncoding
    TBtext.Text = strout;


    п.с. не тестил... но по нему у вас разная кодировка...

    п.с.с. в вашей ссылке на сайт(статью) кусок кода:
    byte[] key = ASCIIEncoding.ASCII.GetBytes("Key");
    
    RC4 encoder = new RC4(key);
    string testString = "Plaintext";
    byte[] testBytes = ASCIIEncoding.ASCII.GetBytes(testString);
    byte[] result = encoder.Encode(testBytes, testBytes.Length);
    
    RC4 decoder = new RC4(key);
    byte[] decryptedBytes = decoder.Decode(result, result.Length);
    string decryptedString = ASCIIEncoding.ASCII.GetString(decryptedBytes);


    нигде не смешиваются кодировки ASCIIEncoding и UTF8Encoding (а у вас в коде смешиваются)
    Ответ написан
    Комментировать