<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CrankBerry Blog &#187; PHP</title>
	<atom:link href="http://www.crankberryblog.com/category/scripts-and-programming/php-programming/feed" rel="self" type="application/rss+xml" />
	<link>http://www.crankberryblog.com</link>
	<description>Sharing ideas on web design, development and the internet economy</description>
	<lastBuildDate>Thu, 22 Apr 2010 21:46:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Random row from your MySQL table with PHP, alternative to ORDER BY rand()</title>
		<link>http://www.crankberryblog.com/2010/random-row-from-your-mysql-table-with-php-alternative-to-order-by-rand</link>
		<comments>http://www.crankberryblog.com/2010/random-row-from-your-mysql-table-with-php-alternative-to-order-by-rand#comments</comments>
		<pubDate>Thu, 22 Apr 2010 21:28:04 +0000</pubDate>
		<dc:creator>Jerry Low</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP Script]]></category>
		<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://www.crankberryblog.com/?p=379</guid>
		<description><![CDATA[Working with MySQL and PHP is awesome. Its one of the best way to manage your data, but once in a while you may want to do some randomizing. One problem I came across recently was how to select a random row from your MySQL table with PHP. Using the ORDER BY rand() method in your query maybe a bit slow so here's what we've got.]]></description>
			<content:encoded><![CDATA[<p>Working with MySQL and PHP is awesome. Its one of the best way to manage your data, but once in a while you may want to do some randomizing. One problem I came across recently was how to select a random row from your MySQL table with PHP. Using the ORDER BY rand() method in your query maybe a bit slow so here&#039;s what we&#039;ve got.</p>
<h3>The Premade Method</h3>
<p>As I mentioned in the beginning. MySQL actually has a premade method that allows you to select a random row by querying for it.</p>
<div class="dean_ch" style="white-space: wrap;"><a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="st0">&quot;SELECT * FROM table ORDER BY rand() LIMIT 0,1&quot;</span><span class="br0">&#41;</span>;</div>
<p>This method is great but if you are randomizing from a large table this method is not very efficient and with a high volume of queries it really puts a strain on your DB.</p>
<h3>The New Method &#8211; Randomizing 1 Entry</h3>
<p>Now here&#039;s the new solution by selecting a random row with the offset. This method will query exactly to the random entry; thus, making this process much faster.</p>
<div class="dean_ch" style="white-space: wrap;"><span class="re0">$query</span> = <span class="st0">&quot;SELECT * FROM table&quot;</span><br />
<span class="re0">$num_rows</span> = <a href="http://www.php.net/mysql_num_rows"><span class="kw3">mysql_num_rows</span></a><span class="br0">&#40;</span> <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span> <span class="re0">$query</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span>;</p>
<p><span class="co1">//Random Number</span><br />
<span class="re0">$rand_row</span> = <a href="http://www.php.net/rand"><span class="kw3">rand</span></a><span class="br0">&#40;</span><span class="nu0">0</span>, <span class="re0">$num_rows</span> &#8211; <span class="nu0">1</span><span class="br0">&#41;</span>;</p>
<p><span class="co1">//Selecting the Random Row</span><br />
<span class="re0">$rand_row</span> = <span class="re0">$query</span> .= <span class="st0">&quot; LIMIT $rand_row, 1&quot;</span>;</div>
<p>Now you can modify the $query line to include your filters and sorting stuff, whatever you need.</p>
<h3>The New Method &#8211; Randomizing More than 1 Entry</h3>
<p>The above method right now can only select a single row. What if you want to randomized more than one item. Here&#039;s a method to select multiple items without overlap.</p>
<div class="dean_ch" style="white-space: wrap;"><span class="co1">//Set the Amount of Random Rows you want</span><br />
<span class="re0">$rand_amount</span> = <span class="nu0">5</span>;</p>
<p><span class="re0">$query</span> = <span class="st0">&quot;SELECT * FROM table&quot;</span><br />
<span class="re0">$num_rows</span> = <a href="http://www.php.net/mysql_num_rows"><span class="kw3">mysql_num_rows</span></a><span class="br0">&#40;</span> <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span> <span class="re0">$query</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span>;</p>
<p><span class="co1">//Make sure you have more than the amount of random count you want</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$num_rows</span> &lt;= <span class="re0">$rand_amount</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//An Array of Numbers Choosen</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$rand_array</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Do IT!!</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$i</span> = <span class="nu0">1</span>; <span class="re0">$i</span> &gt;= <span class="re0">$rand_amount</span>; <span class="re0">$i</span>++ <span class="br0">&#41;</span> <span class="br0">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">do</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$rand_added</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$rand_num</span> = <a href="http://www.php.net/rand"><span class="kw3">rand</span></a><span class="br0">&#40;</span><span class="nu0">0</span>, <span class="re0">$num_rows</span> &#8211; <span class="nu0">1</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Should We Add to Array</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>!<a href="http://www.php.net/in_array"><span class="kw3">in_array</span></a><span class="br0">&#40;</span><span class="re0">$rand_num</span>, <span class="re0">$rand_array</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$rand_array</span><span class="br0">&#91;</span><span class="br0">&#93;</span> = <span class="re0">$rand_num</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$rand_added</span> = <span class="kw2">TRUE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">while</span> <span class="br0">&#40;</span>!<span class="re0">$rand_added</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//You now have a set of random row numbers to choose from</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Display The Result of What you have</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$rand_array</span> <span class="kw1">as</span> <span class="re0">$rand_num</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$new_query</span> = <span class="re0">$query</span> . <span class="st0">&quot; LIMIT $rand_num, 1&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Displaying What you have</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$current_row</span> = <a href="http://www.php.net/mysql_fetch_array"><span class="kw3">mysql_fetch_array</span></a><span class="br0">&#40;</span> <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span> <span class="re0">$new_query</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
<p>To be honest you can use the multiple randomizer and just set the random amount to 1 but the other method saves you like 20 lines of code. Imagine how much faster that could be!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crankberryblog.com/2010/random-row-from-your-mysql-table-with-php-alternative-to-order-by-rand/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Automated MySQL database backup with PHP and cronjob</title>
		<link>http://www.crankberryblog.com/2010/automated-mysql-database-backup-with-php-and-cronjob</link>
		<comments>http://www.crankberryblog.com/2010/automated-mysql-database-backup-with-php-and-cronjob#comments</comments>
		<pubDate>Fri, 16 Apr 2010 17:04:36 +0000</pubDate>
		<dc:creator>Jerry Low</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Web Owners]]></category>
		<category><![CDATA[Cronjob]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP Script]]></category>

		<guid isPermaLink="false">http://www.crankberryblog.com/?p=373</guid>
		<description><![CDATA[At some point of working on your website you'll want to back up you MySQL database. This is they key for all of you building dynamic sites. If one day your server goes down or something you may have the files backed up but without the database you'll have to start from scratch again. If you operate a very slow-paced site then manual back up is fine but if you want to backup your database daily then it becomes tedious. I, myself is lazy so I came up with a PHP and Cronjob solution to automatically backup MySQL database.]]></description>
			<content:encoded><![CDATA[<p>At some point of working on your website you&#039;ll want to back up you MySQL database. This is they key for all of you building dynamic sites. If one day your server goes down or something you may have the files backed up but without the database you&#039;ll have to start from scratch again. If you operate a very slow-paced site then manual back up is fine but if you want to backup your database daily then it becomes tedious. I, myself is lazy so I came up with a PHP and Cronjob solution to automatically backup MySQL database.</p>
<h3>Automating It</h3>
<p><strong>What you need?</strong> The first thing you need to know how to do it set cronjobs. If you don&#039;t know how to do that you can <a href="http://www.crankberryblog.com/2009/setting-php-cron-job-with-crontab" title="Learn to set cronjobs">learn how to set cronjobs here</a>. The cronjob is what will automate your server to run the script and how often to run it.</p>
<h3>The Files</h3>
<p>All you&#039;ll need is two files to make this work. The first file, <strong>mysqldump.php</strong> can be grabbed from <a href="http://www.creativefactory.it/lab/">CreativeFactory.it</a>. The next thing you need is my backup.php file. Just create a file called <strong>backup.php</strong> and dump the following script inside.</p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw2">&lt;?php</span></p>
<p><span class="co1">//The File Name You Want To Use</span><br />
<span class="re0">$fileName</span> = <span class="st0">&#039;Filename&#039;</span>;</p>
<p><span class="co1">//Global</span><br />
<span class="re0">$sqlhost</span> = <span class="st0">&#039;localhost&#039;</span>;<br />
<span class="re0">$sqluser</span> = <span class="st0">&#039;db_user&#039;</span>;<br />
<span class="re0">$sqlpass</span> = <span class="st0">&#039;db_password&#039;</span>;<br />
<span class="re0">$sqldb</span> = <span class="st0">&#039;db_name&#039;</span>;</p>
<p><span class="co1">//**********************************</span><br />
<span class="co1">//You Don&#039;t Need to Edit This</span><br />
<span class="co1">//**********************************</span></p>
<p><span class="co1">//Today&#039;s Timestamp</span><br />
<span class="re0">$today_ts</span> = <a href="http://www.php.net/strtotime"><span class="kw3">strtotime</span></a><span class="br0">&#40;</span><span class="st0">&quot;now&quot;</span><span class="br0">&#41;</span>;</p>
<p>
<span class="re0">$backupDate</span> = <a href="http://www.php.net/date"><span class="kw3">date</span></a><span class="br0">&#40;</span><span class="st0">&#039;y.m.d.h.i&#039;</span>, <span class="re0">$today_ts</span><span class="br0">&#41;</span>;<br />
<span class="re0">$backupFile</span> = &nbsp;<span class="re0">$backupDate</span>.<span class="st0">&#039;- &#039;</span>.<span class="re0">$fileName</span>.<span class="st0">&#039;.txt&#039;</span>;</p>
<p><span class="co1">//Connect to mysql server</span><br />
<span class="re0">$connessione</span> = @<a href="http://www.php.net/mysql_connect"><span class="kw3">mysql_connect</span></a><span class="br0">&#40;</span><span class="re0">$sqlhost</span>,<span class="re0">$sqluser</span>,<span class="re0">$sqlpass</span><span class="br0">&#41;</span>;</p>
<p><span class="co1">//Include class</span><br />
<span class="kw1">require_once</span><span class="br0">&#40;</span><span class="st0">&#039;mysqldump.php&#039;</span><span class="br0">&#41;</span>;</p>
<p><span class="co1">//Create new instance of MySQLDump</span><br />
<span class="re0">$dumper</span> = <span class="kw2">new</span> MySQLDump<span class="br0">&#40;</span><span class="re0">$sqldb</span><span class="br0">&#41;</span>;</p>
<p><span class="co1">//If you want to write the MySQL dump to file</span><br />
<span class="re0">$dumper</span>-&gt;<span class="me1">writeDump</span><span class="br0">&#40;</span><span class="re0">$backupFile</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">?&gt;</span></div>
<h3>The Setup</h3>
<p>Configure the first file variables of the script and then just leave the rest. Put the backup.php and mysqldump.php in the same folder where you want the back up files to be dumped. Set the cronjob to run backup.php you don&#039;t need to worry about mysqldump.php. That&#039;s it, it&#039;ll automatically backup.</p>
<h3>Possible Problems</h3>
<p>The problems that you may experience is the MySQL privileges. If your account doesn&#039;t have enough privilege then you may not be able to properly query the database. Another problem maybe the CHMOD of the folder you&#039;re backing up to. You need to have write access into that folder.</p>
<h3>Recovering from Backup</h3>
<p>To recover you database just log into your phpMyAdmin, open the database you want to recover. Select the import tab and just browse for the file. If I recall the file itself should overwrite tables that are already in place if not then you may have to drop all the tables first.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crankberryblog.com/2010/automated-mysql-database-backup-with-php-and-cronjob/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Awesome image cropper/thumbnail maker script &#8211; Modified Marquee Tool</title>
		<link>http://www.crankberryblog.com/2010/awesome-image-cropperthumbnail-maker-script-modified-marquee-tool</link>
		<comments>http://www.crankberryblog.com/2010/awesome-image-cropperthumbnail-maker-script-modified-marquee-tool#comments</comments>
		<pubDate>Tue, 23 Feb 2010 17:59:31 +0000</pubDate>
		<dc:creator>Jerry Low</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP Scripts]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Thumbnail]]></category>

		<guid isPermaLink="false">http://www.crankberryblog.com/?p=344</guid>
		<description><![CDATA[As I'm recoding my portfolio right now, I thought to myself - how great would it be to have a thumbnail maker tool. Some PHP or Javascript solution to crop images dynamically without the use of Photoshop. I would hate to fire up Photoshop every time I want to upload something. I'm sure you've all been there before. Anyways I landed upon a script that suited my need exactly. The <a href="http://marqueetool.net/">Rectangle Marquee Tool</a>. The tool looks great but was a bit confusing for me to get working and based on the comment for a few others too. Now I've also done some slight PHP modification to get the script working to my needs and generating the correct thumbnails. 

See what I'm mumbling on about right here:
<strong><a href="http://www.crankberryblog.com/demo/marqueetool/">Demonstration of Marquee Tool</a></strong>


<img src="http://www.crankberryblog.com/images/thumbnail-cropper-script.jpg" />]]></description>
			<content:encoded><![CDATA[<p>As I&#039;m recoding my portfolio right now, I thought to myself &#8211; how great would it be to have a thumbnail maker tool. Some PHP or Javascript solution to crop images dynamically without the use of Photoshop. I would hate to fire up Photoshop every time I want to upload something. I&#039;m sure you&#039;ve all been there before. Anyways I landed upon a script that suited my need exactly. The <a href="http://marqueetool.net/">Rectangle Marquee Tool</a>. The tool looks great but was a bit confusing for me to get working and based on the comment for a few others too. Now I&#039;ve also done some slight PHP modification to get the script working to my needs and generating the correct thumbnails. </p>
<p>See what I&#039;m mumbling on about right here:<br />
<strong><a href="http://www.crankberryblog.com/demo/marqueetool/">Demonstration of Marquee Tool</a></strong></p>
<p><img src="http://www.crankberryblog.com/images/thumbnail-cropper-script.jpg" /></p>
<p>Once again I&#039;d like to clarify that I did not make the Rectangular Marquee Tool, it was written by Sergey Koksharov using certain functions of the Prototype/Scriptaculous framework. I&#039;m merely just doing some tweaks to make it work better in my circumstance. So all credits goes to Sergey and the Scriptaculous team.</p>
<p>My modification will allow you to do certain things such as:</p>
<ul>
<li>Define a input image dynamically</li>
<li>Define the output image dynamically</li>
<li>Generate a final output image</li>
</ul>
<p>I believe the PHP included in the original script was a bit dated so it wasn&#039;t working on my machine and servers that&#039;s why I made my own version.</p>
<p>So to start off you need to download the required files from: <a href="http://marqueetool.net/download/">here</a>. Then you need to extract the files into a scripts folder or whichever you prefer just remember to rename the source path after. The real files you need are:</p>
<ul>
<li>marker.css</li>
<li>prototype_reduced.js</li>
<li>rectmarquee.js</li>
</ul>
<p>Once you&#039;ve got the files extract them to the proper folders and create fresh PHP file to work with. This is the file your script will run from. I&#039;ll break down my code into chunks for you to understand, but I&#039;ll go in order so if you copy each chunk and paste them in the same order it should work. That is if you&#039;re reading this instruction right ;)</p>
<h3>Before the HTML</h3>
<p>So this piece of code starts off your whole document even before the HTML code. There&#039;s only two codes you need to modify which is the $img_src (original file) and $img_dst (final thumbnail file).</p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw2">&lt;?php</span></p>
<p><span class="co1">//Source Image to Crop From</span><br />
<span class="re0">$img_src</span> = <span class="st0">&#039;img/&#039;</span>;</p>
<p><span class="co1">//Thumbnail Location</span><br />
<span class="re0">$img_dst</span> = <span class="st0">&#039;img/&#039;</span>;</p>
<p><span class="co1">//If you want to feed this dynamically you can use</span><br />
<span class="co1">//$_GET tags or draw them in through a database</span></p>
<p><span class="co1">//Some coding here not just for looks.</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$img_src</span>!=<span class="st0">&#034;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Check if Image</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Image Dimension</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>!<a href="http://www.php.net/getimagesize"><span class="kw3">getimagesize</span></a><span class="br0">&#40;</span><span class="re0">$img_src</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Not A Valid Image</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$img_error</span> = <span class="nu0">1</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Getting Image Dimension</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$img_dim</span> = <a href="http://www.php.net/getimagesize"><span class="kw3">getimagesize</span></a><span class="br0">&#40;</span><span class="re0">$img_src</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Verfiy This Is An Image</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$img_verify</span> = @imagecreatefromjpeg<span class="br0">&#40;</span><span class="re0">$img_src</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>!<span class="re0">$img_verify</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$img_error</span> = <span class="nu0">1</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Getting Dimensions</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$img_w</span> = imagesx<span class="br0">&#40;</span><span class="re0">$img_verify</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$img_h</span> = imagesy<span class="br0">&#40;</span><span class="re0">$img_verify</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$img_error</span> == <span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&#039;Not a valid image&#039;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">?&gt;</span></div>
<h3>The HTML and HEAD Tags</h3>
<p>This is the code to begin your HTML tag and your chunk of HEAD tag. Note that if you didn&#039;t place your files in the same location you have to change the source path.</p>
<div class="dean_ch" style="white-space: wrap;">&lt;html&gt;<br />
&lt;head&gt;</p>
<p>&lt;link rel=<span class="st0">&quot;stylesheet&quot;</span> type=<span class="st0">&quot;text/css&quot;</span> href=<span class="st0">&quot;css/marker.css&quot;</span> /&gt;</p>
<p>&lt;script type=<span class="st0">&quot;text/javascript&quot;</span> src=<span class="st0">&quot;scripts/prototype_reduced.js&quot;</span>&gt;&lt;/script&gt;<br />
&lt;script type=<span class="st0">&quot;text/javascript&quot;</span> src=<span class="st0">&quot;scripts/rectmarquee.js&quot;</span>&gt;&lt;/script&gt; </p>
<p>&lt;/head&gt;</p></div>
<h3>Your BODY and Closing HTML Tag</h3>
<p>So all that&#039;s left is the BODY tag. There&#039;s really no modification you need to do here except for the (don&#039;t paste this in your code in order):</p>
<div class="dean_ch" style="white-space: wrap;">coords: <span class="br0">&#123;</span>x1: <span class="nu0">0</span>, y1: <span class="nu0">0</span>, width: <span class="nu0">100</span>, height: <span class="nu0">50</span><span class="br0">&#125;</span></div>
<p>This line defines where the crop box starts and how big it should be. You can play around with it if you want. Anyways here&#039;s the coding (do paste this in).</p>
<div class="dean_ch" style="white-space: wrap;">&lt;body&gt;</p>
<p>&lt;script type=<span class="st0">&quot;text/javascript&quot;</span>&gt; &nbsp;<br />
<span class="kw2">var</span> MarqueeTool;</p>
<p><span class="kw2">function</span> onMarqueeUpdate<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> coords = MarqueeTool.getCoords<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#039;coord_x&#039;</span><span class="br0">&#41;</span>.value = coords.x1;<br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#039;coord_y&#039;</span><span class="br0">&#41;</span>.value = coords.y1;<br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#039;coord_w&#039;</span><span class="br0">&#41;</span>.value = coords.width;<br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#039;coord_h&#039;</span><span class="br0">&#41;</span>.value = coords.height;<br />
<span class="br0">&#125;</span></p>
<p>
<span class="kw2">function</span> onWindowLoad<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; MarqueeTool = <span class="kw2">new</span> Marquee<span class="br0">&#40;</span><span class="st0">&#039;sampleid&#039;</span>, <span class="br0">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; preview: <span class="st0">&#039;preview&#039;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; color: <span class="st0">&#039;#000&#039;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; opacity: <span class="nu0">0.45</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; coords: <span class="br0">&#123;</span>x1: <span class="nu0">0</span>, y1: <span class="nu0">0</span>, width: <span class="nu0">100</span>, height: <span class="nu0">50</span><span class="br0">&#125;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; MarqueeTool.setOnUpdateCallback<span class="br0">&#40;</span>onMarqueeUpdate<span class="br0">&#41;</span>;</p>
<p><span class="br0">&#125;</span> </p>
<p>Event.observe<span class="br0">&#40;</span>window, <span class="st0">&#039;load&#039;</span>, onWindowLoad<span class="br0">&#41;</span>; </p>
<p><span class="kw2">&lt;/script&gt;</span> </p>
<p>&lt;div style=<span class="st0">&quot;width: &lt;?php echo $img_w; ?&gt;; height: &lt;?php echo $img_h; ?&gt;; position: relative;&quot;</span>&gt;<br />
&nbsp; &nbsp; &lt;img src=<span class="st0">&quot;&lt;?php echo $img_src; ?&gt;&quot;</span> alt=<span class="st0">&quot;&quot;</span> id=<span class="st0">&quot;sampleid&quot;</span> /&gt; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &lt;div id=<span class="st0">&quot;preview&quot;</span> style=<span class="st0">&quot;position: absolute; right: 10px; bottom: 10px; border: 2px solid #FFF;&quot;</span>&gt;&lt;/div&gt; <br />
&lt;/div&gt;</p>
<p>&lt;form name=<span class="st0">&quot;coordsform&quot;</span> action=<span class="st0">&quot;crop.php&quot;</span> target=<span class="st0">&quot;_blank&quot;</span> method=<span class="st0">&quot;get&quot;</span>&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;input type=<span class="st0">&quot;hidden&quot;</span> name=<span class="st0">&quot;img&quot;</span> value=<span class="st0">&quot;&lt;?php echo $img_src; ?&gt;&quot;</span> /&gt;<br />
&nbsp; &nbsp; &lt;input type=<span class="st0">&quot;hidden&quot;</span> name=<span class="st0">&quot;img_dst&quot;</span> value=<span class="st0">&quot;&lt;?php echo $img_dst; ?&gt;&quot;</span> /&gt;<br />
&nbsp; &nbsp; &lt;input type=<span class="st0">&quot;hidden&quot;</span> name=<span class="st0">&quot;x&quot;</span> value=<span class="st0">&quot;5&quot;</span> id=<span class="st0">&quot;coord_x&quot;</span> /&gt;<br />
&nbsp; &nbsp; &lt;input type=<span class="st0">&quot;hidden&quot;</span> name=<span class="st0">&quot;y&quot;</span> value=<span class="st0">&quot;0&quot;</span> id=<span class="st0">&quot;coord_y&quot;</span> /&gt;<br />
&nbsp; &nbsp; &lt;input type=<span class="st0">&quot;hidden&quot;</span> name=<span class="st0">&quot;w&quot;</span> value=<span class="st0">&quot;0&quot;</span> id=<span class="st0">&quot;coord_w&quot;</span> /&gt;<br />
&nbsp; &nbsp; &lt;input type=<span class="st0">&quot;hidden&quot;</span> name=<span class="st0">&quot;h&quot;</span> value=<span class="st0">&quot;0&quot;</span> id=<span class="st0">&quot;coord_h&quot;</span> /&gt;</p>
<p>&nbsp; &nbsp; <br />
&nbsp; &nbsp; &lt;input name=<span class="st0">&quot;submit&quot;</span> type=<span class="st0">&quot;submit&quot;</span> value=<span class="st0">&quot;Make Thumbnail&quot;</span>&gt;<br />
&lt;/form&gt; </p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</div>
<p>Now we&#039;re just about complete here. All this tool does right now is let you select an area to crop. To actually make the thumbnail you need the assistant of PHP (you can do it in JS but I prefer PHP). You need to have the GD library enabled in order for this to work. </p>
<p>At this point you need to create your last file which is named crop.php. All you need in crop.php is this:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw2">&lt;?php</span> </p>
<p><span class="co1">//Variables</span><br />
<span class="re0">$img_w</span> = <span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st0">&#039;w&#039;</span><span class="br0">&#93;</span>;<br />
<span class="re0">$img_h</span> = <span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st0">&#039;h&#039;</span><span class="br0">&#93;</span>;<br />
<span class="re0">$img_x</span> = <span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st0">&#039;x&#039;</span><span class="br0">&#93;</span>;<br />
<span class="re0">$img_y</span> = <span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st0">&#039;y&#039;</span><span class="br0">&#93;</span>;<br />
<span class="re0">$img_src</span> = <span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st0">&#039;img&#039;</span><span class="br0">&#93;</span>;<br />
<span class="re0">$img_dst</span> = <span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st0">&#039;img_dst&#039;</span><span class="br0">&#93;</span>;</p>
<p><span class="co1">//There&#039;s a Set Thumb</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$img_w</span>&gt;<span class="nu0">0</span> &amp;&amp; <span class="re0">$img_h</span>&gt;<span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> </p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Create New Image</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$new_img</span> = imagecreatetruecolor<span class="br0">&#40;</span><span class="re0">$img_w</span>, <span class="re0">$img_h</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Loading The Original Image</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$old_img</span> = imagecreatefromjpeg<span class="br0">&#40;</span><span class="re0">$img_src</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Copying Image</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; imagecopy<span class="br0">&#40;</span><span class="re0">$new_img</span>, <span class="re0">$old_img</span>, <span class="nu0">0</span>, <span class="nu0">0</span>, <span class="re0">$img_x</span>, <span class="re0">$img_y</span>, <span class="re0">$img_w</span>, <span class="re0">$img_h</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;Content-Type: image/jpeg&quot;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; @imagejpeg<span class="br0">&#40;</span><span class="re0">$new_img</span>, <span class="re0">$img_dst</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; imagejpeg<span class="br0">&#40;</span><span class="re0">$new_img</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Destroy the Old Images</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; imagedestroy<span class="br0">&#40;</span><span class="re0">$old_img</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; imagedestroy<span class="br0">&#40;</span><span class="re0">$new_img</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">?&gt;</span></div>
<p>That&#039;s it, and everything should work like planed. I&#039;ve tested this script out a few times but if anything doesn&#039;t work just let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crankberryblog.com/2010/awesome-image-cropperthumbnail-maker-script-modified-marquee-tool/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP password strength detector script</title>
		<link>http://www.crankberryblog.com/2010/php-password-strength-detector-script</link>
		<comments>http://www.crankberryblog.com/2010/php-password-strength-detector-script#comments</comments>
		<pubDate>Wed, 17 Feb 2010 08:23:34 +0000</pubDate>
		<dc:creator>Jerry Low</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP Script]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.crankberryblog.com/?p=333</guid>
		<description><![CDATA[If you operate a user registration script on your website you may want to ensure users are protected. There are certain aspects of this you cannot control such as the user's self selected password. Here I have a script that will detect the user's password strength and base on that you could reject the password or just make notice to the user their password's strength.

<img src="http://www.crankberryblog.com/images/password-strength-detector.jpg" alt="PHP Password Strength Detector Script" />]]></description>
			<content:encoded><![CDATA[<p>If you operate a user registration script on your website you may want to ensure users are protected. There are certain aspects of this you cannot control such as the user&#039;s self selected password. Here I have a script that will detect the user&#039;s password strength and base on that you could reject the password or just make notice to the user their password&#039;s strength.</p>
<p><img src="http://www.crankberryblog.com/images/password-strength-detector.jpg" alt="PHP Password Strength Detector Script" /></p>
<p>Basically we&#039;re checking against a few things here and we give a rating to each criteria and then add up the final score to see where they rank. Here is what we&#039;ll be checking against:</p>
<ul>
<li>Length &#8211; 10 Points</li>
<li>Lower Case Characters &#8211; 20 Points</li>
<li>Upper Case Characters &#8211; 20 Points</li>
<li>Numbers &#8211; 20 Points</li>
<li>Special Characters &#8211; 30 Points</li>
</ul>
<p></p>
<p>The points are given based on how much value they may add to the password. Enough talking I present you the function:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw2">function</span> password_strength<span class="br0">&#40;</span><span class="re0">$password</span>, <span class="re0">$display</span> = <span class="kw2">TRUE</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Strength Scoring</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$pass_score</span> = <span class="nu0">0</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$pass_len</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$pass_lc</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$pass_uc</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$pass_num</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$pass_weird</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Pad</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$password</span> = <span class="nu0">0</span> . <span class="re0">$password</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Check Length</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$password</span><span class="br0">&#41;</span>&gt;<span class="nu0">6</span><span class="br0">&#41;</span> <span class="re0">$pass_len</span> = <span class="kw2">TRUE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Check Lowercase Characters</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$i</span> = <span class="nu0">97</span>; <span class="re0">$i</span> &lt;=<span class="nu0">122</span>; <span class="re0">$i</span>++<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>@<a href="http://www.php.net/strpos"><span class="kw3">strpos</span></a><span class="br0">&#40;</span><span class="re0">$password</span>, <a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="re0">$i</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="re0">$pass_lc</span> = <span class="kw2">TRUE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Check Uppercase Characters</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$i</span> = <span class="nu0">65</span>; <span class="re0">$i</span> &lt;=<span class="nu0">90</span>; <span class="re0">$i</span>++<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>@<a href="http://www.php.net/strpos"><span class="kw3">strpos</span></a><span class="br0">&#40;</span><span class="re0">$password</span>, <a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="re0">$i</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="re0">$pass_uc</span> = <span class="kw2">TRUE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Check Numbers</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$i</span> = <span class="nu0">48</span>; <span class="re0">$i</span> &lt;=<span class="nu0">57</span>; <span class="re0">$i</span>++<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>@<a href="http://www.php.net/strpos"><span class="kw3">strpos</span></a><span class="br0">&#40;</span><span class="re0">$password</span>, <a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="re0">$i</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="re0">$pass_num</span> = <span class="kw2">TRUE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Check Weird Characters</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$i</span> = <span class="nu0">33</span>; <span class="re0">$i</span> &lt;=<span class="nu0">126</span>; <span class="re0">$i</span>++<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Excempt</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re0">$i</span>&gt;<span class="nu0">47</span> &amp;&amp; <span class="re0">$i</span>&lt;<span class="nu0">58</span><span class="br0">&#41;</span> || <span class="br0">&#40;</span><span class="re0">$i</span>&gt;<span class="nu0">64</span> &amp;&amp; <span class="re0">$i</span>&lt;<span class="nu0">91</span><span class="br0">&#41;</span> || <span class="br0">&#40;</span><span class="re0">$i</span>&gt;<span class="nu0">96</span> &amp;&amp; <span class="re0">$i</span>&lt;<span class="nu0">123</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Null</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>@<a href="http://www.php.net/strpos"><span class="kw3">strpos</span></a><span class="br0">&#40;</span><span class="re0">$password</span>, <a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="re0">$i</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="re0">$pass_weird</span> = <span class="kw2">TRUE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Points</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$pass_len</span><span class="br0">&#41;</span> <span class="re0">$pass_score</span> = <span class="re0">$pass_score</span> + <span class="nu0">10</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$pass_lc</span><span class="br0">&#41;</span> <span class="re0">$pass_score</span> = <span class="re0">$pass_score</span> + <span class="nu0">20</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$pass_uc</span><span class="br0">&#41;</span> <span class="re0">$pass_score</span> = <span class="re0">$pass_score</span> + <span class="nu0">20</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$pass_num</span><span class="br0">&#41;</span> <span class="re0">$pass_score</span> = <span class="re0">$pass_score</span> + <span class="nu0">20</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$pass_weird</span><span class="br0">&#41;</span> <span class="re0">$pass_score</span> = <span class="re0">$pass_score</span> + <span class="nu0">30</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Displaying</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$display</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&#039;&lt;div style=&quot;width: 210px; height: 15px; border: 1px solid #919191; padding: 1px; font-size: 9px; color: #FFFFFF; font-family: Arial;&quot;&gt;&#039;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$pass_score</span> &lt;= <span class="nu0">40</span><span class="br0">&#41;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&#039;&lt;div style=&quot;width: 65px; height: 13px; background: #910e0e; padding: 2px 0 0 5px;&quot;&gt;WEAK&lt;/div&gt;&#039;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$pass_score</span> &gt; <span class="nu0">40</span> &amp;&amp; <span class="re0">$pass_score</span> &lt; <span class="nu0">70</span><span class="br0">&#41;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&#039;&lt;div style=&quot;width: 135px; height: 13px; background: #ceb827; padding: 2px 0 0 5px;&quot;&gt;AVERAGE&lt;/div&gt;&#039;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$pass_score</span> &gt;= <span class="nu0">71</span><span class="br0">&#41;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&#039;&lt;div style=&quot;width: 205px; height: 13px; background: #3ca01a; padding: 2px 0 0 5px;&quot;&gt;STRONG&lt;/div&gt;&#039;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&#039;&lt;/div&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$pass_score</span>;<br />
<span class="br0">&#125;</span></div>
<p>The script itself has a built in display bar which will visuallize how strong or weak the password maybe which could turn off. Here&#039;s an example of calling the script:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="re0">$password</span> = <span class="st0">&quot;GoodBoy&quot;</span>;</p>
<p><span class="co1">//Showing the Password Strength with Visual Bar</span><br />
password_strength<span class="br0">&#40;</span><span class="re0">$password</span><span class="br0">&#41;</span>;</p>
<p><span class="co1">//Not Showing anything at all but storing strength as a variable</span><br />
<span class="re0">$strength</span> = password_strength<span class="br0">&#40;</span><span class="re0">$password</span>, <span class="kw2">FALSE</span><span class="br0">&#41;</span>;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.crankberryblog.com/2010/php-password-strength-detector-script/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Secure PHP login without database</title>
		<link>http://www.crankberryblog.com/2009/secure-php-login-without-database</link>
		<comments>http://www.crankberryblog.com/2009/secure-php-login-without-database#comments</comments>
		<pubDate>Fri, 23 Oct 2009 22:55:09 +0000</pubDate>
		<dc:creator>Jerry Low</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Security]]></category>
		<category><![CDATA[PHP Script]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.crankberryblog.com/?p=143</guid>
		<description><![CDATA[Although not recommended but maybe for some reason you need to create a PHP login without the use of any database (SQL). For some reason you maybe scared to approach, but here I made a script that is fairly secure without utilizing any database at all. It allows users to login and stay logged in. If you are one of those people then here's the script for you. ]]></description>
			<content:encoded><![CDATA[<p>Although not recommended but maybe for some reason you need to create a PHP login without the use of any database (SQL). For some reason you maybe scared to approach, but here I made a script that is fairly secure without utilizing any database at all. It allows users to login and stay logged in. If you are one of those people then here&#039;s the script for you.</p>
<p>Now this script does not use any external files to store user names and password as it opens up more security flaws for hackers, so everything is managed in an array within the PHP. If somebody was able to get a hold of your PHP file this will compromise things but the chances of that happening is fairly close to utilizing a database. </p>
<p><strong>Features</strong></p>
<ul>
<li>Utilizes cookies to give users ability to stay logged in across multiple pages</li>
<li>Secure login algorithm mitigates hacking attempts</li>
</ul>
<p><strong>Drawbacks</strong></p>
<p>Now by not utilizing a database there are some drawbacks and they are:</p>
<ul>
<li>Users cannot change password and user names manually</li>
<li>Users can attempt login as many times as they want</li>
</ul>
<p>With that said, it means that usernames and passwords must be managed by an admin. If this is still something for you. If this is not for you wait around because I will convert this script into a database version in the future.</p>
<h3>Less Talk More Script</h3>
<p>Installation:</p>
<p>Just download all the necessary files which includes:</p>
<ul>
<li>_login.php</li>
<li>_login_page.php</li>
<li>_login_class.php</li>
<li>_login_users.php</li>
<li>login.php</li>
<li>logout.php</li>
</ul>
<p>Once you put these in your root folder you need to edit the users and settings. Open up _login_users.php and you&#039;ll see:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw2">&lt;?php</span></p>
<p><span class="co1">//My Login Script</span><br />
<span class="co1">//Attach this to any page that requires Login</span></p>
<p>
<span class="co1">//Users and Settings</span><br />
<span class="re0">$domain_code</span> = <span class="st0">&#039;website&#039;</span>;&nbsp; &nbsp; &nbsp; &nbsp;<span class="co1">//Alpha Numeric and no space</span><br />
<span class="re0">$random_num_1</span> = <span class="nu0">20</span>;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Pick a random number between 1 to 500</span><br />
<span class="re0">$random_num_2</span> = <span class="nu0">565</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Pick a random number between 500 to 1000</span><br />
<span class="re0">$random_num_3</span> = <span class="nu0">3</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Pick a random number between 1 to 3</span></p>
<p><span class="co1">//Usernames can contain alphabets, numbers, hyphens and underscore only</span><br />
<span class="co1">//Set users below &#8211; Just add &#034; =&gt; &#034; with the first &#034; being</span><br />
<span class="co1">//the username and the second &#034; after the =&gt; being the password.</span><br />
<span class="co1">//Its an array so add an , after every password except for the</span><br />
<span class="co1">//last one in the list. As shown below</span><br />
<span class="co1">//Eg. $users = array(</span><br />
<span class="co1">//&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;user1&#039; =&gt; &#039;password&#039;,</span><br />
<span class="co1">//&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;user2&#039; =&gt; &#039;password&#039;</span><br />
<span class="co1">//&nbsp; &nbsp; &nbsp; );</span></p>
<p><span class="re0">$users</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#039;user1&#039;</span> =&gt; <span class="st0">&#039;password&#039;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#039;user2&#039;</span> =&gt; <span class="st0">&#039;password&#039;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span>;</p>
<p>
<span class="kw2">?&gt;</span></div>
<p>Modify the domain code and three random numbers. The three random numbers is the key that makes login <em>secure and unique</em> to your website only. Then at the bottom you can create all of your users.</p>
<p>Now in every page that you require the user to login just add the following code to the very top of the page, exactly on line 1.</p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw2">&lt;?php</span> <span class="kw1">require</span><span class="br0">&#40;</span><span class="st0">&#039;_login.php&#039;</span><span class="br0">&#41;</span>; <span class="kw2">?&gt;</span></div>
<p>That&#039;s pretty much all you need to do to install the secure login script. The only other thing if you want is you can edit _login_page.php. That&#039;s the page people see when they need to login.</p>
<p><strong>Login and Logout</strong></p>
<p>You can lead users to login and logout with links to login.php and logout.php as such.</p>
<div class="dean_ch" style="white-space: wrap;">&lt;a href=&quot;login.php&quot;&gt;Login&lt;/a&gt; | &lt;a href=&quot;logout.php&quot;&gt;Logout&lt;/a&gt;</div>
<p><strong>Displaying Macors</strong></p>
<p>In this case the only macro you can call up is the username after they have logged in. You can call it in a welcome back message like this (placed in your HTML).</p>
<div class="dean_ch" style="white-space: wrap;">Welcome back <span class="kw2">&lt;?php</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="re0">$login</span>-&gt;<span class="me1">username</span>; <span class="kw2">?&gt;</span></div>
<p><strong>Download the files:</strong><br />
<a href="http://www.crankberryblog.com/files/php-login-without-database.zip">PHP Login Without Database.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.crankberryblog.com/2009/secure-php-login-without-database/feed</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>In page popup with faded background &#8211; in PHP</title>
		<link>http://www.crankberryblog.com/2009/in-page-popup-with-faded-background-in-php</link>
		<comments>http://www.crankberryblog.com/2009/in-page-popup-with-faded-background-in-php#comments</comments>
		<pubDate>Tue, 20 Oct 2009 23:12:52 +0000</pubDate>
		<dc:creator>Jerry Low</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.crankberryblog.com/?p=232</guid>
		<description><![CDATA[Sometimes you may be required to have popup windows on your website. They're obtrusive and hard to style with your site, in summary - nasty. What I've seen is other websites fade out their background and have an in page popup. I came up with a script that does the same thing in PHP and it looks exactly like the image below. Jump to the next page for the script.

<img src="http://www.crankberryblog.com/images/in-page-pop-up.jpg" />]]></description>
			<content:encoded><![CDATA[<p>Sometimes you may be required to have popup windows on your website. They&#039;re obtrusive and hard to style with your site, in summary &#8211; nasty. What I&#039;ve seen is other websites fade out their background and have an in page popup. I came up with a script that does the same thing in PHP.</p>
<p>Now the code involves multiple parts so bare with me here. Either way your end product will look like the image below.</p>
<p><img src="http://www.crankberryblog.com/images/in-page-pop-up.jpg" /></p>
<p>Lets start with the CSS here. Just copy and paste this into your CSS file or HTML.</p>
<div class="dean_ch" style="white-space: wrap;">&lt;style type=&quot;text/css&quot;&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; html {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; height: 100%; <br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; .fade_container {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; width: 100%;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; height: 100%;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; min-height: 100%;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; position: absolute;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; top: 0;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; left: 0;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; z-index: 100000;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; overflow: hidden;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; .fade {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; width: 100%;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; height: 100%;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; min-height: 100%;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; background: #000;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; position: absolute;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; top: 0;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; left: 0;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; z-index: 110000;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; overflow: hidden;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; .popup {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; font-family: Arial, Helvetica, sans-serif;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; font-size: 10px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; padding: 4px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; position: absolute;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; left: 50%;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; top: 100px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; z-index: 150000;&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; .popup_close {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; font-family: Arial, Helvetica, sans-serif;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; font-size: 9px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; padding: 2px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; margin-bottom: 5px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; background: #CCC;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text-align: right;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; .popup_close a:link, .popup_close a:visited, .popup_close a:hover, .popup_close a:active {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; color: #333;&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text-decoration: none;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&lt;/style&gt;</div>
<p>There&#039;s really no need to edit anything unless you want to change the font and stuff, the colors will be modified later. The next part you have to add this code <strong>right after</strong> your &lt;body&gt; tag.</p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw2">&lt;?php</span></p>
<p><span class="co1">//In Page Popup Box with Faded Background by Jerry Low @crankberryblog.com</span><br />
<span class="co1">//Find other useful scripts at the Crankberry Blog</span></p>
<p><span class="co1">//SETTINGS</span><br />
<span class="re0">$fade_amount</span> = <span class="nu0">60</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//In Percentage</span><br />
<span class="re0">$box_width</span> = <span class="nu0">400</span>;<br />
<span class="re0">$box_background</span> = <span class="st0">&#039;FFFFFF&#039;</span>;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Hex Color</span><br />
<span class="re0">$box_border_width</span> = <span class="nu0">1</span>;<br />
<span class="re0">$box_border_color</span> = <span class="st0">&#039;999999&#039;</span>;&nbsp; &nbsp;<span class="co1">//Hex Color</span><br />
<span class="re0">$close_box</span> = <span class="nu0">1</span>;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Do You Want The Close Bar on Top 1 = Yes, 0 = No</span><br />
<span class="re0">$extension</span> = <span class="st0">&quot;&quot;</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Other Variables that maybe needed, page number etc.</span></p>
<p>
<span class="co1">//Begin Popup Box</span><br />
<span class="re0">$left_margin</span> = <span class="nu0">0</span> &#8211; <span class="br0">&#40;</span><span class="re0">$box_width</span>/<span class="nu0">2</span><span class="br0">&#41;</span>;<br />
<span class="re0">$page_url</span> = <a href="http://www.php.net/basename"><span class="kw3">basename</span></a><span class="br0">&#40;</span><span class="re0">$_SERVER</span><span class="br0">&#91;</span><span class="st0">&#039;PHP_SELF&#039;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;<br />
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$extension</span>!=<span class="st0">&quot;&quot;</span><span class="br0">&#41;</span> <span class="re0">$page_url</span> .= <span class="st0">&#039;?&#039;</span> . <span class="re0">$extension</span>;</p>
<p><span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st0">&#039;popup&#039;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&#039;&lt;div class=&quot;popup&quot; style=&quot;width:&#039;</span>.<span class="re0">$box_width</span>.<span class="st0">&#039;px; background: #&#039;</span>.<span class="re0">$box_background</span>.<span class="st0">&#039;; &nbsp;margin-left:&#039;</span>.<span class="re0">$left_margin</span>.<span class="st0">&#039;px;&#039;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$box_border_width</span>&gt;<span class="nu0">1</span><span class="br0">&#41;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&#039; border: &#039;</span>.<span class="re0">$box_border_width</span>.<span class="st0">&#039;px solid #&#039;</span>.<span class="re0">$box_border_color</span>.<span class="st0">&#039;;&#039;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&#039;&quot;&gt;&#039;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Close Box</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$close_box</span>===<span class="nu0">1</span><span class="br0">&#41;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&#039;&lt;div class=&quot;popup_close&quot;&gt;&lt;a href=&quot;&#039;</span>.<span class="re0">$page_url</span>.<span class="st0">&#039;&quot;&gt;Close (x)&lt;/a&gt;&lt;/div&gt;&#039;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">?&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;!&#8211; START YOUR POPUP CONTENT HERE &#8211;&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="me1">Popup</span> content goes in here!<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;!&#8211; <a href="http://www.php.net/end"><span class="kw3">END</span></a> OF YOUR POPUP CONTENT HERE &#8211;&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">&lt;?php</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&#039;&lt;/div&gt;<br />
&nbsp; &nbsp; &lt;div class=&quot;fade&quot; onclick=&quot;location.replace(<span class="es0">\&#039;</span>&#039;</span>.<span class="re0">$page_url</span>.<span class="st0">&#039;<span class="es0">\&#039;</span>);&quot; style=&quot;opacity: 0.&#039;</span>.<span class="re0">$fade_amount</span>.<span class="st0">&#039;; &nbsp;-moz-opacity: 0.&#039;</span>.<span class="re0">$fade_amount</span>.<span class="st0">&#039;;filter: alpha(opacity: &#039;</span>.<span class="re0">$fade_amount</span>.<span class="st0">&#039;);&quot;&gt;&lt;/div&gt;<br />
&nbsp; &nbsp; &lt;div class=&quot;fade_container&quot;&gt;&#039;</span>;</p>
<p><span class="br0">&#125;</span></p>
<p><span class="kw2">?&gt;</span></div>
<p>Looking at the top part of what you just added, the setting are at the top. Just configure it to what ever you like. </p>
<p>The Content</p>
<p>The content of your popup box goes in between the HTML comment tag in the code above. Exactly where I wrote: Popup content goes in here!</p>
<div class="dean_ch" style="white-space: wrap;">&lt;!&#8211; START YOUR POPUP CONTENT HERE &#8211;&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
Popup content goes in here!<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&lt;!&#8211; END OF YOUR POPUP CONTENT HERE &#8211;&gt;<br />
&nbsp;</div>
<p>Next you need the trigger to activate the popup. Something like this:</p>
<div class="dean_ch" style="white-space: wrap;">&lt;a href=<span class="st0">&quot;?popup=1&lt;?php if ($extension!=&#034;) echo &#039;&amp;&#039; . $extension; ?&gt;&quot;</span>&gt;Activated Box&lt;/a&gt;</div>
<p>To finish off the code you will need to add a &lt;/div&gt; tag just before the &lt;/body&gt; closing tag. Like so:</p>
<div class="dean_ch" style="white-space: wrap;">&lt;/div&gt;&lt;/body&gt;</div>
<p>That&#039;s it and all you need to have your own in page with faded background popup window. Wasn&#039;t that just simple?</p>
<p><strong>Advance Configuration</strong></p>
<p>Now if your pages require other variables to be passed through the URL I noticed that the popup will intrude on that. So I have an extension variable where you can attach other variables to and they will be kept. The variable is in the setting part of the code. Example of attaching some variables.</p>
<div class="dean_ch" style="white-space: wrap;"><span class="re0">$extension</span> = <span class="st0">&quot;&quot;</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Other Variables that maybe needed, page number etc.</span><br />
<span class="re0">$extension</span> = <span class="st0">&#039;p=3&amp;sort=2&amp;id=214423&#039;</span>;<br />
&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.crankberryblog.com/2009/in-page-popup-with-faded-background-in-php/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP Simple Email Validation</title>
		<link>http://www.crankberryblog.com/2009/php-simple-email-validation</link>
		<comments>http://www.crankberryblog.com/2009/php-simple-email-validation#comments</comments>
		<pubDate>Wed, 14 Oct 2009 00:47:37 +0000</pubDate>
		<dc:creator>Jerry Low</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Scripts and Programming]]></category>

		<guid isPermaLink="false">http://www.crankberryblog.com/?p=179</guid>
		<description><![CDATA[When having having forms on your website one of the most common form fields is usually the user's email. To ensure you're receiving quality information and not receiving bogus spams you should validate the email to be of a real one or close enough to. Here's a quick free email validation script for those PHP lovers.]]></description>
			<content:encoded><![CDATA[<p>When having having forms on your website one of the most common form fields is usually the user&#039;s email. To ensure you&#039;re receiving quality information and not receiving bogus spams you should validate the email to be of a real one or close enough to. Here&#039;s a quick free email validation script for those PHP lovers.</p>
<p>Now this script does not verify domains, as there&#039;s no way to verify all domains in this world for a valid email address. What this function does is verify a few things:</p>
<ul>
<li>No spacing in the entry</li>
<li>There are characters before the @ sign</li>
<li>There are characters after the @ sign</li>
<li>There is a period after the @ sign</li>
<li>After the last period there is some characters</li>
</ul>
<p>And that is really how emails are composed of. For example:</p>
<ul>
<li>some_characters@character.com</li>
<li>some_characters@character.co.jp</li>
</ul>
<p>Well I won&#039;t bore you with the composition and dynamics of emails, here&#039;s the function you can add into your form processing script to verify email entries. Now, I mentioned this is a basic script because it does not validate special characters that aren&#039;t allowed in email names, maybe next time.</p>
<p><strong>The Script Already</strong></p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw2">function</span> verify_email<span class="br0">&#40;</span><span class="re0">$email</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Trim</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$email</span> = <a href="http://www.php.net/trim"><span class="kw3">trim</span></a><span class="br0">&#40;</span><span class="re0">$email</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Var</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$email_error</span> = <span class="kw2">TRUE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Check Spacing</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>@<a href="http://www.php.net/strpos"><span class="kw3">strpos</span></a><span class="br0">&#40;</span><span class="re0">$email</span>, <span class="st0">&#039; &#039;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$email_error</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Validate Email</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$first_at</span> = <a href="http://www.php.net/strpos"><span class="kw3">strpos</span></a><span class="br0">&#40;</span><span class="re0">$email</span>, <span class="st0">&#039;@&#039;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$first_at</span>&lt;<span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$email_error</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Make the Last Part of the Email</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$email_end</span> = <a href="http://www.php.net/substr"><span class="kw3">substr</span></a><span class="br0">&#40;</span><span class="re0">$email</span>, <span class="re0">$first_at</span><span class="nu0">+1</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//No More @ Symbol</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$more_at</span> = <a href="http://www.php.net/strpos"><span class="kw3">strpos</span></a><span class="br0">&#40;</span><span class="re0">$email_end</span>, <span class="st0">&#039;@&#039;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$more_at</span>&gt;=<span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$email_error</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Check Next Char isn&#039;t a period</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$first_period</span> = <a href="http://www.php.net/strpos"><span class="kw3">strpos</span></a><span class="br0">&#40;</span><span class="re0">$email_end</span>, <span class="st0">&#039;.&#039;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$first_period</span>&lt;<span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$email_error</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Last Part of the Email</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$email_last</span> = <a href="http://www.php.net/substr"><span class="kw3">substr</span></a><span class="br0">&#40;</span><span class="re0">$email_end</span>, <span class="re0">$first_period</span><span class="nu0">+1</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Another Character</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$email_len</span> = <a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$email_last</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$email_len</span>&lt;<span class="nu0">1</span><span class="br0">&#41;</span> <span class="re0">$email_error</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$email_error</span>;<br />
<span class="br0">&#125;</span></div>
<p>If you aren&#039;t sure how to use this script. Create a test.php page and copy the following script into it and try it out.</p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw2">&lt;?php</span></p>
<p><span class="co1">//Calling The Function</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&#039;test&#039;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$email</span> = <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&#039;email&#039;</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Is It Valid?</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>verify_email<span class="br0">&#40;</span><span class="re0">$email</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&#039;&lt;strong&gt;Email is Valid&lt;/strong&gt;<br />
&#039;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&#039;&lt;strong&gt;INVALID EMAIL&lt;/strong&gt;<br />
&#039;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&#039;<br />
&#039;</span>;<br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">function</span> verify_email<span class="br0">&#40;</span><span class="re0">$email</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Trim</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$email</span> = <a href="http://www.php.net/trim"><span class="kw3">trim</span></a><span class="br0">&#40;</span><span class="re0">$email</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Var</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$email_error</span> = <span class="kw2">TRUE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Check Spacing</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>@<a href="http://www.php.net/strpos"><span class="kw3">strpos</span></a><span class="br0">&#40;</span><span class="re0">$email</span>, <span class="st0">&#039; &#039;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$email_error</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Validate Email</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$first_at</span> = <a href="http://www.php.net/strpos"><span class="kw3">strpos</span></a><span class="br0">&#40;</span><span class="re0">$email</span>, <span class="st0">&#039;@&#039;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$first_at</span>&lt;<span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$email_error</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Make the Last Part of the Email</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$email_end</span> = <a href="http://www.php.net/substr"><span class="kw3">substr</span></a><span class="br0">&#40;</span><span class="re0">$email</span>, <span class="re0">$first_at</span><span class="nu0">+1</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//No More @ Symbol</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$more_at</span> = <a href="http://www.php.net/strpos"><span class="kw3">strpos</span></a><span class="br0">&#40;</span><span class="re0">$email_end</span>, <span class="st0">&#039;@&#039;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$more_at</span>&gt;=<span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$email_error</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Check Next Char isn&#039;t a period</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$first_period</span> = <a href="http://www.php.net/strpos"><span class="kw3">strpos</span></a><span class="br0">&#40;</span><span class="re0">$email_end</span>, <span class="st0">&#039;.&#039;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$first_period</span>&lt;<span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$email_error</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Last Part of the Email</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$email_last</span> = <a href="http://www.php.net/substr"><span class="kw3">substr</span></a><span class="br0">&#40;</span><span class="re0">$email_end</span>, <span class="re0">$first_period</span><span class="nu0">+1</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Another Character</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$email_len</span> = <a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$email_last</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$email_len</span>&lt;<span class="nu0">1</span><span class="br0">&#41;</span> <span class="re0">$email_error</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$email_error</span>;<br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">?&gt;</span></p>
<p>There you have, a simple email validation script. Leave some comments and feedback <span class="kw1">if</span> you think there are ways to enhance this script.</p>
<p>&lt;form action=<span class="st0">&quot;&lt;?php $_SERVER['PHP_SELF']; ?&gt;&quot;</span> method=<span class="st0">&quot;post&quot;</span>&gt;<br />
&nbsp; &nbsp; Enter Email</p>
<p>&nbsp; &nbsp; &lt;input name=<span class="st0">&quot;email&quot;</span> type=<span class="st0">&quot;text&quot;</span> /&gt; &lt;input name=<span class="st0">&quot;test&quot;</span> type=<span class="st0">&quot;submit&quot;</span> value=<span class="st0">&quot;Test&quot;</span> /&gt;<br />
&lt;/form&gt;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.crankberryblog.com/2009/php-simple-email-validation/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Image Verification aka Captcha (Basic)</title>
		<link>http://www.crankberryblog.com/2009/php-image-verification-aka-captcha-basic</link>
		<comments>http://www.crankberryblog.com/2009/php-image-verification-aka-captcha-basic#comments</comments>
		<pubDate>Thu, 08 Oct 2009 00:43:55 +0000</pubDate>
		<dc:creator>Jerry Low</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Scripts and Programming]]></category>

		<guid isPermaLink="false">http://www.crankberryblog.com/?p=183</guid>
		<description><![CDATA[You're making your website and you have forms. Here you are thinking, what if spam bots found my form? What if somebody submitted to my form from their own script? What should I do? Well, there's many things you can do to mitigate your worries but one of the simpler things you could do is having an image verification field in your form. Here's a basic script to generate a random code in image that bots can't read.

<img src="http://www.crankberryblog.com/images/image-verification-basic-php.jpg" alt="image verification" />]]></description>
			<content:encoded><![CDATA[<p>You&#039;re making your website and you have forms. Here you are thinking, what if spam bots found my form? What if somebody submitted to my form from their own script? What should I do? Well, there&#039;s many things you can do to mitigate your worries but one of the simpler things you could do is having an image verification field in your form. Here&#039;s a basic script to generate a random code in image that bots can&#039;t read.</p>
<p>This is a simple version of image verification which requires a single script, I&#039;ll be uploading one in the future which is more advanced and more customizable.</p>
<p>So lets start, you don&#039;t have to modify any of your coding as of so far, all you need to do is add some coding in to enforce the verification. Now open up your favourite text/PHP and create a file called _verify.php. Have you done that yet? Good! Now in the script just copy this code inside (will be attaching as a zip file as well if there&#039;s any problems).</p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw2">&lt;?php</span></p>
<p><a href="http://www.php.net/session_start"><span class="kw3">session_start</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>; </p>
<p><span class="co1">//Your Capcha Settings</span><br />
<span class="re0">$use_numbers</span> = <span class="kw2">TRUE</span>;<br />
<span class="re0">$use_upperCase</span> = <span class="kw2">TRUE</span>;<br />
<span class="re0">$use_lowerCase</span> = <span class="kw2">FALSE</span>;</p>
<p><span class="re0">$code</span> = simple_code<span class="br0">&#40;</span><span class="nu0">5</span>, <span class="re0">$use_numbers</span> , <span class="re0">$use_upperCase</span>, <span class="re0">$use_lowerCase</span><span class="br0">&#41;</span>;</p>
<p><span class="re0">$_SESSION</span><span class="br0">&#91;</span><span class="st0">&quot;verify_code&quot;</span><span class="br0">&#93;</span> = <a href="http://www.php.net/md5"><span class="kw3">md5</span></a><span class="br0">&#40;</span><span class="re0">$code</span><span class="br0">&#41;</span>; <br />
<span class="re0">$im_height</span> = <span class="nu0">25</span>; <br />
<span class="re0">$im_width</span> = <span class="nu0">150</span>; <br />
&nbsp;<br />
<span class="re0">$im</span> = imagecreate<span class="br0">&#40;</span><span class="re0">$im_width</span>, <span class="re0">$im_height</span><span class="br0">&#41;</span>; <br />
<span class="re0">$black</span> = imagecolorallocate<span class="br0">&#40;</span><span class="re0">$im</span>, <span class="nu0">0</span>, <span class="nu0">0</span>, <span class="nu0">0</span><span class="br0">&#41;</span>; <br />
<span class="re0">$white</span> = imagecolorallocate<span class="br0">&#40;</span><span class="re0">$im</span>, <span class="nu0">255</span>, <span class="nu0">255</span>, <span class="nu0">255</span><span class="br0">&#41;</span>; <br />
<span class="re0">$font_size</span> = <span class="nu0">14</span>; <br />
&nbsp;<br />
imagestring<span class="br0">&#40;</span><span class="re0">$im</span>, <span class="re0">$font_size</span>, <span class="nu0">50</span>, <span class="nu0">5</span>, <span class="re0">$code</span>, <span class="re0">$white</span><span class="br0">&#41;</span>; <br />
imagejpeg<span class="br0">&#40;</span><span class="re0">$im</span>, <span class="kw2">null</span>, <span class="nu0">80</span><span class="br0">&#41;</span>; </p>
<p><span class="co1">//This is the simple code Generator</span><br />
<span class="kw2">function</span> simple_code<span class="br0">&#40;</span><span class="re0">$code_len</span> = <span class="nu0">1</span>, <span class="re0">$have_num</span> = <span class="kw2">TRUE</span>, <span class="re0">$have_caps</span> = <span class="kw2">TRUE</span>, <span class="re0">$have_lower</span> = <span class="kw2">TRUE</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>!<span class="re0">$have_num</span> &amp;&amp; !<span class="re0">$have_caps</span> &amp;&amp; !<span class="re0">$have_lower</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="st0">&#039;Please Have at Least One Setting On&#039;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Starting The Code</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$code</span> = <span class="st0">&#034;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$i</span>=<span class="nu0">1</span>; <span class="re0">$i</span>&lt;=<span class="re0">$code_len</span>; <span class="re0">$i</span>++<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Keep Generating Characters Until its a proper character</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">do</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Is The Code Good</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$code_ok</span> = <span class="kw2">TRUE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Generate the Characters</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$code_char</span> = <a href="http://www.php.net/rand"><span class="kw3">rand</span></a><span class="br0">&#40;</span><span class="nu0">48</span>, <span class="nu0">122</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Which Codes do they want</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>!<span class="re0">$have_num</span> &amp;&amp; <span class="br0">&#40;</span><span class="re0">$code_char</span>&gt;=<span class="nu0">48</span> &amp;&amp; <span class="re0">$code_char</span>&lt;=<span class="nu0">57</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="re0">$code_ok</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>!<span class="re0">$have_caps</span> &amp;&amp; <span class="br0">&#40;</span><span class="re0">$code_char</span>&gt;=<span class="nu0">65</span> &amp;&amp; <span class="re0">$code_char</span>&lt;=<span class="nu0">90</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="re0">$code_ok</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>!<span class="re0">$have_lower</span> &amp;&amp; <span class="br0">&#40;</span><span class="re0">$code_char</span>&gt;=<span class="nu0">97</span> &amp;&amp; <span class="re0">$code_char</span>&lt;=<span class="nu0">122</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="re0">$code_ok</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Bad Chars</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re0">$code_char</span> &gt;= <span class="nu0">58</span> &amp;&amp; <span class="re0">$code_char</span>&lt;=<span class="nu0">64</span><span class="br0">&#41;</span> || <span class="br0">&#40;</span><span class="re0">$code_char</span> &gt;= <span class="nu0">91</span> &amp;&amp; <span class="re0">$code_char</span>&lt;=<span class="nu0">96</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="re0">$code_ok</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">while</span> <span class="br0">&#40;</span>!<span class="re0">$code_ok</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Add Character to Code</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$code</span> .= <a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="re0">$code_char</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$code</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
<span class="kw2">?&gt;</span></div>
<p>The code is very simple. All you have to do is configure the three settings at the beginning of the code. Currently its set to have numbers and capital letters only, but change it to whatever suits your flavor. I&#039;ve kept the default length to 5 because if image verification is too long users may not like it. If the code is too short it maybe too easy for bots; thus, five is an acceptable length. The code above integrates a <a href="http://www.crankberryblog.com/2009/random-code-and-password-generator-in-php">random code generator</a> which I have demonstrated before.</p>
<p>So save the file and lets continue. In your form page add the following code:</p>
<div class="dean_ch" style="white-space: wrap;">Image Verification</p>
<p>
&lt;input name=&quot;verification&quot; type=&quot;text&quot; /&gt;</p>
<p>
Match This</p>
<p>
&lt;img src=&quot;_verify.php&quot; /&gt;</div>
<p>Format it to however suits your website. Now the above code adds the verification field in your form but does not validate the input yet. That&#039;s right, we have to validate the input. To validate with the following before you process your form.</p>
<div class="dean_ch" style="white-space: wrap;"><span class="re0">$validatePass</span> = <span class="br0">&#40;</span><a href="http://www.php.net/md5"><span class="kw3">md5</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&#039;verification&#039;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>==<span class="re0">$_SESSION</span><span class="br0">&#91;</span><span class="st0">&quot;verify_code&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> ? <span class="nu0">1</span> : <span class="nu0">0</span>;</div>
<p>Now the above code only validates the input, but does not stop the form from processing. The variable $validatePass will be 1 if the verification is correct and 0 if it is not. You&#039;ll have to have your code laid out in something like this:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="co1">//If Submitting</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&#039;submit&#039;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$validatePass</span> = <span class="br0">&#40;</span><a href="http://www.php.net/md5"><span class="kw3">md5</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&#039;verification&#039;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>==<span class="re0">$_SESSION</span><span class="br0">&#91;</span><span class="st0">&quot;verify_code&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> ? <span class="nu0">1</span> : <span class="nu0">0</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$validatePass</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Run my Form&nbsp; &nbsp;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&#039;Image verification did not match&#039;</span>;&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
<p>And that is all you need to make your forms bot and spam proof. Do note that this is not a catch all solution, there are other things you need to put in place to secure your environment for your users.</p>
<p><img src="http://www.crankberryblog.com/images/image-verification-basic-php.jpg" alt="image verification" /></p>
<p><strong>Problems You May Have</strong></p>
<p>If you are having trouble with loading the image or having the verification working, look at the following checklist. This might help you.</p>
<ul>
<li>Have you enabled GD/GD1 extension on your server/php?</li>
<li>Do you have cookies disabled, cookies is required?</li>
<li>Did you include session_start() on top of your php file which has the form?</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.crankberryblog.com/2009/php-image-verification-aka-captcha-basic/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Setting PHP cron job with crontab</title>
		<link>http://www.crankberryblog.com/2009/setting-php-cron-job-with-crontab</link>
		<comments>http://www.crankberryblog.com/2009/setting-php-cron-job-with-crontab#comments</comments>
		<pubDate>Thu, 01 Oct 2009 08:26:05 +0000</pubDate>
		<dc:creator>Jerry Low</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Hosting]]></category>

		<guid isPermaLink="false">http://www.crankberryblog.com/?p=161</guid>
		<description><![CDATA[So you've created a PHP script that does something like clean your tables or compiles a report on some data. You want it to run it every 2 hours but you don't want to go to your computer every 2 hours. What should you do? Cron job using crontab is what you should do. Cron job is basically setting a timer on your server to run the script at a certain time that you please. Sounds easy enough, but how do you do it? Lets find out!]]></description>
			<content:encoded><![CDATA[<p>So you&#039;ve created a PHP script that does something like clean your tables or compiles a report on some data. You want it to run it every 2 hours but you don&#039;t want to go to your computer every 2 hours. What should you do? Cron job using crontab is what you should do. Cron job is basically setting a timer on your server to run the script at a certain time that you please. Sounds easy enough, but how do you do it? Lets find out!</p>
<p>The first thing you need to do is obviously create the PHP script. Before setting up the cron job test and see if the script produces the result you want. You don&#039;t want to schedule something and find out a year later that it wasn&#039;t doing anything.</p>
<p>Assuming you have that part laid out now you can move forward. Now to schedule a cron job just login to your server&#039;s admin control panel area and find the cron job/crontab setting. Here&#039;s where I found it in Plesk and Cpanel:</p>
<ul>
<li><strong>Plesk: </strong>Domains > *domain_name* > Scheduled Tasks > *domain_user*</li>
<li><strong>Control Panel:</strong> Advanced Tools > Cron Jobs > Advanced</li>
</ul>
<p>Try to play around if you couldn&#039;t find it as different versions and CPs name things differently. You&#039;ll know when you find it as it asks you for minute, hour, day, month, year and weekday.</p>
<h3>The Cron Job Command</h3>
<p>Let&#039;s talk about the command first. The command is the code to tell the server which code to run. There&#039;s four commands to choose from and you&#039;ll have to try them out to see which one works for you. Here are the commands.</p>
<div class="dean_ch" style="white-space: wrap;">lynx &gt; /dev/null -dump SCRIPT URL<br />
wget -q -O /dev/null SCRIPT URL<br />
fetch -o /dev/null SCRIPT URL<br />
curl -s -o /dev/null SCRIPT URL</div>
<p>So for example if I want to run a backup code for this blog I would plug the following for the command.</p>
<div class="dean_ch" style="white-space: wrap;">lynx &gt; /dev/null -dump &quot;http://www.crankberryblog.com/backup.php&quot;</div>
<h3>The Time Setting</h3>
<p>Now that you have the command down its time to tell the server when to run the PHP script automatically. So here are the options you can set:</p>
<p><strong>Minute: </strong>0 &#8211; 59<br />
<strong>Hour:</strong> 0 &#8211; 23<br />
<strong>Day: </strong>1 &#8211; 31<br />
<strong>Month:</strong> 1 &#8211; 12<br />
<strong>Day of the Week:</strong> 0 &#8211; 7 (0 and 7 both represent Sunday)</p>
<p>Now these settings don&#039;t seem too flexible at all, but wait! there&#039;s more! There are some additional settings that can be used.</p>
<div class="dean_ch" style="white-space: wrap;">0&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -&nbsp; &nbsp; &nbsp; &nbsp;Run at zero<br />
*&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -&nbsp; &nbsp; &nbsp; &nbsp;Run every x (x being the setting, * in days means run every day)<br />
0,15,30,45&nbsp; &nbsp; &nbsp; &#8211; &nbsp; &nbsp; &nbsp; Run every 0, 15, 30 and 45 of x<br />
*/15&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -&nbsp; &nbsp; &nbsp; &nbsp;Run every interval of 15 for x<br />
10-15&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -&nbsp; &nbsp; &nbsp; &nbsp;Run it every value between 10 and 15</div>
<p>I&#039;m not sure if those settings are confusing or not. Here are some examples for you to better understand how the timing commands work.</p>
<div class="dean_ch" style="white-space: wrap;">*/10&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; *&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; *&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; *&nbsp; &nbsp; &nbsp; &nbsp;- Run every 10 minutes<br />
0&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; 0&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; */1&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; *&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; *&nbsp; &nbsp; &nbsp; &nbsp;- Run every day<br />
30&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 7&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; *&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; *&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; 2,4,6&nbsp; &nbsp;- Run every Tues, Thurs and Sat at 7:30<br />
0&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; 10&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; */2&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; *&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; *&nbsp; &nbsp; &nbsp; &nbsp;- Run every second day at 10:00<br />
0&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; 0&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; 1&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; */1&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; *&nbsp; &nbsp; &nbsp; &nbsp;- Run on the first of every month</div>
<p>There you have it. Setting up your PHP script to run automatically even when you&#039;re not there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crankberryblog.com/2009/setting-php-cron-job-with-crontab/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Random code and password generator in PHP</title>
		<link>http://www.crankberryblog.com/2009/random-code-and-password-generator-in-php</link>
		<comments>http://www.crankberryblog.com/2009/random-code-and-password-generator-in-php#comments</comments>
		<pubDate>Sun, 27 Sep 2009 09:53:19 +0000</pubDate>
		<dc:creator>Jerry Low</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.crankberryblog.com/?p=148</guid>
		<description><![CDATA[Sometimes when you're interacting with users you need to generate a random string of code or password. For example, a user is signing up for a service and you decided to give them some random password to start with, that's what I'm talking about. Here I have a quick script which allows you to generate random code with a defined length.]]></description>
			<content:encoded><![CDATA[<p>Sometimes when you&#039;re interacting with users you need to generate a random string of code or password. For example, a user is signing up for a service and you decided to give them some random password to start with, that&#039;s what I&#039;m talking about. Here I have a quick script which allows you to generate random code with a defined length.</p>
<h3>Random Code and Password Generator</h3>
<p>Here it is, a function you can use to plug right into your script:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="co1">//Random Code and Password Generator &nbsp;by Jerry Low @crankberryblog.com</span><br />
<span class="co1">//Find other useful scripts at the Crankberry Blog</span></p>
<p><span class="co1">//This is the simple code Generator</span><br />
<span class="kw2">function</span> simple_code<span class="br0">&#40;</span><span class="re0">$code_len</span> = <span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Starting The Code</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$code</span> = <span class="st0">&quot;&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$i</span>=<span class="nu0">1</span>; <span class="re0">$i</span>&lt;=<span class="re0">$code_len</span>; <span class="re0">$i</span>++<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Keep Generating Characters Until its a proper character</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">do</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Generate the Characters</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$code_char</span> = <a href="http://www.php.net/rand"><span class="kw3">rand</span></a><span class="br0">&#40;</span><span class="nu0">48</span>, <span class="nu0">122</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">while</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re0">$code_char</span> &gt;= <span class="nu0">58</span> &amp;&amp; <span class="re0">$code_char</span>&lt;=<span class="nu0">64</span><span class="br0">&#41;</span> || <span class="br0">&#40;</span><span class="re0">$code_char</span> &gt;= <span class="nu0">91</span> &amp;&amp; <span class="re0">$code_char</span>&lt;=<span class="nu0">96</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Add Character to Code</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$code</span> .= <a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="re0">$code_char</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$code</span>;<br />
<span class="br0">&#125;</span></div>
<p>Just call the function from one of either ways. They&#039;re both calling a code of 5 characters right now but that&#039;s the number you can adjust yourself.</p>
<div class="dean_ch" style="white-space: wrap;"><span class="re0">$code</span> = simple_code<span class="br0">&#40;</span><span class="nu0">5</span><span class="br0">&#41;</span>;<br />
<span class="re0">$code</span> = <span class="re0">$object</span>-&gt;<span class="me1">simple_code</span><span class="br0">&#40;</span><span class="nu0">5</span><span class="br0">&#41;</span>;</div>
<h3>Random Code and Password Generator with Configuration</h3>
<p>So the above script allows you to generate codes with random characters including numbers, capital letters and lower case letters. It may not be for everyone so here we&#039;ll add some adjustments where you can tweak it. Here&#039;s the code:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="co1">//Random Code and Password Generator &nbsp;by Jerry Low @crankberryblog.com</span><br />
<span class="co1">//Find other useful scripts at the Crankberry Blog</span></p>
<p><span class="co1">//This is the simple code Generator</span><br />
<span class="kw2">function</span> simple_code<span class="br0">&#40;</span><span class="re0">$code_len</span> = <span class="nu0">1</span>, <span class="re0">$have_num</span> = <span class="kw2">TRUE</span>, <span class="re0">$have_caps</span> = <span class="kw2">TRUE</span>, <span class="re0">$have_lower</span> = <span class="kw2">TRUE</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>!<span class="re0">$have_num</span> &amp;&amp; !<span class="re0">$have_caps</span> &amp;&amp; !<span class="re0">$have_lower</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="st0">&#039;Please Have at Least One Setting On&#039;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Starting The Code</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$code</span> = <span class="st0">&quot;&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$i</span>=<span class="nu0">1</span>; <span class="re0">$i</span>&lt;=<span class="re0">$code_len</span>; <span class="re0">$i</span>++<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Keep Generating Characters Until its a proper character</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">do</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Is The Code Good</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$code_ok</span> = <span class="kw2">TRUE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Generate the Characters</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$code_char</span> = <a href="http://www.php.net/rand"><span class="kw3">rand</span></a><span class="br0">&#40;</span><span class="nu0">48</span>, <span class="nu0">122</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Which Codes do they want</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>!<span class="re0">$have_num</span> &amp;&amp; <span class="br0">&#40;</span><span class="re0">$code_char</span>&gt;=<span class="nu0">48</span> &amp;&amp; <span class="re0">$code_char</span>&lt;=<span class="nu0">57</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="re0">$code_ok</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>!<span class="re0">$have_caps</span> &amp;&amp; <span class="br0">&#40;</span><span class="re0">$code_char</span>&gt;=<span class="nu0">65</span> &amp;&amp; <span class="re0">$code_char</span>&lt;=<span class="nu0">90</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="re0">$code_ok</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>!<span class="re0">$have_lower</span> &amp;&amp; <span class="br0">&#40;</span><span class="re0">$code_char</span>&gt;=<span class="nu0">97</span> &amp;&amp; <span class="re0">$code_char</span>&lt;=<span class="nu0">122</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="re0">$code_ok</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Bad Chars</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re0">$code_char</span> &gt;= <span class="nu0">58</span> &amp;&amp; <span class="re0">$code_char</span>&lt;=<span class="nu0">64</span><span class="br0">&#41;</span> || <span class="br0">&#40;</span><span class="re0">$code_char</span> &gt;= <span class="nu0">91</span> &amp;&amp; <span class="re0">$code_char</span>&lt;=<span class="nu0">96</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="re0">$code_ok</span> = <span class="kw2">FALSE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">while</span> <span class="br0">&#40;</span>!<span class="re0">$code_ok</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Add Character to Code</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$code</span> .= <a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="re0">$code_char</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$code</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
<p>Just call the function like the previous one but configuring the settings like so:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="re0">$code</span> = simple_code<span class="br0">&#40;</span><span class="nu0">5</span>, <span class="kw2">TRUE</span>, <span class="kw2">FALSE</span>, <span class="kw2">TRUE</span><span class="br0">&#41;</span>;<br />
<span class="re0">$code</span> = <span class="re0">$object</span>-&gt;<span class="me1">simple_code</span><span class="br0">&#40;</span><span class="nu0">5</span>, <span class="kw2">TRUE</span>, <span class="kw2">FALSE</span>, <span class="kw2">TRUE</span><span class="br0">&#41;</span>;</div>
<p>The arguements after the length of the code is as follow:</p>
<ol>
<li>Have numbers in the code</li>
<li>Have capital letters in the code</li>
<li>Have lower case letters in the code</li>
</ol>
<p>Here are some examples of different configurations for you to understand how it works.</p>
<div class="dean_ch" style="white-space: wrap;"><span class="re0">$code</span> = simple_code<span class="br0">&#40;</span><span class="nu0">5</span>, <span class="kw2">TRUE</span>, <span class="kw2">FALSE</span>, <span class="kw2">FALSE</span><span class="br0">&#41;</span>; <span class="co1">//Numbers only</span><br />
<span class="re0">$code</span> = simple_code<span class="br0">&#40;</span><span class="nu0">5</span>, <span class="kw2">FALSE</span>, <span class="kw2">TRUE</span>, <span class="kw2">TRUE</span><span class="br0">&#41;</span>; <span class="co1">//Letters only</span><br />
<span class="re0">$code</span> = simple_code<span class="br0">&#40;</span><span class="nu0">5</span>, <span class="kw2">TRUE</span>, <span class="kw2">TRUE</span>, <span class="kw2">FALSE</span><span class="br0">&#41;</span>; <span class="co1">//Numbers and capital letters only</span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.crankberryblog.com/2009/random-code-and-password-generator-in-php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
