Skip to content

Instantly share code, notes, and snippets.

Neil McGann nmcgann

  • UK
Block or report user

Report or block nmcgann

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@nmcgann
nmcgann / verify.js
Last active Feb 10, 2017
Javascript verify class based on using data atttibutes on the form inputs and submit(s). No jquery, just plain js (ES5).
View verify.js
/**
* JS form data verification routine. Uses data attributes on the field:
* "data-verify": regex pattern that must be true for no error.
* "data-error": error message.
* "data-options": options separated by "|". First is regex parameters i/g/m as per the RegExp constructor,
* second is inversion of the test if "not", or "req" if the test must pass and a non-empty field is
* not allowed (both req and not can be used if separated by a ";" or space). Third is the name of a special test function when
* a regex isn't sufficient to do the test. Test fn must be within ValidateForm (or added to the prototype).
* If an option is blank, it can just be left empty e.g. "|req" if there are no regex params, but data-verify
* field must be present so the field is recognised as needing verifying.
@nmcgann
nmcgann / install-cluster-client.config
Created Jan 13, 2016
AWS Elastic Beanstalk .ebextensions config to install Elasticache memcached cluster client (PHP 5.6)
View install-cluster-client.config
files:
"/home/ec2-user/install-cluster-client.sh":
mode: "000744"
owner: root
group: root
content: |
#!/bin/bash
#hide old ini
if [ -a /etc/php.d/50-memcached.ini ]
then
@nmcgann
nmcgann / Logger.php
Created Nov 23, 2015
Simple Logging class - logs to files only.
View Logger.php
<?php
/**
* Logger class.
* Logs to file and defaults to a /logs/ subdirectory under this script location
*
* This is a bit mickey-mouse as loggers go, but helpful.
*
*/
// ------------------------------------------------------------------------- //
@nmcgann
nmcgann / Dbpdo.php
Created Nov 23, 2015
PDO class to include timing and logging. Tested with mysql and mssql
View Dbpdo.php
<?php
/**
* dbpdo.php
*
* Wrapper class for PDO to handle connecting to different types of db (mssql and mysql).
* Also handles mssql on both windows and linux platforms by using sqlsrv and dblib pdo drivers.
* Adds a logging and timing facility for queries and prepared statements.
* A logging function can be passed to the constructor to capture all calls to the PDO routines.
*
* All normal PDO and PDOStatement functions can be used with no alterations.
@nmcgann
nmcgann / s3-signer-test.php
Last active Oct 9, 2015
Amazon S3 Version 4 API request signer script
View s3-signer-test.php
<?php
//TEST CODE
//Simple example of links to files in a privately accessible s3 bucket being authorised.
//If the link is followed directly a 403 error will be returned with an xml error page.
//Instead jquery catches the click and creates an authorisation for the request assisted by
//a server that holds the access keys. The region, bucket and key are extracted and then a
//server-side authorisation query string is requested, appended to the link href and then the
//file is requested from s3.
// Bucket needs CORS turning on (for GET) and s3:GetObject permission needs to be present.
?>
@nmcgann
nmcgann / mysql_backup.class.php
Last active Mar 17, 2017
PHP Class to dump a Mysql/Maria database to a string. Includes views, triggers, procedures and functions. (Improved!)
View mysql_backup.class.php
<?php
/*
* PHP backup class. Based on an old script updated to use mysqli_ routines.
* Extended and bugfixed - now handles NULL's, doesn't quote numbers, handles utf-8,
* creates multiple inserts and breaks to a new one after a defined number, creates gzip
* or zip files, generates foriegn key disable and table lock/unlock statements.
* Handles Views, Triggers, Procedures and Functions.
* Optionally removes DEFINER from views/procs/funcs and DB names from views.
*
* Thanks to Phil Rodgers (https://github.com/placeposition) for spotting the field type
You can’t perform that action at this time.