• Алгоритм генерации deep links?

    flapflapjack
    @flapflapjack
    на треть я прав
    Robur, самому стало интересно.

    Оказывается это когда ты например тыкаешь по ссылке, а она ,если ты нажал её с телефона, редиректит тебя либо в приложение например редиректит в инстаграм, на определенный пост, открывая именно тот раздел в приложении, который хотел создатель ссылки) либо перекидывает тебя скачивать это приложение.

    Вообще тема мутная, инфы мало, гугление приводит только на платные сервисы.

    Но один герой на хабре раскрыл все карты:
    https://habr.com/ru/company/jugru/blog/352914/

    при чем судя о всему, такие сервисы как branch.io являются поставщиками услуг диплинкинга.
    Они регистрируют свой https домен обязательно с сертификатом - в какой то там базе apple, их домен добавляют сами владельцы приложений в логику приложения, и только потом начинается магия. То есть максимум что можно сделать, не имея миллиардов в кармане:

    1) написать диплинк сервис для своего личного приложения
    2) написать не диплинк сервис, а обычный url shortener, который тупо ккидает юзера на мобилную версию приложения, а дальше - похрен.
    3) на коленях просить крупные соц.сети, чтобы они сжалились над вами и добавили в логику своих приложений ваш диплинк движок.

    Этот вывод я сделал посмотрев половину видео по вышеуказанной ссылке на хабр. Вторую половину видео мне смотреть лень, сами смотрите.
    Ответ написан
  • Какие этапы при создании web сервиса?

    flapflapjack
    @flapflapjack
    на треть я прав
    Да нет, этих этапов достаточно. Ну тестировать еще будете потом.

    А собственно это что, просто тупо счетчик переходов? Еще и платный? О гадбл.
    Вам любой фрилансер это за пару дней сваяет. Тем более если этот дизайн уже готовый, и его достаточно стырить.

    А вообще:
    https://firebase.google.com/docs/dynamic-links/ - вот то же самое только нахаляву.
    Раньше этим занимался goo.gl от гугля, но они переделали проект в Firebase (ссылка выше).
    Ответ написан
    Комментировать
  • Что нужно, чтобы создать бота для браузерной игры?

    flapflapjack
    @flapflapjack
    на треть я прав
    Изучите для начала Python. Он гибкий, простой, имеет много библиотек.

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

    flapflapjack
    @flapflapjack
    на треть я прав
    Между MVC и "выдавать разные страницы не создавая файлов" огромная пропасть.
    Генерация динамических страниц никак не связана напрямую с MVC, нет. Это вообще основы PHP.

    Вы до MVC пока не ходите, вы хотя бы в процедурном стиле научитесь программировать.

    Ну а вопрос ваш связан скорее именно с роутерами:
    Допустим есть у вас скрипт index.php
    который выдаёт разное содержимое в зависимости от параметра $_GET['page']

    <?php
    include 'config.php';
    $db= new PDO($dsn,$user, $pass, $opt);
    $result=$db->prepare("SELECT content FROM table_name WHERE url=:url");
    $result->execute(array(":url" => $_GET['page']));
    $page=$result->fetchAll(PDO::FETCH_ASSOC);
    
    print $page[0]['content'];
    
    
    
    ?>


    подключаетесь к базе данных и вытаскиваете из БД нужную вам статью/страницу.

    вы можете попасть на разную страницу, обращаясь к одному и тому же скрипту -index.php, но с разным параметром GET:

    site.ru/index.php?page=index
    site.ru/index.php?page=contacts
    site.ru/index.php

    Но для того, чтобы превратить URL в нормальный вид, существует понятие ЧПУ - ЧеловекоПонятныйУрл.
    Для этого создается файл .htaccess (если сервер apache2)
    , и например с таким содержимым:

    RewriteEngine On
    RewriteRule ^([^/]*)\.html$ /index.php?page=$1 [L]


    Этот файл сообщает серверу, что при обращении к сайту site.ru/contacts.html вас направит на index.php?page=contacts.

    В итоге мы имеем единую точку входа на сайт - index.php, как вы и хотели.

    Далее тут разжёвывать не имеет смысла - это тема не для тостера, это основы основ.

    Гуглите:
    ЧПУ.

    И только после того, как научитесь работать с .htaccess и единой точкой входа, вы можете задуматься о роутерах, MVC и т.д.

    Если вас
    Ответ написан
    5 комментариев
  • Как последовательно передать данные со страниц методом POST?

    flapflapjack
    @flapflapjack
    на треть я прав
    подскажите хотя бы куда двигаться

    двигайтесь в сторону грамотной постановки вопроса.

    Вам это надо?

    dev.hozmagkomi.ru/test/toster/bred1/1.php

    1.php
    Это 1.пхп!
    <form action="2.php" method=post>
    Имя: <input type=text name=name><br>
    Мыло: <input type=text name=email><br>
    <input type=submit>
    </form>


    2.php
    Это 2.php!
    <form action="3.php" method=post>
    Вы проверьте, а то мало ли! Вы вводили вот чё:
    Имя: <input type=text name=name value="<?php echo $_POST['name']; ?>"><br>
    Мыло: <input type=text name=email value="<?php echo $_POST['email']; ?>"><br>
    <input type=submit value="Я фсё проверил, таарищшь начальник!">
    </form>


    3.php
    Это уже 3.php!!!<br>
    
    <?php echo $_POST['name']; ?><br>
    <?php echo $_POST['email']; ?>
    Ответ написан
    5 комментариев
  • Как получить данные js от вк?

    flapflapjack
    @flapflapjack
    на треть я прав
    Фёдор,
    <?php
    $a='{
    "response":
    	{"items":[
    	{"type":	"photo",
    	"source_id":111342022,
    	"date":1553194313,
    	"photos":
    		{
    		"count":10,
    		"items":[{
    		"id":456247001,
    		"album_id":257940624,
    		"owner_id":111342022,
    		"sizes":1}]
    		}
    		}]
    		}
    		}
    ';
    
    $b=JSON_decode($a);
    
    print "<pre>";
    var_dump($b->response->items[0]->source_id);
    Ответ написан
    1 комментарий
  • Как сделать чтобы ноут под Win 7 и айфон под iOS 12 друг-друга через Wi-Fi роутер видели по адресам 192.168.х.х?

    flapflapjack
    @flapflapjack
    на треть я прав
    Они и так видят друг друга по адресам 192.168.x.x

    Скачайте Net Analyzer на айфон и сами проверьте.

    5c9a0b4f2467d524585518.png
    Может вы имеете ввиду, что вы веб-сервер на компьютере не можете настроить, чтобы он с локальной сети сайт был виден?
    Ответ написан
    4 комментария
  • Как сделать всплывающие окно при нажатии на кнопку?

    flapflapjack
    @flapflapjack
    на треть я прав

    Но сейчас у вас начнётся - а как сделать красивше, и т.д.

    В общем если что, гугл: sweetalert
    Ответ написан
    1 комментарий
  • Как восстановить жесткий диск?

    flapflapjack
    @flapflapjack
    на треть я прав
    дак винда же ext4 не видит.
    Двигайте прям из линукса тома с помощью GParted или с винды - AOMEI partition assistant.

    Что нужно сделать, чтобы вернуть все, как было

    А что именно вы сделали то? Чем двигали разделы, с какой ОС? Вообще нифига не понятно.
    Ответ написан
  • Проблема с формой?

    flapflapjack
    @flapflapjack
    на треть я прав
    лейбл у инпута type=email ведет себя как надо, если мыло ввести правильное.
    Измените тип инпута на text, и всё.

    Либо придётся JS-ом, ибо с помощью CSS вы правильность email никак не проверите, кроме как так, как сделано у вас сейчас.
    Ответ написан
    Комментировать
  • Как сделать чтобы после "_" выводилось значение в PHP?

    flapflapjack
    @flapflapjack
    на треть я прав
    $a=explode("_", "297312816_456240895");
    echo $a[1];
    Ответ написан
    Комментировать
  • Label в input, как сделать?

    flapflapjack
    @flapflapjack
    на треть я прав
    Вы про placeholder что ли?
    Ответ написан
    1 комментарий
  • Куда развиваться радиотехнику-схемотехнику?

    flapflapjack
    @flapflapjack
    на треть я прав
    Изобретателем :)
    Скифосовский вон на ютубе и частотник себе сам спаял, и уже самолёт делает из запорожского движка. Прикольный тип.
    Ответ написан
    Комментировать
  • Где ошибка в коде?

    flapflapjack
    @flapflapjack
    на треть я прав
    elenasavchenko, плагин Validate дядя вася подключать будет?
    Работает там всё.
    Ага
    С вас полторашка разливного! )
    Ответ написан
    Комментировать
  • Не работает интернет в Linux. Как решить проблему?

    flapflapjack
    @flapflapjack
    на треть я прав
    Что за сетевуха - мы сами гадать должны?
    Какие сообщения при подключении?
    На сайте производителя сетевой карты или мат платы(если встроенная) - смотрели драйвер?
    Ответ написан
  • Как лучше делать модели, на статических методах или на объектах?

    flapflapjack
    @flapflapjack
    на треть я прав
    А как вы в статическом методе обратитесь к базе данных например? Прямо при вызове метода что ли передавать собрались? Не легче создать объект юзера, а потом получить в обычном методе this->id?
    Ответ написан
    7 комментариев
  • Не могу вывести данные из mysql через объекты?

    flapflapjack
    @flapflapjack
    на треть я прав
    Сергей
    спасибо, а возможно вы сможете подсказать тоже самое но уже в ООП?


    class DB {
    private $host;
    private $user;
    private $pass;
    private $db;
    private $connection;
    public function __construct($host,$user,$pass,$db)
    {
    $this->host=$host;
    $this->user=$user;
    $this->pass=$pass;
    $this->db=$db;
    }
    
    public function connect()
    {
    $this->connection = @new mysqli($this->host,$this->user,$this->pass,$this->db);
    $this->connection->set_charset('utf8');
    return $this->connection;
    }
    }
    
    
    class News {
    private $connection;
    public function __construct($connection)
    {
    $this->connection=$connection;
    }
    public function get_news()
    {
    $result_set = $this->connection->query('SELECT * FROM news');
    return $result_set->fetch_object();
    }
    }
    
    
    $db=new DB('host', 'un', 'pass', 'db');
    $connection=$db->connect();
    $news=new News($connection);
    
    $news_list=$news->get_news();
    
    
    var_dump($news_list);//операции с объектом, то бишь вывод и т.д. и всякие foreach()


    Изначально может показаться что кода стало больше, но при росте проекта это будет наоборот - короче.

    Вы так же можете использовать и процедурный стиль, но в каждую функцию придется передавать $connection, в ООП же - только классу.

    Кроме того в процедурном стиле у вас будет куча таких функций:
    get_news();
    get_user_id();
    get_id_by_email();
    get_user_id_by_news_id(); и т.д.

    При ООП же всё структурируется согласно классам,

    $news->get_user();
    $user->get_news();

    и т.д.
    Это не тема для тостера, это надо читать хотя бы про MVC
    Ответ написан
    3 комментария
  • Взлом или развод?

    flapflapjack
    @flapflapjack
    на треть я прав
    Может ли злоумышленник, получив данные о списках таблиц так же получить и содержимое этих таблиц?


    В зависимости от степени экранирования символов при фильтре какого-то из параметров.

    По сути, скорее всего инъекция была сделана именно на вашем сайте, следовательно запрос выполнялся от имени вашего пользователя, у которого есть все права на БД - следовательно может и удалять и читать любые записи.

    Нужно как-то отследить место SQL-инъекции.

    Я в этом не спец, но например можно посмотреть лог mysql на наличие строки SHOW DATABASES или SHOW TABLES, а так же по поиску слова UNION, коим часто пользуются при создании инъекций. Найдя в логах время исполнения данного запроса можно глянуть в access.log у апача запрошенный адрес сайта, который был запрошен в то же время, что и инъекция в SQL.

    Имея точное расположение скрипта можно поставить вставки функции для логирования $_SERVER['REQUEST_URI'] и определить что за запрос был сделан, и от этого плясать.
    Ответ написан
    1 комментарий
  • Почему загружается старая версия сайта в Яндекс браузере?

    flapflapjack
    @flapflapjack
    на треть я прав
    Я решаю эту проблему таким костылём:
    <link rel="stylesheet" href="/css/default.css?<?php echo rand(0,123231321);?>">


    добавляю рандомные цифры к CSS, и JS файлам, которые в стадии разработки я часто изменяю.

    Когда в продакшн запускаешь - можно убрать.
    Ответ написан
    Комментировать