• Как можно обезопасить свой сайт от запросов такого вида?

    @alex1478
    1. Можно при загрузке переименовывать файлы, давая файлам названия наподобие d025a9501c8e4c95b614ef0a18796354.txt. Наиболее оптимальный вариант для статики.
    2. Можно отдавать пользователям файлы через php скрипт (или что там у вас): что бы запросы к файлам были вида example.com/download.php?file=d025a9501c8e4c95b614ef0a18796354. Обращение к файлам напрямую запрещаете средствами веб сервера.
    Ответ написан
    Комментировать
  • PHP backend, учебные материалы?

    anton_reut
    @anton_reut
    Начинающий веб-разработчик
    spoiler
    5da0c86cf2ca7273440925.png
    Ответ написан
    Комментировать
  • Можно ли играя в игры улучшить память?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    На вопрос нельзя точно ответить, потому что научные опыты в этой области ещё не проводились. Есть гипотеза, что игры могут улучшать кратковременную и рабочую память, но доказательств пока нет.

    Так что гипотетически память улучшить можно. А реальный ответ узнаем в ближайшие годы.
    Ответ написан
    Комментировать
  • Как правильно обернуть тег h2 ссылкой?

    wapster92
    @wapster92 Куратор тега CSS
    На данный момент можно в тег ссылки засовывать блочные элементы. А на будущее почему бы не пользоваться валидатором и не задавать глупых вопросов.
    Ответ написан
    Комментировать
  • Рефакторить или рерайтить?

    dmitriylanets
    @dmitriylanets
    веб-разработчик
    работает не трогай
    Ответ написан
    2 комментария
  • Рефакторить или рерайтить?

    gbg
    @gbg
    Любые ответы на любые вопросы
    У вас будет проблема с тем, что на имеющийся быдлокод у вас нет ТЗ и описания того, как это чудо должно работать - вам придется восстанавливать это из кода.

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

    Со стороны трудно оценить объем вносимых изменений - если это разовая работа, проще добавить в эту свалку костылей еще один и забыть как страшный сон.

    Иначе, вам придется заниматься рефакторингом через тестирование, обвешать это одоробло тестами и потихоньку фиксить, используя ванильную версию в качестве эталона.

    Полный рерайт - это, возможно, остановка каких-то процессов на время рерайта. Маловероятно, что это допустимо.
    Ответ написан
    Комментировать
  • Call to a member function get() on null?

    TommyV888
    @TommyV888 Куратор тега PHP
    -
    В массиве dataBase нет элемента с ключом $player->getName(), и по этому вы не можете вызвать метод get
    Ответ написан
    1 комментарий
  • Куда стоит пойти учиться новичку?

    deepblack
    @deepblack
    Посоветуйте, куда стоит пойти учиться и насколько это рентабельно

    Обучаться лучше самостоятельно, информации в открытом доступе валом.
    Желательно сразу начинать с англоязычных источников (документация по языку, фреймворку).
    Если нет мотивации, то займитесь чем нибудь другим (не разработкой) т.к. то что вы заплатите деньги ничего не гарантирует.
    Если вы идёте в IT за баблом, то впоследствии вы разочаруетесь.
    И конечно же научитесь гуглить и самостоятельно искать полезную информацию, просто незаменимый навык (подобные вопросы тут каждую неделю задают)
    Ответ написан
    Комментировать
  • Как защитить запрос от изменения?

    humiliation
    @humiliation
    Чем больше знаю - тем больше дурак
    если это только гет - то пусть гетит себе на здоровье. С лимитом на запросы, не более 20 в минуту, например. А на update-delete-create, конечно, проверка прав и CSRF.
    Ответ написан
    1 комментарий
  • Как удалять лишние записи из бд?

    kawabanga
    @kawabanga
    Поставьте прогорание токена на 20-30 минут. этого вполне достаточно. Достаточно записать текущее время в строке.
    А затем, любым удобным способом вычищайте устаревшие данные.
    Либо не удаляйте. как минимум, строка которая записана - это еще и согласие с правилами , и у вас есть дата этого соглашения.
    Ответ написан
    Комментировать
  • Как установить memcached для php 7.2 на centos?

    martin74ua
    @martin74ua
    Linux administrator
    Ответ написан
    Комментировать
  • Как разбирать чужой код?

    MvcBox
    @MvcBox
    Software Developer [C/C++/JS(for Node.js)/etc]
    Как разбирать чужой код?

    Документации почти нет

    Добро пожаловать в реальный мир ;)
    А если серьезно, то не существует какого-то определенного универсального алгоритма, который поможет разобрать код. Все сугубо индивидуально. Вам придется по крупицам восстанавливать ход мыслей того, кто это писал.
    Возможно ничего нового я для Вас не открыл, но как есть.

    #offtop
    как поступать в ситуации когда имея на руках только исходники библиотеки понять как она работает?

    Исходники - это еще большая роскошь) Некоторые успешно переписывают приложения имея на руках только скомпилированный бинарник без отладочной информации)
    Ответ написан
    2 комментария
  • Текстовый квест. Как улучшить?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Нужно использовать программирование.

    Соответственно, можно начать изучать Unity. Там же будет вам и аналитика, и монетизация, и многое другое из коробки.

    Для полноценной защиты квест должен быть онлайновым, и каждый шаг должен контролироваться сервером. Но не понятно, зачем это нужно делать для оффлайновой игры, ведь это сильно понижает удобство. Дайте людям читерить в синглплеере так, как они хотят. Да и много ли таких найдется, кто сможет это сделать? 1% игроков?
    Ответ написан
    Комментировать
  • Как добавить переменную к классу сlass N extends $n?

    VladimirAndreev
    @VladimirAndreev
    php web dev
    Никак, иерархия классов строится до этапа исполнения
    Ответ написан
    Комментировать
  • Проблема с checkboxList. Yii2?

    slo_nik
    @slo_nik Куратор тега Yii
    У Вас данные размеров хранятся не очень удобно.
    Пока можно сделать вот так.
    // Ваш статический метод в модели SizeOneHelper
        public static function getSizeList(): array
        {
            return [
                'S (55/56)',
                'M (57/58)',
                'L (59/60)',
                'XL (61/62)',
            ];
        }
    
    // если в $model->size данные хранятся в виде строки, то надо привести к массиву и передать в checkboxList()
    $select = explode(',', $model->size);
    echo $form->field($model, 'size')->checkboxList(SizeOneHelper::getSizeList(),[
       'item' => function($index, $label, $name, $checked, $value) use ($select){
          if(in_array($index, $select)){
             $checked = 'checked';
          }
          return Html::checkbox($name, $checked);
       }
    ])

    Но я бы не хранил это в виде строки. Скорей всего создал бы отдельную связующую таблицу, где хранил бы размеры и id товара.

    p.s. Сделал "на коленке", но если подумать, то можно и это улучшить.

    p.s.s. Для того чтобы выводился label checkbox в функцию передаётся нужный параметр в переменной $label. Используйте его и будет выводится название checkbox-a.
    return Html::checkbox($name, $checked, ['label' => $label]);


    p.s.s.s. В DetailVeiw можно вывести нужные данные таким образом
    // метод в модели SizeOneHelper
        public function getSizeName()
        {
            return ArrayHelper::filter(self::getSizeList(), explode(',',$this->size));
        }
    
    // в DetailView получаем строку по названиям размеров
    echo DetailView::widget([
      'model' => $model,
      'attributes' => [
         [
           'attribute' => 'size',
           'value' => function($model){
              return implode(',',$model->getSizeName());
           }
         ]  
      ]
    ]);


    p.s.s.s.s. Создайте дополнительный метод в модели SizeOneHelper
    public  function getSelectSizeList()
        {
            return explode(',',$this->size);
        }

    Метод getSizeName изменится на такой
    // метод в модели SizeOneHelper
     public function getSizeName()
        {
            return ArrayHelper::filter(self::getSizeList(), $this->getSelectSizeList());
        }


    Тогда вывод размеров может быть таким:
    // в checkboxList
    echo $form->field($model, 'size')->checkboxList(SizeOneHelper::getSizeList(),[
       'item' => function($index, $label, $name, $checked, $value) use ($model){
          if(in_array($index, $model->getSelectSizeList())){
             $checked = 'checked';
          }
          return Html::checkbox($name, $checked, ['label' => $label, 'value' => $value]);
       }
    ])
    Ответ написан
    8 комментариев
  • Существуют ли среди великих программистов люди начавшие кодить лет в 18 - 25?

    sim3x
    @sim3x
    Вам незачем оглядываться на кого-то
    Если вас прет от разработки, то вам все равно насколько вы велики
    Ответ написан
    Комментировать
  • Стоит ли идти в колледж на программиста (сфера игровой индустрии)?

    @Cheypnow
    Сам уходил в шарагу, в начале последнего курса уже начал работать.
    Иди и параллельно с учебой учи все что тебе нужно по конкретному направлению - сможешь и хоть какую-то корочку получить, которой для устройства на работу будет достаточно, и работать при этом начать раньше чем если бы после ВУЗа устраивался.
    Ответ написан
    Комментировать
  • Как найти фразу в html файле?

    ScriptKiddo
    @ScriptKiddo
    if 'некоторые слова' in html:
        print('Некоторые слова есть в HTML')
    else:
        print('Некоторых слов нет в HTML)
    Ответ написан
    2 комментария
  • Почему сразу не выпустят процессор с максимальным количеством транзисторов?

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

    @bakin2004
    Если работать с процессором, который будет иметь макс. кол-во транзисторов, то он будет жрать огромное кол-во ресурсов. Да и под каждую задачу будет оптимален свой процессор
    Ответ написан
    Комментировать