Home Page
Projects > Other Web Scripts
Projects > Other Web Scripts
Search:
RABiD BUNNY FEVER
K.T.K

Warning: you do not have javascript enabled. This WILL cause layout glitches.
Other Web Scripts Thumbnail
Other Web Scripts
Completed
Any simple web scripts (PHP or JavaScript) that can be plugged in elsewhere
Rating: 5 (Website stuff is kind of the low end rung of the programming spectrum IMO, but eh.)
Project Time: 2003-Ongoing: 25
Languages: JavaScript, PHP
Requirements: Web browser and/or PHP server
Downloads: Downloads information available in contents section (See any updates below for prior versions)
Sections: Information, Content, Concepts, Updates, Comments
Information
A menagerie of web base scripts. Besides the pluggable ones, there are also informational based ones like the date and character converters.
See content section for downloads.
Content
Libraries
AJAX Library v1.0.1: An AJAX (Asynchronous JavaScript and XML) library for communication between JavaScript and HTTP Servers.
Click here for documentation
  • function GetURL
    • Definition: This function calls a web address through AJAX and sends it data.
    • Returns: If the call is made synchronously (see CallBack option), the URL’s output is returned, otherwise, the AJAX object is returned.
    • Parameters:
      1. URL: The URL of the address to request. If the document is not found, an error is thrown.
      2. Data
        • Description: The data to send in the query section of the URL.
        • Value types:
          • String: Uses the string as the URL’s query if using URL Encoding (“application/x-www-form-urlencoded”). Otherwise (“multipart/form-data” encoding), this is set to the parameter “NoName”.
          • Object: Uses the object’s members as parameters. The members’ values must be scalars.
        • Other Information:
          • This parameter is not optional.
          • Set to a blank string to send nothing.
      3. ExtraOptions: An optional object specifying additional options defined as members.
        • CallBack
          • Default: undefined
          • Description: Function to call when the document has completed.
            • It receives 3 parameters: The responseText, the ExtraData additional option, and the AJAX object used to make the call.
            • If this is not set, the AJAX call is made synchronously.
            • Pass false to call asynchronously without a callback function.
        • ExtraData
          • Default: undefined
          • Description: User defined data passed directly to the CallBack function
        • UseCache
          • Default: true
          • Description:
            • If this is true, the request is made via GET with URL encoding (“application/x-www-form-urlencoded”), so timestamps are sent meaning the browser cache can be used.
            • If this is not true, POST is used with “multipart/form-data encoding” (unless it takes less bytes to send as “application/x-www-form-urlencoded” in the POST).
        • ForceUrlEncode
          • Default: undefined
          • Description: If set and POSTing, “application/x-www-form-urlencoded” encoding is used when true, and “multipart/form-data” when false, otherwise the type is used that yields the smallest size. (It can be expensive to determine “multipart/form-data” encoding if it is not needed)
        • AdditionalHeaders
          • Default: undefined
          • Description: A list of additional HTTP headers to pass to the request in an object (members as variable names with scalars values only)
  • function GetURL_Error: This function is called if the server returns an error from the URL request. All it does is throw an error with 3 parameters:
    1. An error string with the status code
    2. The response text
    3. The AJAX object
