Electronic Signature Solution

Electronic Signature Solution
I want a website developed just like Echosign.com. Please look at Echosign.com before bidding. I do not need all of the functionality that they currently have.

If you look in the Product tab on their website, I need the following two:
1) Echosign Web
2) Echosign Widget

I only will hire a programmer within the Continental United States. I apologize for this, but I want to meet with the programmer to ensure that he/she is capable.

Php Script To Read Cookies

Php Script To Read Cookies
Hi there,

I am looking for someone to write a simple PHP script that I can insert into my web pages which can read cookies from popular websites such as Facebook, Gmail, Hotmail, Craigslist, eBay etc, obtain the users email address which is stored there and assign it as a variable which can be used in the rest of the webpage.

So your script will search for cookies, read them and get the users email.

Should be a pretty simply job for a good PHP coder with experience of working with cookies.

Build A New Site Like Etsy

Build A New Site Like Etsy
I would like to build a new site like etsy.

I want the exact 100% features and functions that they have. including for users and sellers functions and features and a back end easy to use admin panel.

I will need you to modify and customized on these few areas.

1) Web Design
2) Payment System
3) seller only for some countries
and etc

I’m not interested in similar multi-vendor scripts.

Please check out the Etsy-site for functionalities before bidding.

If you have done up similar sites for what I want to other clients before, please show me demo. thks

Genuine Bidders Please!

Socialengine Php Project

Socialengine Php Project
I’m looking for a web developer(s)/firm with extensive experience using various technologies including PHP/MySQL/HTML/CSS/AJAX/JavaScript/XML with various tools such as Zend framework, Photoshop, Illustrator, etc to add some functionality to my existing (http://www.socialengine.net/features.php) application.

Basically, I want to add a few modules and fully integrate a smarty template. I will provide detailed specs for qualified and interested developer(s). I used to do web programming myself, so I know exactly what I need and how it should be done. I’m looking to keep cost low (hence why I’m using existing software), so you should have experience with SocialEngine and work fast. All code should be clean, well documented and should follow security measures already in software, such as input string sensitization, cross-site scripting protection and numerous other safety nets. I’m looking for a long term relationship (if this idea takes off, I’m going to need a complete software rewrite). Someone with experience in high-traffic, production environment and most of all, quality work. I am looking for someone who is available to start immediately and doesn’t need a lot hand-holding.

If you are interested, do not respond with copy n paste (you’ll be blocked). Also, I’m looking to start ASAP. So if you have something else going on, don’t bother.

*TERMS AND CONDITIONS*
1) You should have experience with SocialEngine (PHP) software or a really fast learner. Experience with search engine optimization is an added plus.
2) Demonstrated track record of developing beautiful and functional websites.
3) HTML/XHTML, CSS, JavaScript, XML, Ajax.
4) Knowledge of W3C DOM methods and properties, cross-browser development techniques, and browser degradation strategies.
5) Good knowledge of English, speaking & writing.

Programming Site Dashboard

Programming Site Dashboard
We need a reliable programmer that will do numerous small tasks on an application in development that is powered by CodeIgniter and jQuery.

The application uses WHMCS API to take care of billing, the user of the program can create accounts from the panel on different and numerous WHM servers that are in the WHMCS database. I need a programmer that knows how to write extendable code, not hardcoded code.

For every project, I will discuss on what has to be done and the price it will be based for, this is a sort of way to see what programmers are available.

For the first part of this project, I will need the following done

– Use already coded WHMCS API Model with CodeIgniter to get all of the clients packages.
– From the client package name and description, you will parse out the specifications of what he has and limit him
– Design the dashboard and basic structure for clients’ accounts.

This may sound very bland right now but please ask questions in PMB and I will clarify as needed.

Theme Conversion

Theme Conversion
I need someone that can convert a phPBB web theme to SMF (SimpleMachine Forums) lates version of 2.0 RC3.

This designer must be familiar with how SMF works. The theme must be converted to work with all SMF functions including installation through the SMF theme manager.

Certain image folders and CSS, HTML files may need to be created to complete this conversion. Access to all files for both phPBB and SMF available. Also available will be a test site for each.

Designers with less than 10 (ten) positive feedbacks will not be considered.

Data Count Fullfillment System

Data Count Fullfillment System
I have a count and fulfillment system that I use to process large volumes of data. Our client purchases data from us on a wholesale bases and pays us percentage of all data they release to their clients. I am not going to post the live system being used on our site but here is a sample that includes data on about 2/3 of the country. Western states are not in this sample but if you query Eastern states you will see how it works. Here is a link to working demo:

