Archive for November, 2009

How to Connect MySQL with PHP

Friday, November 27th, 2009

Package:
How to Connect MySQL with PHP
Summary:
Simple MySQL database access wrapper
Groups:
Databases
Author:
Chetankumar Digambarrao Akarte
Description:
This class is a very simple MySQL database access wrapper.

It just can establish a database connection, execute SQL queries and disconnect.


Tags: ,
Posted in Classes | No Comments »

Web Traffik Analyzer

Friday, November 27th, 2009

Web Traffic Analyzer is a web application to track whoever comes to visit your site. It analyses each visitor and performs statistics.It has been written in PHP and it stores all the data in a MySql database .

Tags:
Posted in Free PHP Scripts | No Comments »

Post to Twitter

Friday, November 27th, 2009

Send messages via Twitter API with these two PHP scripts. It takes to enter user name and password into source code and open page with form and you can post to Twitter. You are immediately notified if your tweet is published or not. Easy to customize.

Tags:
Posted in Free PHP Scripts | No Comments »

JS Auto Form Validator

Friday, November 27th, 2009

The JS Auto Form Validator is an easy-to-setup form validation script which enables you to handle the whole form validation process without writing any JavaScript code. This script allows you to specify certain form elements as required or non-required and also what specific type they have: text, password, numeric, zip code etc. The script automatically checks all required elements in order to make sure that they are NOT only empty before allowing the form submission, but also that the surfer entered a valid type value.

Tags:
Posted in Free PHP Scripts | No Comments »

10 Templates that Solve Problems for Web Developers

Friday, November 27th, 2009

We live in a web centric world right now, and if you haven’t already, you’ll most likely be facing website related dilemma(s). For example, maybe you need an email template to send out your company newsletter(s) but you don’t have the first clue as to how to create one let alone create one that works with all major clients, looks outstanding and is easy to customize and reuse.

Or maybe you need a stylish but functional admin panel for a client whom you’ve just built a complex CMS for, but you aren’t a designer. There are an infinite number of possible problems you could be facing and fortunately, there are solutions.

1. Airmail! – Customizable Email Template

Airmail

“Airmail is a professionally built and designed custom HTML email template! Perfect for just about anyone – usable for everything from newsletters to eFlyers to whitepapers.”

Airmail

2. Simpla Admin – Flexible & User Friendly Admin skin

Simpla Admin

“Simpla Admin is a professional template with a beautiful and user friendly interface. With various smart and intuitive jQuery functions, navigating the interface is a breeze.”

Simpla Admin

3. CleanMail – Email Template Package – 5 Colors!

CleanMail

“CleanMail is a simple yet sexy email template package with 5 different color schemes!”

CleanMail

4. WordPress Wiki Theme

WordPress Wiki

“If you’re looking for a Knowledge Base or Wiki for your company but don’t want or need a full blown Wiki Application. This is the theme for you. Built with a custom Frequently Asked Questions plugin to help extend the functionality of your web site. The plugin acts as a custom write panel that displays in essence short FAQs below posts in their respective categories. The FAQs are searchable and paginate and are not required.”

WordPressWiki

5. Marketplace Community WordPress Theme

Marketplace Community

“Marketplace is a both clean and stylish WordPress theme with the intent and focus on creating a community site for industry news, tutorials, etc. This theme includes many popular built in features seen in today’s industry leading community sites. This themes comes with 5 different color options to choose from.”

Marketplace Community

6. vCard Professional Portfolio

vCard Professional Portfolio

“This is a professional and clean vCard based on Tim Van Damme’s website. With this design you can use almost any background.”

vCard Professional Portfolio

7. Sleek Server Error Pages

Sleek Server Error Pages

“This is a clean, web 2.0 design for website / server error pages. It is flexible and very easy to customize. It comes with 5 of the most common error pages (404, 403, 401, 500 and 503) but it’s very easy to add more if needed. All text is real text so adding more pages is a breeze, no image editing required.”

Sleek Server Error Pages

8. NEOTERIC—The Ultimate Under Construction Page!

Neoteric

“NEOTERIC is a clean single page ‘Under Construction/Coming Soon’ template in 10 SKINS designed to keep your users up to date on your site’s progress.”

Neoteric

9. Under Construction Page with Twitter & Pie Graph!

Under Construction

“Make sure your visitors know whats going on with this Under construction site template that features a feed of your latest tweets (which can be easily removed if you dont use twitter) and a pie chart that is easy to change to reflect your progress!”

