Skip to content

Instantly share code, notes, and snippets.

View evan4's full-sized avatar
:electron:
The sky's the limit

Ivan Dedov evan4

:electron:
The sky's the limit
  • Tashkent, Uzbekistan
  • 05:39 (UTC +05:00)
  • LinkedIn in/evan4mc
View GitHub Profile
@evan4
evan4 / app.js
Created February 28, 2023 10:26
app.js
$(function ($) {
"use strict";
// нахожу элемент с классом loading
const loading = $('.loading');
// нахожу мета тег с именем csrf-token и беру его значение в атрибуте content
const token = $('meta[name="csrf-token"]').attr('content')
// отслеживаю клики по ссылкам с классом delete-brand
// которые выгдядят <a href="#" class="delete-brand" data-id="3">
$('.delete-brand').on('click', function(e){
@evan4
evan4 / normalizeUrl.js
Created February 9, 2023 06:03
add protocol to url address
const normalizeUrl = (url) => {
const urlType = url.startsWith('https://');
if (urlType !== 'https://') {
return `https://${url}`;
}
return url;
}
const res = normalizeUrl("google.com");
console.log(res)
<?php
function password_renerate(int $chars, int $res_ammount)
{
if ($chars === 0) {
throw new \RangeException("Длина пароля должна быть больше 0");
}
if ($res_ammount === 0) {
throw new \RangeException("Количество результатов должно быть больше 0");
}
@evan4
evan4 / Gateway.txt
Created April 26, 2022 12:15
Gateway
1) строка 7
Метод getInstance, где происходит соединение с БД нужно вынести в отдельных класс а не мешать с классом User
2) строки 21-23
Переменные $dsn, $user, $password нужно задать константами и вынести в отдельных файл настроек Или использовать файл .env для этих же целей
3) строка 24
Нет проверки на ошибку при соединении
4) строка 37, 63
В sql запросе нет фильтрации входящих данных.
4) строка 38, 64
Хотя используют подготовленный запрос, нет безопаной подстановки переменных в execute и bindParam
@evan4
evan4 / Manager.txt
Created April 26, 2022 11:26
Manager file mistakes
Manager
1) строка 7
Именовать константы нужно в верхнем регистре
2) строка 16
Имя переменной $ageFrom в методе getUsers совпадает с именем аргумента данного метода
Нет проверки равенства аргумента 0 или отрицательному числу
3) строка 28
Нет проверки на isset и !empty массива $_GET['names']
Нет проверки что это массив, а не строка
4) строка 29
@evan4
evan4 / cond.vue
Created December 1, 2021 05:41
cond
switch (dictionary_data.value_source) {
case 'DICT':
if(dictionary.use_values){
}
if(dictionary.use_koef){
}
@evan4
evan4 / disctionaries.php
Created November 30, 2021 07:44
disctionaries
$data_parameters = DB::table('data_parameters')
->select('data_parameters.id', 'data_parameters.name', 'data_parameters.groupname',
'data_parameters.group_alias', 'data_parameters.parameter_type', 'data_parameters.value_source',
'data_parameters.operation_act', 'data_parameters.operation', 'data_parameters.repeatable',
'data_parameters.scope', 'data_parameters.visible_on', 'data_parameters.order_no',
'data_parameters.error_text', 'data_parameters.dictionary_id',
)
->where([
['data_parameters.company_id', $owner->company_id],
['data_parameters.isactive', 1],
@evan4
evan4 / footer.html
Created November 4, 2021 04:23
Bootstrap footer at the bottom of the page
@evan4
evan4 / Region.vue
Created August 6, 2021 16:16
Region
<template>
<div>
<h2 class="h2">Выберите ваш регион</h2>
<form class="mt-3" @submit.prevent="sendPhone" v-if="countries.length > 0">
<transition name="fade">
<div class="mb-3">
<label for="country" class="form-label">Страна</label>
<Multiselect
v-model="countryId"
@evan4
evan4 / best_rates.sql
Created July 20, 2021 06:22
best_rates
select r.currency_code, round(min(r.sell),2) as sell,
round(max(r.buy),2) as buy
from rate_ru r
where (r.date_json = CURDATE()) and r.exchanger_id <> r.exchanger_id in (select id
from exchanger_ru e
where (e.centralbank = 0 or e.centralbank is null))
group by r.currency_code order by r.currency_code