http://www.salesdatainc.com/list.php?page=members&action=consumers_new

We now have new data that needs to be placed into this count system but I also wish to add new data selects and remove or replace some that are in the current data set. I have attached a sample of this new data that will be used in the new system. The entire file contains over 250 million rows of data so it is important we are ready to process not only the sample data but the entire database. This job is not to upload the entire database but to make a 100,000 row sample work and that will be ready to receive and work with the 250 million row file. With such a small sample I would expect instant search query results. The demo above has about 150 million rows of data.

Here are the specifics to the work to be done.

1. Using the existing script and tables use a subdomain from the current domain to develop a count and fulfillment system that will work with the current data.

2. Sample of 100,000 records need to be in a search similar to the following but will need to query by additional fields as specified below.
http://www.salesdatainc.com/list.php?page=members&action=consumers_new
Attached sample is not the entire sample you will work with.

3. Data needs to be selectable by the following fields:

State
City
Zip Code
County
Child Present
Exact Age
Est Age
Est Income
Length of Residence
Homeowner
Property Type
Med Home Value
Marital Status
Ethnic code
Median Yrs in School
Gender
Est Wealth
Phone Present

4. The current system has an admin section. This is where admin sets prices, manage member accounts and release the requested data. This functionality is needed as a separate access for one of our clients so they can manage their own clients. Basically it is another level of access that needs to be built into the existing system but will require some enhancements to meet the needs of our client.

5. Our clients admin section needs to show the dollar amount of data they released to their clients and the amount they owe us which is based upon a percentage of dollar amount they released to their clients. This should be clearly displayed in their admin section so they always know what they owe.

6. In our admin section we also need to see what our client owes, and have access to view all the information on what data they have released including number of records and amount of dollars of data per client. We need to be able to change the percentage they pay us or cancel individual transactions in the event of a problem or testing. Keep in mind the running total should appear in their admin section so they know how much they owe us and we need to be able to reflect credits when they pay us.

I have attached the following two documents:

Data Layout – data dictionary.
Sample Data

The above is all this project is for, however, there will be many enhancements to this going forward. For now I’m keeping it as simple as possible to get this completed and working as quickly as possible.

Please ask questions. A developer will not be chosen until we are sure they understand the scope of the project and we have verified they are qualified to take this project and complete it within a reasonable time.

We will evaluate based upon not only cost but also experience, feedback, time frame to completion and understanding of the work to be done.

I will provide access to the existing admin section and more to certified members with positive feedback and possibly to others based upon level of experience and feedback. Bids will not be accepted from users with little, no or negative feedback.

Thank you for your consideration.

Simple WordPress Fixes Needed.

Simple WordPress Fixes Needed.
Hi,

I have a few WordPress issues that I need fixed. This should be very simple and fast to do for someone familiar with php and WordPress. As you can see I have excellent feedback record and I will pay immediately when fixed. I am available right now.

The site is here…
http://Car-Rental-Agency.net

1 – I need to have the header-landingpage.php (which goes to the theme landingpage.php) changed so it includes the click-able link “Car Rental Agency” as well as the subhead (as it does on the home page). As you can see here it does not show up…
http://car-rental-agency.net/car-rental-coupons/

2 – I need a plug-in (which plug-in do you recommend) or the php code changed to do the following…?

In the Categories and Archives, I want to display, say 5 posts on the category and/or archives page, with maybe 5-6 lines each of the article post, including the Header of the post as well as link that says “read the rest here” which goes to the full post.

Thanks
Ted

Advanced Regular Expression Tips and Techniques

Advanced Regular Expression Tips and Techniques

Regular Expressions are the Swiss Army knife for searching through information for certain patterns. They have a wide arsenal of tools, some of which often go undiscovered or underutilized. Today I will show you some advanced tips for working with regular expressions.


Adding Comments

Sometimes regular expressions can become complex and unreadable. A regular expression you write today may seem too obscure to you tomorrow even though it was your own work. Much like programming in general, it is a good idea to add comments to improve the readability of regular expressions.

For example, here is something we might use to check for US phone numbers.

preg_match("/^(1[-\s.])?(\()?\d{3}(?(2)\))[-\s.]?\d{3}[-\s.]?\d{4}$/",$number)

It can become much more readable with comments and some extra spacing.