PHP MySQL Library v1.0: A MySQLi library for PHP with functions for querying MySQL databases and handling queried data.
Click here for documentation
  • Global Variables:
    • SQLInfo
      • Definition: This holds information required for MysqlOpen, MysqlClose, and MysqlQuery functions.
      • Items:
        • Server, UserName, Password, Database: The credentials used to connect to the MySQL database.
        • Count: The number of times MysqlOpen has been called minus the times MysqlClose has been called.
        • Reference: The reference to the currently opened database (MySQLi object).
        • QueryDebug: If true, queries and their execution time are stored and retrievable through the MysqlQuery function. False by default.
        • QueryRememberData: If this and QueryDebug are true, query member data is also remembered, which can be cumbersome. False by default.
  • MySQL Functions:
    • MysqlOpen
      • Definition: Open a connection to a MySQL database.
      • Returns: Nothing. Calls “die” if database connection cannot be made.
      • Parameters:
        • [1-4]) Server, UserName, Password, Database: The credentials used to connect to the MySQL database, which are also copied to the SQLInfo global variable. If any of these are not given or set as NULL, the corresponding values from the SQLInfo global variable are used. Server is set to “localhost” by default.
      • Information:
        • If Count is 0, connects to the MySQL database. Database connection is set to use utf8_general_ci.
        • The SQLInfo Count counter is always incremented.
    • MysqlClose
      • Definition: Close a connection to a MySQL database.
      • Returns: Nothing
      • Parameters:
        • [1]) ForceClose: Whether to force a closure even if Count is not 0. False by default.
      • Information:
        • If Count is 1 or ForceClose is true, closes the connection to the MySQL database.
        • The SQLInfo Count counter is always decremented or set to 0 appropriately.
    • MysqlQuery
      • Definition: Execute a MySQL query.
      • Parameters:
        • 1) Query: The query to use. This can be in both normal query or prepared statement syntax.
        • [2-...]) ListOfQueryMembers: If using prepared statement syntax, a list of the data members that replace the “?”s in the query. array_flatten is called over the list of passed parameters, and the final count of parameters must match the number of “?”s in the query.
      • Returns: The query result object (either a mysqli_result or a mysqli_stmt). If an error occurs, SQLError is called.
      • Information:
        • Calls MysqlOpen if a database connection is not already open.
        • A prepared statement is executed if ListOfQueryMembers is not empty (at least 1 parameter is passed); otherwise, a normal query is executed.
        • If QueryDebug is true, queries and their execution time are collected, and a call to this function with the following query strings will return the following data:
          • GetQueryCount: Array(COUNT_OF_QUERIES, COMBINED_QUERY_EXECUTION_TIME)
          • GetQueryTimes: An array of each query in the format Array(QUERY_TIME, QUERY_STRING, [QUERY_DATA])
        • If a function exists with the name “MysqlQueryOverride”, it is called with the query as the only parameter, and the query is overwritten with its return value.
    • MysqlFetchData
      • Definition: Returns result data from a MySQL query.
      • Parameters:
        • 1) ResultObject: The query result object (either a mysqli_result or a mysqli_stmt), which is most likely the return value from the MysqlQuery function.
        • [2]) RowNum: An optional row number to return. If passed, this should usually be 0.
      • Returns: The result data. See information for the format.
      • Information:
        • An array is calculated with each index being an associative array of a returned rows’ data (like an array of mysql_fetch_assoc data). If there is only one field per row, then each row’s data is just that value instead of an associative array.
        • The array is returned unless RowNum is passed, in which case that row number’s index is returned from the array, or false if it is not found.
    • SQLError
      • Definition: This function is called if an error occurs during MysqlQuery.
      • Parameters:
        • 1) MySQLErrorString
        • 2) TheQueryString
      • Returns: Nothing
      • Information:
        • This function can be defined by the user before this script is called.
        • If not user defined, by default the function prints the error and query information and stops the script.
  • Query Preparation Functions:
    • MysqlPrepareList
      • Definition: Returns a string of question marks separated by commas whose list length is equal to the array length of the parameter.
      • Parameters:
        • 1) List: Only the array’s length is used.
      • Returns: A string that can be in a MySQL prepared statement.
    • MysqlPrepareUpdateList
      • Definition: Returns a string in the format “NAME=?, NAME=?, ..., NAME=?”
      • Parameters:
        • 1) NameList: An array of names.
      • Returns: A string that can be in a MySQL UPDATE prepared statement.
  • Escape Functions:
    • EHTML
      • Definition: Returns an escaped string for use in UTF-8 HTML.
      • Parameters:
        • 1) TheString
      • Returns: The escaped string.
    • EJS
      • Definition: Returns an escaped string for use in JavaScript.
      • Parameters:
        • 1) TheString
        • [2]) IsClosed: Whether to enclose the return string in quotation marks. Default is true.
      • Returns: The escaped string.
  • Array Functions:
    • array_flatten
      • Definition: Pulls all elements from an array and its sub-arrays and turns it into a single one dimensional array.
      • Parameters:
        • 1) TheArray
      • Returns: A one dimensional array.
  • Variable functions:
    • RefValues
      • Definition: Turns values in an array to references in place if PHP version is >=5.3. This is required due to changes in how call_user_func_array works in PHP v5.3.
      • Parameters:
        • 1) TheArray
      • Returns: The original array. Each element may now be a reference.
  • Time functions:
    • MicroTimeDiff
      • Definition: Returns the second based decimal difference of two microtime() statements
      • Parameters:
        • 1) StartTime
        • 2) EndTime
      • Returns: A decimal number.
Draw Image v1.0: Draw JavaScript dynamically generated images to a web page.
Click here for some notes and a working copy of the script
[Go directly to example page]
Information:
  • There are 2 user-called functions and 1 user-callback function for this script:
    • CreateRenderObject(CodeBase, Width, Height)
      • This creates an object where the pictures are drawn to; which needs to be added to the HTML document. In IE, this is a Java Applet, and in all other browsers, its an IMG DOM object.
      • The parameters are only used when in IE
      • CodeBase is the base path where the Java applet resides
    • DrawImage(ImageObject, Width, Height, PixelData)
      • This draws the image to a render object
      • ImageObject is the object created through CreateRenderObject
      • PixelData is a 1D array of color values (0xRRGGBB format) for each pixel (rows then columns)
    • ImageClicked(X, Y, Flag)
      • This is a callback function that occurs when an object created through CreateRenderObject is clicked.
      • Flag specifies if the Ctrl key is held down during the click in IE, or if the right mouse button was used in all other browser.
  • How this works:
    • In IE, this sends all the data to a Java Applet that created a picture through the createImage and MemoryImageSource Java interfaces.
    • In all other browsers, this sends the data to an IMG object by using the Data_URI_scheme. IE8 supports this scheme, but only if the data set is smaller than 32KB, so I still consider it unsupported for IE.