Under Construction

10. Minimo – A minimal one page portfolio theme

Minimo

“Minimo is a simple and attractive one page portfolio showcase theme. This theme is built using the 960.gs grid system framework, giving it a structured and professional look and features custom designed icons. Included is a form mail script, so the entire site works out of the box, simply add your destination email address.”

Minimo

Conclusion

When working on projects for your clients, what kinds of templates do you find yourself most in need of? Thanks for reading!



Tags: , , ,
Posted in PHP Tutorials | No Comments »

Blue Crawler

Thursday, November 26th, 2009

Package:
Blue Crawler
Summary:
Crawl and retrieve links of Web pages
Groups:
Searching, Web services
Author:
kai
Description:
This class can be used to crawl and retrieve links of Web pages

It can retrieve a given Web pages and retrieve the URL of all linked pages recursively.

The class can also crawl all linked pages until it finds given search keywords.


Tags: ,
Posted in Classes | No Comments »

Mail

Thursday, November 26th, 2009

Package:
Mail
Summary:
Compose and send HTML e-mail messages
Groups:
Email, HTML, PHP 5
Author:
Raj Trivedi
Description:
This class can be used to compose and send HTML e-mail messages.

It takes as parameters the message subject, HTML body text, sender, reply and recipient names and addresses.

The class can compose the message headers and body and send it.


Tags: ,
Posted in Classes | No Comments »

You Don’t Know Anything About Regular Expressions: A Complete Guide

Thursday, November 26th, 2009

Regular expressions can be scary…really scary. Fortunately, once you memorize what each symbol represents, the fear quickly subsides. If you fit the title of this article, there’s much to learn! Let’s get started.

Section 1: Learning the Basics

The key to learning how to effectively use regular expressions is to just take a day and memorize all of the symbols. This is the best advice I can possibly offer. Sit down, create some flash cards, and just memorize them! Here are the most common:

Yep – it’s not fun, but just memorize them. You’ll be thankful if you do!

Tools

You can be certain that you’ll want to rip your hair out at one point or another when an expression doesn’t work, no matter how much it should – or you think it should! Downloading the RegExr Desktop app is essential, and is really quite fun to fool around with. In addition to real-time checking, it also offers a sidebar which details the definition and usage of every symbol. Download it!.

Section 2: Regular Expressions for Dummies: Screencast Series

The next step is to learn how to actually use these symbols! If video is your preference, you’re in luck! Watch the five lesson video series, “Regular Expressions for Dummies.”

Section 3: Regular Expressions and JavaScript

In this final section, we’ll review a handful of the most important JavaScript methods for working with regular expressions.

1. Test()

This one accepts a single string parameter and returns a boolean indicating whether or not a match has been found. If you don’t necessarily need to perform an operation with the a specific matched result – for instance, when validating a username – “test” will do the job just fine.

Example

var username = 'JohnSmith';
alert(/[A-Za-z_-]+/.test(username)); // returns true

Above, we begin by declaring a regular expression which only allows upper and lower case letters, an underscore, and a dash. We wrap these accepted characters within brackets, which designates a character class. The “+” symbol, which proceeds it, signifies that we’re looking for one or more of any of the preceding characters. We then test that pattern against our variable, “JohnSmith.” Because there was a match, the browser will display an alert box with the value, “true.”

2. Split()

You’re most likely already familiar with the split method. It accepts a single regular expression which represents where the “split” should occur. Please note that we can also use a string if we’d prefer.

var str = 'this is my string';
alert(str.split(/\s/)); // alerts "this, is, my, string"

By passing “\s” – representing a single space – we’ve now split our string into an array. If you need to access one particular value, just append the desired index.

var str = 'this is my this string';
alert(str.split(/\s/)[3]); // alerts "string"

3. Replace()

As you might expect, the “replace” method allows you to replace a certain block of text, represented by a string or regular expression, with a different string.

Example

If we wanted to change the string “Hello, World” to “Hello, Universe,” we could do the following:

var someString = 'Hello, World';
someString = someString.replace(/World/, 'Universe');
alert(someString); // alerts "Hello, Universe"

It should be noted that, for this simple example, we could have simply used .replace(’World’, ‘Universe’). Also, using the replace method does not automatically overwrite the value the variable, we must reassign the returned value back to the variable, someString.

Example 2