preg_match("/^

			(1[-\s.])?	# optional '1-', '1.' or '1'
			( \( )?		# optional opening parenthesis
			\d{3}		# the area code
			(?(2) \) )	# if there was opening parenthesis, close it
			[-\s.]?		# followed by '-' or '.' or space
			\d{3}		# first 3 digits
			[-\s.]?		# followed by '-' or '.' or space
			\d{4}		# last 4 digits

			$/x",$number);

Let’s put it within a code segment.

$numbers = array(
"123 555 6789",
"1-(123)-555-6789",
"(123-555-6789",
"(123).555.6789",
"123 55 6789");

foreach ($numbers as $number) {
	echo "$number is ";

	if (preg_match("/^

			(1[-\s.])?	# optional '1-', '1.' or '1'
			( \( )?		# optional opening parenthesis
			\d{3}		# the area code
			(?(2) \) )	# if there was opening parenthesis, close it
			[-\s.]?		# followed by '-' or '.' or space
			\d{3}		# first 3 digits
			[-\s.]?		# followed by '-' or '.' or space
			\d{4}		# last 4 digits

			$/x",$number)) {

		echo "valid\n";
	} else {
		echo "invalid\n";
	}
}

/* prints

123 555 6789 is valid
1-(123)-555-6789 is valid
(123-555-6789 is invalid
(123).555.6789 is valid
123 55 6789 is invalid

*/

The trick is to use the ‘x’ modifier at the end of the regular expression. It causes the whitespaces in the pattern to be ignored, unless they are escaped (\s). This makes it easy to add comments. Comments start with ‘#’ and end at a newline.


Using Callbacks

In PHP preg_replace_callback() can be used to add callback functionality to regular expression replacements.

Sometimes you need to do multiple replacements. If you call preg_replace() or str_replace() for each pattern, the string will be parsed over and over again.

Let’s look at this example, where we have an e-mail template.

$template = "Hello [first_name] [last_name],

Thank you for purchasing [product_name] from [store_name].

The total cost of your purchase was [product_price] plus [ship_price] for shipping.

You can expect your product to arrive in [ship_days_min] to [ship_days_max] business days.

Sincerely,
[store_manager_name]";

// assume $data array has all the replacement data
// such as $data['first_name'] $data['product_price'] etc...

$template = str_replace("[first_name]",$data['first_name'],$template);
$template = str_replace("[last_name]",$data['last_name'],$template);
$template = str_replace("[store_name]",$data['store_name'],$template);
$template = str_replace("[product_name]",$data['product_name'],$template);
$template = str_replace("[product_price]",$data['product_price'],$template);
$template = str_replace("[ship_price]",$data['ship_price'],$template);
$template = str_replace("[ship_days_min]",$data['ship_days_min'],$template);
$template = str_replace("[ship_days_max]",$data['ship_days_max'],$template);
$template = str_replace("[store_manager_name]",$data['store_manager_name'],$template);

// this could be done in a loop too,
// but I wanted to emphasize how many replacements were made

Notice that each replacement has something in common. They are always strings enclosed within square brackets. We can catch them all with a single regular expression, and handle the replacements in a callback function.

So here is the better way of doing this with callbacks:

// ...

// this will call my_callback() every time it sees brackets
$template = preg_replace_callback('/\[(.*)\]/','my_callback',$template);

function my_callback($matches) {
	// $matches[1] now contains the string between the brackets

	if (isset($data[$matches[1]])) {
		// return the replacement string
		return $data[$matches[1]];
	} else {
		return $matches[0];
	}
}

Now the string in $template is only parsed by the regular expression once.


Greedy vs. Ungreedy

Before I start explaining this concept, I would like to show an example first. Let’s say we are looking to find anchor tags in an html text:

$html = 'Hello World!';

if (preg_match_all('/.*/',$html,$matches)) {

	print_r($matches);

}

The result will be as expected:

/* output:
Array
(
    [0] => Array
        (
            [0] => World!
        )

)
*/

Let’s change the input and add a second anchor tag:

$html = 'Hello
World!';

if (preg_match_all('/.*/',$html,$matches)) {

	print_r($matches);

}

/* output:
Array
(
    [0] => Array
        (
            [0] => Hello
            [1] => World!

        )

)
*/

Again, it seems to be fine so far. But don’t let this trick you. The only reason it works is because the anchor tags are on separate lines, and by default PCRE matches patterns only one line at a time (more info on: ‘m’ modifier). If we encounter two anchor tags on the same line, it will no longer work as expected:

$html = 'Hello World!';

if (preg_match_all('/.*/',$html,$matches)) {

	print_r($matches);

}

/* output:
Array
(
    [0] => Array
        (
            [0] => Hello World!

        )

)
*/

This time the pattern matches the first opening tag, and last opening tag, and everything in between as a single match, instead of making two separate matches. This is due to the default behavior being “greedy”.

“When greedy, the quantifiers (such as * or +) match as many character as possible.”

If you add a question mark after the quantifier (.*?) it becomes “ungreedy”:

$html = 'Hello World!';

// note the ?'s after the *'s
if (preg_match_all('/.*?/',$html,$matches)) {

	print_r($matches);

}

/* output:
Array
(
    [0] => Array
        (
            [0] => Hello
            [1] => World!

        )

)
*/

Now the result is correct. Another way to trigger the ungreedy behavior is to use the U pattern modifier.


Lookahead and Lookbehind Assertions

A lookahead assertion searches for a pattern match that follows the current match. This might be explained easier through an example.

The following pattern first matches for ‘foo’, and then it checks to see if it is followed by ‘bar’:

$pattern = '/foo(?=bar)/';

preg_match($pattern,'Hello foo'); // false
preg_match($pattern,'Hello foobar'); // true

It may not seem very useful, as we could have simply checked for ‘foobar’ instead. However, it is also possible to use lookaheads for making negative assertions. The following example matches ‘foo’, only if it is NOT followed by ‘bar’.

$pattern = '/foo(?!bar)/';

preg_match($pattern,'Hello foo'); // true
preg_match($pattern,'Hello foobar'); // false
preg_match($pattern,'Hello foobaz'); // true

Lookbehind assertions work similarly, but they look for patterns before the current match. You may use (?< for positive assertions, and (?<! for negative assertions.

The following pattern matches if there is a ‘bar’ and it is not following ‘foo’.

$pattern = '/(?<!foo)bar/';

preg_match($pattern,'Hello bar'); // true
preg_match($pattern,'Hello foobar'); // false
preg_match($pattern,'Hello bazbar'); // true

Conditional (If-Then-Else) Patterns

Regular expressions provide the functionality for checking certain conditions. The format is as follows:

(?(condition)true-pattern|false-pattern)

or

(?(condition)true-pattern)

The condition can be a number. In which case it refers to a previously captured subpattern.

For example we can use this to check for opening and closing angle brackets:

$pattern = '/^()$/';

preg_match($pattern, ''); // true
preg_match($pattern, ''); // false
preg_match($pattern, 'hello'); // true

In the example above, ‘1′ refers to the subpattern (<), which is also optional since it is followed by a question mark. Only if that condition is true, it matches for a closing bracket.

The condition can also be an assertion:

// if it begins with 'q', it must begin with 'qu'
// else it must begin with 'f'
$pattern = '/^(?(?=q)qu|f)/';

preg_match($pattern, 'quake'); // true
preg_match($pattern, 'qwerty'); // false
preg_match($pattern, 'foo'); // true
preg_match($pattern, 'bar'); // false

Filtering Patterns

There are various reasons for input filtering when developing web applications. We filter data before inserting it into a database, or outputting it to the browser. Similarly, it is necessary to filter any arbitrary string before including it in a regular expression. PHP provides a function named preg_quote to do the job.

In the following example we use a string that contains a special character (*).

$word = '*world*';

$text = 'Hello *world*!';

preg_match('/'.$word.'/', $text); // causes a warning
preg_match('/'.preg_quote($word).'/', $text); // true

Same thing can be accomplished also by enclosing the string between \Q and \E. Any special character after \Q is ignored until \E.

$word = '*world*';

$text = 'Hello *world*!';

preg_match('/\Q'.$word.'\E/', $text); // true

However, this second method is not 100% safe, as the string itself can contain \E.


Non-capturing Subpatterns

Subpatterns, enclosed by parentheses, get captured into an array so that we can use them later if needed. But there is a way to NOT capture them also.

Let’s start with a very simple example:

preg_match('/(f.*)(b.*)/', 'Hello foobar', $matches);

echo "f* => " . $matches[1]; // prints 'f* => foo'
echo "b* => " . $matches[2]; // prints 'b* => bar'

Now let’s make a small change by adding another subpattern (H.*) to the front:

preg_match('/(H.*) (f.*)(b.*)/', 'Hello foobar', $matches);

echo "f* => " . $matches[1]; // prints 'f* => Hello'
echo "b* => " . $matches[2]; // prints 'b* => foo'

The $matches array was changed, which could cause the script to stop working properly, depending on what we do with those variables in the code. Now we have to find every occurence of the $matches array in the code, and adjust the index number accordingly.

If we are not really interested in the contents of the new subpattern we just added, we can make it ‘non-capturing’ like this:

preg_match('/(?:H.*) (f.*)(b.*)/', 'Hello foobar', $matches);

echo "f* => " . $matches[1]; // prints 'f* => foo'
echo "b* => " . $matches[2]; // prints 'b* => bar'

By adding ‘?:’ at the beginning of the subpattern, we no longer capture it in the $matches array, so the other array values do not get shifted.


Named Subpatterns

There is another method for preventing pitfalls like in the previous example. We can actually give names to each subpattern, so that we can reference them later on using those names instead of array index numbers. This is the format: (?Ppattern)

We could rewrite the first example in the previous section, like this:

preg_match('/(?Pf.*)(?Pb.*)/', 'Hello foobar', $matches);

echo "f* => " . $matches['fstar']; // prints 'f* => foo'
echo "b* => " . $matches['bstar']; // prints 'b* => bar'

Now we can add another subpattern, without disturbing the existing matches in the $matches array:

preg_match('/(?PH.*) (?Pf.*)(?Pb.*)/', 'Hello foobar', $matches);

echo "f* => " . $matches['fstar']; // prints 'f* => foo'
echo "b* => " . $matches['bstar']; // prints 'b* => bar'

echo "h* => " . $matches['hi']; // prints 'h* => Hello'

Don’t Reinvent the Wheel

Perhaps it’s most important to know when NOT to use regular expressions. There are many situations where you can find existing utilities than you can use instead.

Parsing [X]HTML

A poster at Stackoverflow has a brilliant explanation on why we should not use regular expressions to parse [X]HTML.

…dear lord help us how can anyone survive this scourge using regex to parse HTML has doomed humanity to an eternity of dread torture and security holes using regex as a tool to process HTML establishes a breach between this world and the dread realm of corrupt entities…

Joking aside, it is a good idea to take some time and figure out what kind of XML or HTML parsers are available, and how they work. For example, PHP offers multiple extensions related to XML (and HTML).

Example: Getting the second link url in an HTML page

$doc = DOMDocument::loadHTML('
	<html>
	<body>Test
		<a href="http://www.nettuts.com">First link</a>
		<a href="http://net.tutsplus.com">Second link</a>
	</body>
	</html>
');

echo $doc->getElementsByTagName('a')
		->item(1)
		->getAttribute('href');

// prints: http://net.tutsplus.com

Validating Form Input

Again, you can use existing functions to validate user inputs, such as form submissions.

if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {

	$errors []= "Please enter a valid e-mail.";
}
// get supported filters
print_r(filter_list());

/* output
Array
(
    [0] => int
    [1] => boolean
    [2] => float
    [3] => validate_regexp
    [4] => validate_url
    [5] => validate_email
    [6] => validate_ip
    [7] => string
    [8] => stripped
    [9] => encoded
    [10] => special_chars
    [11] => unsafe_raw
    [12] => email
    [13] => url
    [14] => number_int
    [15] => number_float
    [16] => magic_quotes
    [17] => callback
)
*/

More info: PHP Data Filtering

Other

Here are some other utilities to keep in mind, before using regular expressions:


Thanks so much for reading!



Php: A/b Split Testing Script

Php: A/b Split Testing Script
Dear programmers,

I need a A/B split testing script coded in PHP. If possible, I’d prefer it to NOT involve MySQL databases. The point of this script is to test which of two (or more) web pages converts better into sales.

The script has the following requirements:

1) I should be to split multiple variables, and with multiple rotations each.

2) I should be able to assign a specific percentage to each rotation (not necessarily an equal percentage to each). Also, I should be able to assign a price value to each variation so the script can quickly sum up which variation has generated more sales.

3) The script will not show on the internet browser the fact that I am split testing multiple variables. So, if I am split testing two pages, the URL must remain equal for both.

4) The script will show the same variation of the split test to the same visitor. So, if one person visits my site and he sees variation #1, then he will always see variation #1 if he visits my site again in the future. In order to do that, the script with insert a cookie on the visitor and will also register the IP (same IP = same variation).

5) The script needs to be easy to install and to use, using a user friendly dashboard to set up the split tests.

I look forward your bids!

Bulk Email / Email Marketing

Bulk Email / Email Marketing
Need a reliable service that will host our Auto Responders.

We will provide the auto responder software. You will install it on your server.

We will upload our own email lists.

The auto responder software requires a Linux server with PhP and MySQL.

Average Daily Volume: 25,000 emails

What we need from you is reliability and deliverability.