Example:
  • This is an example of the technology which produces a Mandelbrot fractal using the same code base as my Julia Fractals project.
  • It might be preferable to go directly to the example page to remove size restrictions from the below IFRAME.
  • The fractal dimensions, detail level, and area can be controlled by manually changing the values in the top table, or by clicking on the fractal per the below instructions.

Image Zoom Effect v0.95: An animated image zoom (growing/shrinking) effect for web pages that transitions from a displayed thumbnail into a larger version of the image. Animation occurs when mouse is moved over the thumbnail and shrinks when mouse leaves zoomed image. Zooming images attempt to stay within the window’s boundaries.
Example: Example Zoom Effect Image
Click here for how to use and technical information
To use, the thumbnail must be an “img” object containing the class-name “GrowImage”, and its parent must be an anchor link (“a”) to the full size image. For example:
<a href="LINK_TO_FULL_SIZE_IMAGE.jpg"><img src="LINK_TO_THUMBNAIL.jpg" width=THE_THUMBNAIL_WIDTH height=THE_THUMBNAIL_HEIGHT class=GrowImage></a>
<script type="text/javascript" src="ImageZoomEffect.js"></script>
The ImageZoomEffect.js script must be included after all GrowImages have been added.

Variables:
  • RefreshTime: Time (in milliseconds) between animation frame updates.
  • TimeToAnimate: The time (in milliseconds) to grow the animation to full size. For example, if this value is 100 (1/10th of a second) and RefreshTime is 10 (1/100th of a second), then there will be 10 frames of the image growing or shrinking at each 1/100th of a second interval.
  • LoadingImageInfo: The image to temporarily show while the full size image is being downloaded. An array of 3 values is used for this variable. “['IMAGE_LINK', IMAGE_WIDTH, IMAGE_HEIGHT]”

Technical details:
  • After JS script is included, it searches through all images for ones that contain “GrowImage” in the className and adds appropriate events to the object.
  • Zoomed images are placed inside an absolutely positioned container so it doesn’t affect the rest of the layout. The zoomed images themselves are relatively positioned inside the parent.
  • Full size images are not loaded until the first time they are needed/requested by a mouse over action, and are unloaded when finished shrinking.
  • A zoomed image currently stays centered over its thumbnail until it hits a window border, in which case it will not overlap the border if possible. If the image grows too large to fit within the window’s width or height, the image will overlap on the bottom and right sides.
  • A zoomed image will start growing again if moused over while shrinking.
  • There are still a few bugs I need to work out in this one... see the updates below.
AutoSuggestBox v1.0.1: A dropdown box for HTML text boxes that gives case insensitive suggestions from a predefined list for what the user is typing. The search phrase is highlighted in the search results. Search results can be selected through keyboard or mouse.
Click here for documentation and a working example of the script

Example

Values:
  • The quick brown fox jumps over the lazy dog
  • lazy example
  • quick test
  • the alphabet

Information
  • Global variables:
    • SuggestBoxes: This holds a list of all created auto suggest boxes.
  • Functions:
  • CSS Classes: (Default styles)
    • .SuggestionBoxParent :: See AutoSuggestBox.ParentBox
      position:relative; display:none; /*required styles set in JavaScript*/
    • .SuggestionBox :: See AutoSuggestBox.Box
      position:absolute; /*required style set in JavaScript*/
      top:20px; z-index:100; background-color:lightgrey; width:200px;
    • .SuggestionBox div :: An individual suggestion in the auto suggest box
      color:black; overflow-x:hidden; white-space:nowrap;
    • .SuggestionBox div:hover :: When a suggestion is moused over in the auto suggest box. This may not work in Internet Explorer without a compatible doctype.
      background-color:blue;
    • .SuggestionBoxHighlight :: Matched search text in a suggestion
      font-weight:bold;
    • .SuggestBoxSelected :: The currently selected item in a suggest box
      background-color:darkgrey;
  • Other Information:
    • Only some browsers support turning off real autocomplete on a per-textbox basis. You may need to add “autocomplete=off” to your form to turn off browser autocomplete.
Action Counter v1.0: This script creates a looping countdown timer that performs an action when it reaches 0.
It interacts with 3 given HTML DOM objects to: Receive the countdown time in seconds; Tell the user how many seconds are left on the countdown; Tell the user the last time the countdown action was performed (after the timer reached 0 or from a manual action execute)
Click here for documentation and a working example of the script

Example