For another example, let’s imagine that we wish to perform some elementary security precautions when a user signs up for our fictional site. Perhaps we want to take their username and remove any symbols, quotation marks, semi-colons, etc. Performing such a task is trivial with JavaScript and regular expressions.

var username = 'J;ohnSmith;@%';
username = username.replace(/[^A-Za-z\d_-]+/, '');
alert(username); // JohnSmith;@%

Given the produced alert value, one might assume that there was an error in our code (which we’ll review shortly). However, this is not the case. If you’ll notice, the semi-colon immediately after the “J” was removed as expected. To tell the engine to continue searching the string for more matches, we add a “g” directly after our closing forward-slash; this modifier, or flag, stands for “global.” Our revised code should now look like so:

var username = 'J;ohnSmith;@%';
username = username.replace(/[^A-Za-z\d_-]+/g, '');
alert(username); // alerts JohnSmith

Now, the regular expression searches the ENTIRE string and replaces all necessary characters. To review the actual expression – .replace(/[^A-Za-z\d_-]+/g, ”); – it’s important to notice the carot symbol inside of the brackets. When placed within a character class, this means “find anything that IS NOT…” Now, if we re-read, it says, find anything that is NOT a letter, number (represented by \d), an underscore, or a dash; if you find a match, replace it with nothing, or, in effect, delete the character entirely.

4. Match()

Unlike the “test” method, “match()” will return an array containing each match found.

Example

var name = 'JeffreyWay';
alert(name.match(/e/)); // alerts "e"

The code above will alert a single “e.” However, notice that there are actually two e’s in the string “JeffreyWay.” We, once again, must use the “g” modifier to declare a “global search.

var name = 'JeffreyWay';
alert(name.match(/e/g)); // alerts "e,e"

If we then want to alert one of those specific values with the array, we can reference the desired index after the parentheses.

var name = 'JeffreyWay';
alert(name.match(/e/g)[1]); // alerts "e"

Example 2

Let’s review another example to ensure that we understand it correctly.

var string = 'This is just a string with some 12345 and some !@#$ mixed in.';
alert(string.match(/[a-z]+/gi)); // alerts "This,is,just,a,string,with,some,and,some,mixed,in"

Within the regular expression, we created a pattern which matches one or more upper or lowercase letters – thanks to the “i” modifier. We also are appending the “g” to declare a global search. The code above will alert “This,is,just,a,string,with,some,and,some,mixed,in.” If we then wanted to trap one of these values within the array inside of a variable, we just reference the correct index.

var string = 'This is just a string with some 12345 and some !@#$ mixed in.';
var matches = string.match(/[a-z]+/gi);
alert(matches[2]); // alerts "just"

Splitting an Email Address

Just for practice, let’s try to split an email address – nettuts@tutsplus.com – into its respective username and domain name: “nettuts,” and “tutsplus.”

var email = 'nettuts@tutsplus.com';
alert(email.replace(/([a-z\d_-]+)@([a-z\d_-]+)\.[a-z]{2,4}/ig, '$1, $2')); // alerts "nettuts, tutsplus"

If you’re brand new to regular expressions, the code above might look a bit daunting. Don’t worry, it did for all of us when we first started. Once you break it down into subsets though, it’s really quite simple. Let’s take it piece by piece.

