Skip to content

Instantly share code, notes, and snippets.

View N-Porsh's full-sized avatar

Nikita Porshnjakov N-Porsh

  • Tallinn, Estonia
View GitHub Profile
@N-Porsh
N-Porsh / validation.js
Created June 7, 2020 09:12
Vanilla JS Reset-form validation
(function () {
let password = document.getElementById("password");
let confirmPass = document.getElementById("confirm_password");
let submit = document.getElementById("submit");
function isPasswordStrong() {
const pattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})/g;
return pattern.test(password.value);
}
@N-Porsh
N-Porsh / wait-for-it.sh
Created April 16, 2020 12:28
wait for loading db container
#!/bin/sh
echo "Waiting for postgres..."
while ! nc -z database 5432; do
sleep 0.1
done
echo "PostgreSQL started"
@N-Porsh
N-Porsh / .htaccess
Created December 14, 2015 13:45
htaccess
# Necessary to prevent problems when using a controller named "index" and having a root index.php
# more here: http://httpd.apache.org/docs/2.2/content-negotiation.html
Options -MultiViews
# Activates URL rewriting (like myproject.com/controller/action/1/2/3)
RewriteEngine On
# Prevent people from looking directly into folders
Options -Indexes
<?php
try {
$pdo = new PDO(
'mysql:host=localhost;dbname=test_database',
'username',
'password',
array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
@N-Porsh
N-Porsh / gist:0d56dd4d52747d7bd86b
Last active August 29, 2015 14:22
JavaScript: localStorage - cookies replacement
// thin wrapper around local-storage to avoid
// errors if the browser does not support it.
var globalVar.localStorage = {
set: function(key, value) {
if (!swarm.localStorage.canStore()) {
return null;
}
return window.localStorage.setItem(key, value);
},
@N-Porsh
N-Porsh / tabs.js
Last active August 29, 2015 14:11
simple jquery tabs
/*
<ul class='tabs'>
<li><a href='#tab1'>most viewed</a></li>
<li><a href='#tab2'>recent</a></li>
<li><a href='#tab3'>most commented</a></li>
</ul>
<div id='tab1'>
content 1111
</div>
<div id='tab2'>
@N-Porsh
N-Porsh / setGetCookie.js
Last active August 29, 2015 14:07
Cookies
$.setCookie = function(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
$.getCookie = function(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
@N-Porsh
N-Porsh / arr2json.php
Last active January 3, 2016 23:39
arr2jsonUTF8
<?php
function array2json($arr) {
$parts = array();
$is_list = false;
if (!is_array($arr)) return;
if (count($arr)<1) return '{}';
//Find out if the given array is a numerical array
$keys = array_keys($arr);
@N-Porsh
N-Porsh / gist:7909530
Created December 11, 2013 12:26
PHP: files to ZIP
<?php
if(isset($_GET['id']) && $_GET['id'] != ''){
$usr_dir = "upload/".$_GET['id']."/";
$error = "";
//checking if zip module loaded
if(extension_loaded('zip')){
$zip = new ZipArchive(); // подгружаем библиотеку zip
$zip_name = time().".zip"; // имя файла
if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE){
@N-Porsh
N-Porsh / uploader.js
Last active December 30, 2015 11:39
JavaScript: File uploader validator
<script>
function unique(arr) {
var obj = {};
for(var i=0; i<arr.length; i++) {
var str = arr[i];
obj[str] = true; // запомнить строку в виде свойства объекта
}
return Object.keys(obj); // или собрать ключи перебором для IE<9