Box To Copy From:
Box To Copy To On Action:
Interval to perform action: (Set to zero to turn off)
0
Last time action performed: Never

Information
  • How to use:
    • Create a new “ActionCounter” to start the script. It requires the following parameters:
      • IntervalValueID: The ID of an input text box containing the number of seconds to count down. Whenever this input box is updated by the user, the countdown is reset to this interval value. A value of 0 stops the countdown.
      • LastActionID: The ID of a DOM element that receives the last action time as its innerHTML. The object receives an additional class name of “LastActionUpdated” for up to 2 seconds after an action occurs.
      • TimeLeftID: The ID of a DOM element that receives the seconds left (every second) as its innerHTML. The object receives an additional class name of “TimeLeftUpdated” when it reaches 0 but before the action has finished.
      • UserAction: A user defined callback function which is called (as a member of the ActionCounter) when an action is ready. The “ActionFinished” member must be called once the entire action has completed, which can be after a timeout, like when an asynchronous AJAX call has returned.
    • Call ActionCounter.ExecuteAction to force the action to execute
  • CSS Classes:
    • .TimeLeftUpdated :: See the “TimeLeftID” parameter
    • .LastActionUpdated :: See the “LastActionID” parameter
Common JavaScript Library v1.0: Common JavaScript needs including: Browser-specific functions; String, Object, Array, and “Function” manipulation functions; and DOM Object creation and manipulation.
Click here for documentation
  • Confirmed compatible with IE8, FF3, and Google Chrome. Should be compatible with all graphical JavaScript browsers.
  • Common functions may often be copied into other JavaScript files to keep them independent.
  • See the CommonTestSuite.html for examples.
Format:<Type>(Optional)DescriptiveName (Optional)=Default<BS>=Browser Specific
Name Long Name Returns Parameters Description
$ GetElementByID DOMElement <String> ID Gets DOM element By ID
$GE GetElement DOMElement <DOMElement/String (DOMOrStr)> Element GetElement by ID or Self
$C Clone Object <Object> O Clones (duplicates) object
$CA CloneAll Object <Object> O Complete clone of object, including children
$CP CopyProperties Object(Object1)<Object> Object1, <Object> Object2 Copies all properties from Object2 to Object1 (mainly for DOM Objects). Copied properties can include submembers like “style.color”
$CM CopyMembers Object(Object1)<Object> Object1, <Object> Object2 Copies all members from Object2 to Object1. This is quicker than $CP but is not DOM compatible, and copies member names directly (no submembers)
$CE CreateElement DomElement <DOMTagName> TagName, <Object> Properties={}, <DOMOrStr> AppendTo=NULL <BS> Creates DOMElement TagName, Sets Properties through $CP, Appends to $GE(AppendTo)
$CO CreateOption DOMOption <String> Value, <String> Key, <DOMOrStr> AppendTo=NULL, <BOOL> Sel=FALSE <BS> Creates an option for a select list
$P GetParent DOMElement <DOMOrStr> Child Gets DOM parent of $GE(Child)
$A GetAncestor DOMElement <DOMOrStr> Child, <int> X Gets Xth DOM parent of $GE(Child)
$EV GetEvent DOMEvent <DOMEvent> E <BS> Returns the current event node, which is usually passed to the function, but is held by the window in IE
$EVS GetEventSource DOMElement <DOMEvent> E <BS> Determines event through $EV and passes back the source of the event
$AA ArgsToArray Array <ArgumentsObject> A Converts a function’s “arguments” object to an array
$ILA IterateWithArr OL <Any,...> OL, <Function> F, <Any,...> P Runs F iteratively over OL with first parameter as OL[i], then each P as a parameter, setting OL[i]=return
$IL IterateWithPrmsOL <Any,...> OL, <Function> F, <Any> Parameter1, <Any> ParameterX, ... Runs $ILA(OL,F,P) with P being all parameters following F.
$DF DeferFunction Any <String> VariableToLookFor, <Function> FunctionToCall Waits until VariableToLookFor is defined, and then calls FunctionToCall
$I Integer Number <String> Num Turns any base 10 string into an integer
$T Trim String <String> Value Trim pre and post whitespace characters
Stand alone scripts
Directory Manager v1.1: A secure, lightweight, and robust PHP script for managing a directory’s files and user access.
Click here for features, technical information, and important notes
This script is a single file which should be used as the index file (usually index.php) for a desired directory. It works on just the directory it resides it, so the file can be uploaded to any directory you want it to work on with no extra hassle.