.replace(/([a-z\d_-]+)

Starting from the middle, we search for any letter, number, underscore, or dash, and match one ore more of them (+). We’d like to access the value of whatever is matched here, so we wrap it within parentheses. That way, we can reference this matched set later!

@([a-z\d_-]+)

Immediately following the preceding match, find the @ symbol, and then another set of one or more letters, numbers, underscore, and dashes. Once again, we wrap that set within parentheses in order to access it later.

\.[a-z]{2,4}/ig,

Continuing on, we find a single period (we must escape it with “\” due to the fact that, in regular expressions, it matches any character (sometimes excluding a line break). The last part is to find the “.com.” We know that the majority, if not all, domains will have a suffix range of two – four characters (com, edu, net, name, etc.). If we’re aware of that specific range, we can forego using a more generic symbol like * or +, and instead wrap the two numbers within curly braces, representing the minimum and maximum, respectively.

 '$1, $2')

This last part represents the second parameter of the replace method, or what we’d like to replace the matched sets with. Here, we’re using $1 and $2 to refer to what was stored within the first and second sets of parentheses, respectively. In this particular instances, $1 refers to “nettuts,” and $2 refers to “tutsplus.”

Creating our Own Location Object

For our final project, we’ll replicate the location object. For those unfamiliar, the location object provides you with information about the current page: the href, host, port, protocol, etc. Please note that this is purely for practice’s sake. In a real world site, just use the preexisting location object!

We first begin by creating our location function, which accepts a single parameter representing the url that we wish to “decode;” we’ll call it “loc.”

function loc(url) { }

Now, we can call it like so, and pass in a gibberish url :

var l = loc('http://www.somesite.com?somekey=somevalue&anotherkey=anothervalue#theHashGoesHere');

Next, we need to return an object which contains a handful of methods.

function loc(url) {
	return {

	}
}

Search

Though we won’t create all of them, we’ll mimic a handful or so. The first one will be “search.” Using regular expressions, we’ll need to search the url and return everything within the querystring.

return {
	search : function() {
		return url.match(/\?(.+)/i)[1];
               // returns "somekey=somevalue&anotherkey=anothervalue#theHashGoesHere"
	}
}

Above, we take the passed in url, and try to match our regular expressions against it. This expression searches through the string for the question mark, representing the beginning of our querystring. At this point, we need to trap the remaining characters, which is why the (.+) is wrapped within parentheses. Finally, we need to return only that block of characters, so we use [1] to target it.

Hash

Now we’ll create another method which returns the hash of the url, or anything after the pound sign.

hash : function() {
	return url.match(/#(.+)/i)[1]; // returns "theHashGoesHere"
},

This time, we search for the pound sign, and, once again, trap the following characters within parentheses so that we can refer to only that specific subset – with [1].

Protocol

The protocol method should return, as you would guess, the protocol used by the page – which is generally “http” or “https.”

protocol : function() {
	return url.match(/(ht|f)tps?:/i)[0]; // returns 'http:'
},

This one is slightly more tricky, only because there are a few choices to compensate for: http, https, and ftp. Though we could do something like – (http|https|ftp) – it would be cleaner to do: (ht|f)tps?
This designates that we should first find either an “ht” or the “f” character. Next, we match the “tp” characters. The final “s” should be optional, so we append a question mark, which signifies that there may be zero or one instance of the preceding character. Much nicer.

Href

For the sake of brevity, this will be our last one. It will simply return the url of the page.

href : function() {
	return url.match(/(.+\.[a-z]{2,4})/ig); // returns "http://www.somesite.com"
}

Here we’re matching all characters up to the point where we find a period followed by two-four characters (representing com, au, edu, name, etc.). It’s important to realize that we can make these expressions as complicated or as simple as we’d like. It all depends on how strict we must be.

Our Final Simple Function:

function loc(url) {
	return {
		search : function() {
			return url.match(/\?(.+)/i)[1];
		},

		hash : function() {
			return url.match(/#(.+)/i)[1];
		},

		protocol : function() {
			return url.match(/(ht|f)tps?:/)[0];
		},

		href : function() {
			return url.match(/(.+\.[a-z]{2,4})/ig);
		}
	}
}

With that function created, we can easily alert each subsection by doing:

var l = loc('http://www.net.tutsplus.edu?key=value#hash');

alert(l.href()); // http://www.net.tutsplus.com
alert(l.protocol()); // http:

...etc.

Conclusion

Thanks for reading! I’m Jeffrey Way…signing off.



Tags: , , ,
Posted in PHP Tutorials | No Comments »

Easy Website Translation Script

Thursday, November 26th, 2009

Package:
Easy Website Translation Script
Summary:
Translate pages automatically using jQuery plug-in
Groups:
AJAX, HTML, Localization, PHP 5
Author:
Gourab Singha
Description:
This is a very simple class that can be used to automatically translate pages automatically using jQuery plug-in.

It just generates HTML with Javascript that invoke the jQuery translate plug-in to translate the current page content using Google AJAX language API.


Tags: ,
Posted in Classes | No Comments »

Extended MySQLi

Wednesday, November 25th, 2009

print_r of result array
Package:
Extended MySQLi
Summary:
MySQL database access wrapper using MySQLi
Groups:
Cache, Databases, PHP 5
Author:
Camilo Sperberg
Description:
This package implements a MySQL database access wrapper using the MySQLi extension.

It is based on the Reduced MySQLi class originally written by Mertol Kasanan.

This version can account the memory usage, log the executed queries in the current page. It can also cache the query results in an XML file.


Tags: ,
Posted in Classes | No Comments »