Features:
  • Sorted file listing within the directory
    • Files (no folders) are listed with the following data:
      • File name
      • File size (listed in human readable/friendly format)
      • Last modified date
    • Set the default sort column and order.
    • Sort column ordering can be changed by clicking the column header. If a column header is clicked when already selected, its sort order (ascending or descending) is swapped.
  • Uploading, renaming, and deleting files
    • Files can only be uploaded to the current directory.
    • Files can be protected so they are not shown and cannot be modified/removed. The index file, directory access (“.htaccess”), and user information (“.htpasswd” by default) files are automatically on this list.
    • File extensions can be restricted. If a restricted extension is encountered, an extra extension (“.txt” by default) is appended to the end.
  • Create, modify, and delete user logins
    • Logged in users can change their password.
    • (If permission is granted) Modify other user logins.
    • There are 3 user tiers which (by default) all have different allowed permissions (see “Permission state modifiers” variables section):
      • No user file found (Directory access is currently unrestricted)
      • Normal user
      • Admin user
    • User authentication can be required by either the whole directory or just the script.
  • Easy basic configuration through a short variable list at the top of the file. Once it is configured the first time for a website, it is unlikely the configuration would need to be changed when copying (or symbolic linking) the file to other directories.
  • All features are easily toggleable and grantable by user tier, so this script could be used for only one of its many purposes, for example, just listing files, or just user management.
  • Easy addition of a layout to wrap around the script
    • There are 2 functions, HeaderSection and FooterSection, where HTML for a header and footer can be added.
    • This is located directly below the variable section so everything that might need to be edited is at the top of the file.
    • A very basic header and footer have been provided in these functions by default. A header and footer file will usually just need to be included inside of these functions.
  • This script is written in as much of a serial manner as possible to make it easy to follow what is going on.
  • This script is W3C compliant for CSS and HTML.

Important notes:
  • User credentials only work with Apache mod_auth authentication.
  • For the script to detect the username (for admin login or for users to change their own passwords), this script only works on Apache with PHP ran as a module, not as a CGI. I may add a feature later on so that script authentication can be done through a form on the script’s page after the initial directory login if PHP is ran through a CGI interface.
  • As of v1.1 the script is download as a plaintext file with the extension “phpcode” that just need to be renamed to “php” (instead of zipping).
  • The script file can be named whatever you want and does not have to be a directory index file (default.php, index.php, etc).
  • You should not need to edit anything past the “//---DO NOT EDIT PAST HERE---” line.

Features that may be added later on:
  • “File by file protection” in which each file can be set as requiring user authentication or not (when the whole directory is not protected).
  • Manage a complete directory tree: Doable by making the .htaccess link all directory index requests back to the root directory’s index file.
  • When uploading files, ask if user wants to rename or overwrite if file already exists.
  • Login to script through FORM authentication and cookies (See second bullet of “Important Notes”).
  • Redo all requests as POST requests instead of GET.
  • Only restrict access to the index.php file for user logins, as opposed to the whole directory. (Added in v1.1)

Variable List:
  • Password protection information
    • PassFileName
      • The user credentials file name
      • For security reasons, this file can be put in another directory, but it doesn’t need to be as access is restricted to it by default.
      • If the path to this file is not relative, it must start with a “/”.
      • Default: '.htpasswd'
    • OnlyProtectIndexFile
      • With this, user authentication can be required by either the whole directory or just the script.
      • When set to true, the script’s file and the directory without a filename (e.x., “http://www.domainname.com/DIRECTORYNAME/”) are all that require user authentication (if users are already added). Otherwise, the whole directory requires user authentication.
      • Default: false
    • PasswordHashFunction
      • The function used to hash the password for the user credentials file
      • This should usually be “crypt”, but Windows’ IIS might need “md5”.
      • Default: 'crypt'
  • Allowable files and types
    • DoNotShowList
      • List of files that are not shown in the directory index and cannot be modified
      • Default: Array($MyFileName, $PassFileName, '.htaccess')
        • MyFileName is now retrieved automatically by the script
    • DisallowedExtensions
      • Files that are of these extensions cannot be modified or created
      • This option can be ignored through the IgnoreDisallowedExtensions variable.
      • Default: Array('php', 'php3', 'cgi', 'pl')
    • DissalowedExtensionsAppend
      • When disallowed extensions (above variable) are encountered, they have this variable appended to them
      • Default: '.txt'
  • Basic permissions: Set options to either true or false
    • AllowFileList
      • Default: true
    • AllowDeleting
      • Default: true
    • AllowRenaming
      • Default: true
    • AllowUploading
      • Default: true
    • AllowUserEdit
      • Edit other users credentials
      • Default: false
    • AllowPasswordEdit
      • User can edit their own password
      • Default: true
    • IgnoreDisallowedExtensions
      • See variable DisallowedExtensions
      • Default: false
  • [Admin] Permission state modifiers - Comment out line or set to FALSE to ignore option
    • AdminUsers
      • When logged in, these user(s) have all AdminPermissions (see below variable) set to true
      • Default: Array('admin')
    • PermissionsIfNoPassFileFound
      • Permissions set to true when no password file is found - The default is all permissions but IgnoreDisallowedExtensions
      • Default: Array('FileList', 'Deleting', 'Renaming', 'Uploading', 'UserEdit', 'PasswordEdit')
    • AdminPermissions
      • Permissions set to true when in admin mode (see AdminUsers) - The default is all permissions
      • Default: Array('FileList', 'Deleting', 'Renaming', 'Uploading', 'UserEdit', 'PasswordEdit', 'IgnoreDisallowedExtensions')
  • Default sorting options
    • SortBy
      • Default sorted column, options include “Name”, “Size”, and “ModTime” (Last Modified Time)
      • Default: 'Name'
    • SortDesc
      • Sort Ascending (false) or descending (true)
      • Default: false
Removed Variable List:
  • RootDirectory
    • The file system path to the root directory of the domain
    • THIS MUST BE MODIFIED
    • Default: '/home/USERDIRECTORY/public_html'
    • Removed: v1.1
  • MyFileName
    • The file name of this script
    • Default: 'index.php'
    • Removed: v1.1
Date Converter v1.0: A JavaScript script that converts and synchronizes different date types. The date types are: Numeric (Day, Month, Year, Day of Year), Word Form (Day of Week, Month), and two common date formats (“mm/dd/yy ”, “MMM d, yyyy”).
Click here for some notes and a working copy of the script
Working copy
Notes:
  • The working copy here may not show in IE because IE has a bug in it related to IFRAMES; if this is the case, go here).
  • If the year is only 2 digits, the script assume >20=1920-1999 and <20=2000-2019. Unfortunately, due to how the JavaScript “new Date()” works, 0000-0099 are not easily available. I could make them available... but eh.
  • Values that are higher than allowed will just wrap appropriately, so “13” for a month would be January of the next year.
  • The weekday and format fields are not changeable.
Character Converter v1.0: Convert text between hex, decimal, and ASCII. Kind of like a very simplified hex editor.
Click here for a working copy of the script
[Close working copy]
Unicode Character Reference Chart v1.0: Two kinds of charts used to view all the Unicode characters.
Click here for script information
  • Static (Top) Frame:
    • The top frame shows a limited number of characters (in 50,000 increments). This is because they are all loaded at once and having too many is too much for browsers.
    • When you mouse over a character in the top frame, the symbols information is displayed at the top of the page in red.
    • Right-To-Left characters (for example, Hebrew) sometime mess up the proper ordering on a line.
    • Warning: When mousing over a character in IE the browser may seem to freeze for a while due to IE bugs.
  • Dynamic (Bottom) Frame:
    • The bottom frame shows all the Unicode characters dynamically loaded as you scroll through them. It is designed to show 6 by 29 characters at a time.
    • The bottom frame fits within a 1024x768 resolution.
    • Each time you go up or down, it goes about 19 characters at a time in Firefox. I may fix this one day so it goes one column at a time and ends at the last Unicode character (0x10FFF).
Unicode Converts Reference Chart v1.0: This is a reference chart I made of Unicode characters and character ranges that can be converted to normal English characters. This includes removing character accents.
Click here for script notes
I needed to research and make this when I was adding on Unicode support to my “String” Personal Library. This was a daunting and annoying task that I was forced into since I couldn’t find this information anywhere else on the Internet :-\ ; though I did find something like it in a Windows’ file used for string ordering and such. This probably wouldn’t be very useful to anyone unless they were making a Unicode library. I didn’t try cleaning this script up like most of my releases, as there really is no need. All the numbers can be found in the script itself.
Wake On LAN v1.0: A script to remotely wake a computer (Wake On LAN).
Click here for some notes and a working copy of the script
  • To wake up a computer over the Internet, the given port must be able to reach the computer you wish to wake. If the computer is behind a NAT, the port must be forwarded.
  • The computer must support “Wake On LAN” for the script to work. This sometimes takes a specialized NIC (network card).
  • If a domain is given for the IP address field, it is resolved and filled in on submission.
  • If a valid MAC address is given, its format is updated on submission to fit that of the example.
  • Error and success messages are shown after submission at the top of the page.
Whois v1.0: Query a domain’s registration information. (Whois)
Click here for a working copy of the script
[Close working copy]
Default PHP Variables v1.0: Outputs all default (already defined) PHP variables when a PHP script starts.
Web Browser Information v1.0: Outputs all the information the browser can gather from the user via JavaScript and the HTTP Headers.
GetIP v1.0: When someone goes to this script, it records and informs them of their IP Address. If this script is loaded with ?GetIP appended to the end of its URL, it reports the last IP Address recorded. This is an incredibly simple script I very often use when I need a person to get me their public IP address. I have thought of updating it to record and retrieve IP Addresses against a pass string so many people can use it here, but meh.
Concepts
Cross Platform Scripting
Updates
Action Counter v1.0 @ 2010-12-06 16:35:54 - Download

Action Counter v1.0, which creates a looping countdown timer that performs an action when it reaches 0, has been added to the Other Web Scripts project.

Common JavaScript Library v1.0 @ 2010-11-13 11:32:34 - Download

Dakusan’s Common JavaScript Library v1.0 has been added to the Other Web Scripts project. It is a JavaScript library with commonly used functions for:

  • Browser-specific functions
  • String, Object, Array, and “Function” manipulation functions
  • DOM Object creation and manipulation

The AutoSuggestBox Library has also been updated to v1.0.1. The only change is one of its inlined Common functions has been updated to match this new library.


[Edit on 2010-11-14 @ 12:22pm] I felt the need to mention that this library and test code isn’t exactly the best laid out of my source code. The library was meant to be done in a minimal amount of space (could still compress more, but meh), and the test code was thrown together just to make sure everything worked.

AutoSuggestBox v1.0 @ 2010-11-11 13:17:50 - Download

AutoSuggestBox v1.0 has been added to the Other Web Scripts project. It is a dropdown box for HTML text boxes that gives case insensitive suggestions from a predefined list for what the user is typing. If the need or request ever arises, I may someday add to it the options for real time (non pre-defined) suggestion lists, and user-defined suggestion matching formulas.

PHP MySQL Library added to Other Web Scripts @ 2010-11-10 07:55:10 - Download

Version 1.0 of the PHP MySQL Library has been added to the Other Web Scripts page. It is my MySQLi library with functions for querying MySQL databases and handling queried data.

The purpose of this library was to be able to quickly execute queries and collect their data without a lot of extra code. While one of the original purposes of prepared statements for MySQL was so queries could be parsed only once and ran many times, I find in PHP I rarely use a query more than once per script, so this library is designed to easily execute a prepared statement with data already attached.

I moved this and the following libraries into their own “Library” section at the top of the project page’s contents: AJAX Library, Draw Image, and Image Zoom Effect.

Minor AJAX Library Error Function Update @ 2010-11-07 18:29:00 - Download

This is a very minor update for the AJAX library. The error function now receives ExtraData as an optional second parameter, which one of my recent projects required.

Web Browser Information @ 2010-01-04 23:56:02 - Download

I just found this Web Browser Information script I did well over a year ago on my harddrive. It was already completed and in the current state that it’s in... and I have no idea why I hadn’t already posted it >.<; . I did a quick look over of the code and it all looks OK... so.. yeah, no idea. Anywho, here it is (v1.0 source).

Description: Outputs all the information the browser can gather from the user via JavaScript and the HTTP Headers.

AJAX Library v1.0 @ 2009-11-30 20:26:14 - Download

My AJAX Library v1.0 has been added to the Other Web Scripts project.

It is an AJAX (Asynchronous JavaScript and XML) library for communication between JavaScript and HTTP Servers.

This library has actually been in development for years, and I just never saw the need to release it until now, so I gave it a quick clean up :-).

Dakusan License v2.0 @ 2009-11-04 16:06:57 - Download

I have updated the licensing information across the board for my website and all its projects to the Dakusan License v2.0, a slightly modified version of the Original BSD License.

The Copyright page and all project downloads have been updated accordingly.

Embedded Image Drawer v1.0 @ 2009-03-27 03:10:00 - Download

I recently made a JavaScript library (web script) for embedding images generated by JavaScript within web pages. I needed to test it, so I threw together a JavaScript version of the Mandelbrot Fractal from the Julia Fractals Project.

Unfortunately, IE7- doesn’t allow this (or any) kind of client side image embedding like all other browsers do, so it has to use a Java Applet to draw the image data produced by JavaScript. I tried every way I could possibly think of to get client side image embedding working in IE without an additional addon, but every time I got close, I ran into another “security feature”, and there was no way in the end to get it working... well, besides methods that make 1 HTML DOM object per pixel, which is way too complex for processing and usually freezes the browser. IE8 does support what I want, but the image has to be less than a certain size (<32KB when in base 64).

Also, of course, this works the fastest in Chrome. :-)

More Project Thumbnail Updates @ 2008-09-28 15:48:04

The following projects have had thumbnails added to them: College Crap, Freedrive URL cracker, Highschool C++ Class, HTTP Zip, Small, Other Web Scripts.

The Eyes project thumbnail has been updated to have a transparent background to better represent it.

Multiple "Other Web Scripts" added @ 2008-09-25 13:15:46
The following scripts have been added to the “Other Web Scripts” project:
NameThis was done sometime in/between...
2005
2002 and 2004
2005
late 2006
2003 and 2004
2003 and 2004
2002 and 2004
2002 and 2003
Directory Manager v1.1 @ 2008-09-24 16:44:10 - Download
The following fixes have been applied to Directory Manager v1.1:
  • Base URLs “<base href="...">” are now supported (they no longer break links)
    • Type: Feature (Base URLs are common for complex layouts)
    • How: All links in the script are now absolute from the base domain instead of relative to the current directory.
  • Confirmation is now requested through JavaScript before a file is deleted
    • Type: Feature
    • Why: Because there should always be confirmation before deleting data.
  • User authentication can now be applied only to the script instead of the whole directory
    • Type: Feature
    • Variable Name: OnlyProtectIndexFile
    • Why: Sometimes the user might want to only protect the ability to manipulate the directory, but not the files in it.
    • How: This adds a “<files>” directive to the “.htaccess” file around the user authentication section.
  • Header and Footer sections have been added to the top of the file right below the user variables section for easier manipulation of the page layout
    • Type: Feature
    • How: The user can now add layout header and footer information to the “HeaderSection” and “FooterSection” functions.
  • Script now only shows normal files (not directories) in its file list
    • Type: Bug Fix
    • How: The “is_file” function is now used on entries returned from the “read_dir” function before they are added to the list.
    • Side Effects: “.” and “..” were removed from the DoNotShowList variable.
  • Fixed all improper static strings of “index.php” to properly point to the current file (MyFileName variable)
    • Type: Bug Fix
  • The following user variables have been removed: MyFileName, RootDirectory
    • Type: Simplification & Bug Fix
    • Why: There was no need for the user to define these variables when the script can extract them. This also fixes a bug that occurs when a parent directory is symbolic linked.
    • How: Instead of using the “getcwd” function and subtracting that from the provided RootDirectory variable, directory and script name variables can be extract from the $_SERVER['SCRIPT_NAME'] variable.
  • Additional comments have been added in the file for code clarification
    • Type: Other

Other Information:
  • The Directory Manager information has been updated to reflect the above updates.
  • The “file by file protection” [possible] future update was also added to the information.
  • PHP scripts that now only have 1 file to them are available for download as plaintext files with the extension “phpcode” that just need to be renamed to “php”; instead of zipping them.
Image Zoom Effect Details @ 2008-09-17 12:14:03

The description, “how to use”, technical info, and an example have been added to the Image Zoom Effect in Other Web Scripts.

New Web Script - Directory Mananger v1.0 @ 2008-09-15 08:26:17 - Download

One of the most common requests I get from customers is the ability for their clients to upload files through a web page (HTTP) to the server; so I threw together from scratch[All of the script was written from scratch execept the HumanReadableSize function] a secure and robust script for this in about 6 hours which clocks in at about 360 lines. The single file works on just the directory it resides it, so the file can be uploaded to any directory you want it to work on with no extra hassle.

I know there are a lot of large applications out there for managed file uploading through a web interface, but I decided to make this anyway as it is kind of specific in its goals, being relatively lightweight and working on just a single directory at a time. Also since I made it myself, it’s easier to modify and update for specific clients needs, like direct integration into their website design.


Its main features are:
  • Sorted file listing within the directory
  • Upload files of allowed type (invalid extensions are renamed)
  • Delete and rename files
  • Create and delete user logins
  • Logged in users can change their password
  • All features are toggleable in three tiers:
    • No user file found (Directory access is currently unrestricted)
    • Normal user
    • Admin user
  • Easy basic configuration through a short variable list at the top of the file. Once it is configured the first time for a website, it is unlikely the configuration would need to be changed when copying (or symbolic linking) the file to other directories.
Image Zoom Effect Update @ 2008-08-09 21:24:08 - Download

Updated the script so that it now tries to stay within the browser window, and I think I made a minor speed improvement by changing the growing image to an absolute positioning instead of relative.

Found another bug in which the image zoom object might never start growing and stays active if mouseover event is never caught.

New Image Gallery Layout Effect @ 2008-08-09 05:18:28 - Download

I decided the rather clumsy image effects on my posts with thumbnail galleries needed to be redone badly. They originally just displayed the full size pictures centered horizontally in the browser and then slightly above or below the current mouse position vertically, but this really did not work very well.

I just redid the HTML code in each of the thumbnail gallery posts so they are compatible with a new script I just now wrote [v0.9] in about two and a half hours. It kind of zooms in on the images when you mouse over them.

I still see a few bugs in the script and things I need to fix, but this is fine for now as I am exhausted and really need sleep. I thought this up as I was trying to sleep earlier, so I ended up giving up on sleeping in lieu of writing this to get it out of my system.


Things that need fixing still:
  • Do not allow picture to overlap browser window (if it can fit)
  • The animation seems a little choppy... need to see if it can be speed up
  • Possible optional addition later: Position pictures in different directions of the thumbnail (above, below, or centered around each corner)
  • IE bug when picture first loads and improper dimensions are read
Comments
To add comments, please go to the forum page for this project (guest comments are allowed for the Projects, Posts, and Updates Forums).
Comments are owned by the user who posted them. We accept no responsibility for the contents of these comments.

No comments for this Project